Android 视频上传到 Youtube

标签 android video upload youtube

我正在开发一个将 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 视频的 url?怎么办?

我也尝试过使用 Youtube API for Java,但还是没有成功。我添加了所有需要的库(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)。 但是,即使它确实有效,使用 intents 也不是可行的方法,因为我无法取回 URL,而这是必不可少的。
  • 经过一番研究,第二种方法似乎行不通。适用于 Java 的 Youtube API 不适用于 Android。

也就是说,我正在寻找有关如何在 Android 中将视频上传到 Youtube 的建议。 我真正想要的是选择一个视频文件,将其上传到 Youtube 并获取 youtube URL。最好不受用户的任何干扰,用户只选择文件,然后上传和 URL 检索“在后台”运行。 有什么建议么?实现这一目标最简单、最快捷的方法是什么?

谢谢。

最佳答案

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

关于Android 视频上传到 Youtube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7641703/

相关文章:

android - 图库选择器在 Android 10 上返回带有文件方案的 Uri,如何读取它?

android - 如何在 Flutter 中使用 Dio 和 multi_image_picker 插件上传多张图片

video - 读取视频文件每一帧的一部分

javascript - 如何通过Node JS获取ffmpeg的具体开始和结束时间?

php - 如何使用 unlink 功能在 joomla 更新和删除过程中删除文件?并使用取消链接获取要删除的已上传图像?

c# - 如何在 c# WPF 应用程序中取消上传

android - 如何换行 Android TextView View ?

android - 如何在 Android Studio 中调整 AVD 模拟器窗口的大小?

php - Codeigniter:MP4 视频上传不工作

php - 上传excel文件到服务器