在java中将视频上传到youtube

问题描述 投票:3回答:2

我在本地磁盘上有一个视频,我希望通过我的应用程序将其上传到youtube上。 你能给我指导方针吗? 请给我步骤来执行该代码或代码或链接。 提前致谢。

解决方案建议我尝试使用:gdata.youtube.com/feeds/api/users/users/uploads(用户作为一些用户名)但我收到IOException.ie与服务通信时出现问题。

  java.net.SocketException: Connection reset
 java.net.SocketInputStream.read(SocketInputStream.java:189)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
        at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:641)
        at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:589)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1319)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
        at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:490)
        at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:470)
        at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:534)
        at com.google.gdata.client.media.MediaService.insert(MediaService.java:353)
        at ytupload.YouTubeWriteClient.uploadVideo(YouTubeWriteClient.java:508)
        at ytupload.YouTubeWriteClient.main(YouTubeWriteClient.java:828)

Plz帮助......

java jsp servlets youtube-api
2个回答
3
投票

您是否在Google开发者指南中查看了Youtube API ,请查看视频上传部分? 你会发现这样的事情:

VideoEntry newEntry = new VideoEntry();

YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup();
mg.setTitle(new MediaTitle());
mg.getTitle().setPlainTextContent("My Test Movie");
mg.addCategory(new MediaCategory(YouTubeNamespace.CATEGORY_SCHEME, "Autos"));
mg.setKeywords(new MediaKeywords());
mg.getKeywords().addKeyword("cars");
mg.getKeywords().addKeyword("funny");
mg.setDescription(new MediaDescription());
mg.getDescription().setPlainTextContent("My description");
mg.setPrivate(false);
mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "mydevtag"));
mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "anotherdevtag"));

newEntry.setGeoCoordinates(new GeoRssWhere(37.0,-122.0));
// alternatively, one could specify just a descriptive string
// newEntry.setLocation("Mountain View, CA");

MediaFileSource ms = new MediaFileSource(new File("file.mov"), "video/quicktime");
newEntry.setMediaSource(ms);

String uploadUrl =
  "http://uploads.gdata.youtube.com/feeds/api/users/default/uploads";

VideoEntry createdEntry = service.insert(new URL(uploadUrl), newEntry);

在您上传视频之前,您可能会成功进行身份验证,例如:

YouTubeService service = new YouTubeService(clientID, developer_key);

希望这可以帮助


1
投票

您必须创建一个新的VideoEntry对象

以下代码上传视频:

VideoEntry newEntry = new VideoEntry();

YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup();
mg.setTitle(new MediaTitle());
mg.getTitle().setPlainTextContent("Title goes here");
mg.addCategory(new MediaCategory(YouTubeNamespace.CATEGORY_SCHEME, "Autos"));
mg.setKeywords(new MediaKeywords());
mg.getKeywords().addKeyword("keyword-here");
mg.setDescription(new MediaDescription());
mg.getDescription().setPlainTextContent("My description");
mg.setPrivate(false);
mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "mydevtag"));
mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "anotherdevtag"));

newEntry.setGeoCoordinates(new GeoRssWhere(37.0,-122.0));
// alternatively, one could specify just a descriptive string
// newEntry.setLocation("Mountain View, CA");

MediaFileSource ms = new MediaFileSource(new File("file.mov"), "video/quicktime");
newEntry.setMediaSource(ms);

String uploadUrl =
"http://uploads.gdata.youtube.com/feeds/api/users/default/uploads";

VideoEntry createdEntry = service.insert(new URL(uploadUrl), newEntry);

请参阅https://developers.google.com/youtube/2.0/developers_guide_java#Uploading_Videos

© www.soinside.com 2019 - 2024. All rights reserved.