Android视频上传到YouTube

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

我正在开发一个将sdcard中的视频上传到youtube,然后返回youtube视频url的应用。 但是,我无法成功完成此操作。

我已尝试使用ACTION_SEND:

public void onUploadClick(View v) {
 Intent uploadIntent = new Intent(Intent.ACTION_SEND);
 // In a real app, video would be captured from camera.
 File f = new File("/sdcard/test.mov");
 uploadIntent.setDataAndType(Uri.fromFile(f), "video/quicktime");
 startActivity(Intent.createChooser(uploadIntent, "Upload"));
}

但是,奇怪的是,使用此实现,我没有将YouTube作为上传选项。 我有蓝牙,邮件,Dropbox,Facebook,Flickr,Gmail和Handcent。 但不是Youtube。 有什么想法吗? 此外,是否可以使用此方法上传后的youtube视频的网址? 怎么样?

我也尝试过使用适用于Java的Youtube API,但同样没有成功。 我添加了所有需要的库(gdata-client-1.0.jar,gdata-media-1.0.jar和gdata-youtube-2.0,jar)。 但是,当我运行它时,尽管具有正确的库和导入功能,但仍会为com.google.gdata.client.youtube.YouTubeService遇到NoClassDefFoundError。 这是我正在使用的代码:

YouTubeService service = new YouTubeService(clientID, developer_key);
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);

总而言之,我的问题是:-两种方法我都做错了什么? -关于我将视频上传到youtube并获得其youtube链接的简单目标,您建议采用哪种方法? 即使以上都不是。

谢谢。

----更新04/10 ----

  • 尝试使用其他手机后,我发现Youtube没有出现上传视频的选择是我手机的问题(可能是由于ROM)。 但是,即使使用意图实现了它也是可行的,因为我无法找回URL,这是必不可少的。
  • 经过一些研究,似乎第二种方法是不可能的。 适用于Java的Youtube API在Android中不起作用。

话虽如此,我正在寻找有关如何在Android中将视频上传到Youtube的建议。 我真正想要的是选择一个视频文件,将其上传到Youtube并获取youtube URL。 优选地,在没有任何用户干扰的情况下,用户仅选择文件,然后上传和URL检索“在后台”运行。 有什么建议么? 最简单,最快的方法是什么?

谢谢。

android video upload youtube
2个回答
1
投票

您可以使用RESTful YouTube API并执行可恢复的上传。 此处的代码示例: http : //code.google.com/p/ytd-android/ 。 另外,您是否尝试过ACTION_SHARE?


0
投票

关于第一种方法:我尝试了3种不同的手机,所有不同的品牌和不同版本的Android,这是我单击共享并选择YouTube时每种行为的方式:

act = android.intent.action.SEND typ = video / mp4 flg = 0x3000000 cmp = com.google.android.apps.uploader / .clients.youtube.YouTubeSettingsActivity

act = android.intent.action.SEND typ = video / 3gpp flg = 0x3000000 cmp = com.google.android.apps.uploader / .clients.youtube.YouTubeSettingsActivity

act = android.intent.action.SEND_MULTIPLE typ = video / * cmp = com.google.android.apps.uploader / .clients.youtube.YouTubeSettingsActivity

因此,您似乎处在正确的轨道上。 我会尝试更改mimetype。 从video / *开始,也许只是看它是否有效。

哦,作为旁注,它可能很吸引人,但是如果有一天他们更改它,直接使用YouTubeSettingsActivity可能会很危险。

就个人而言,我喜欢第一种方法,因为它可以与其他应用很好地集成。 就像说您的用户想要使用YouTube以外的其他功能一样,他们可以选择所需的内容。 我不确定是否要找回URL。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.