如何在android中将视频上传到youtube?

Posted

技术标签:

【中文标题】如何在android中将视频上传到youtube?【英文标题】:How to upload video to youtube in android? 【发布时间】:2013-04-04 14:52:42 【问题描述】:

我正在创建一个应用程序,用于录制视频并将其上传到 YouTube 和其他社交网站。

对于上传,我使用 Droid 共享功能,效果很好。

在电子邮件、Facebook、Skype 等中上传完美,但当我选择 YouTube 时,它​​不会上传我的视频。

这是我用于视频共享的代码。

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"SUBJECT_NAME");
sharingIntent.setType("video/*");
File newFile = new File(video_path);
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,Uri.fromFile(newFile));
startActivity(Intent.createChooser(sharingIntent,"Where you want to share?"));

【问题讨论】:

我也面临这个问题,我试图找到很多但没有得到任何完美的解决方案。 我试图找到解决方案,有时会得到很好的结果,但不是让 droid 与 google api 共享它以仅使用特定的 youtube 共享。 我真的很喜欢播这个问题,因为如果这个问题得到完美的答案,那么我需要使用。 尝试按照此处指定的方式构建 URI:***.com/questions/5884092/… 我会试试这个。感谢您的回复。 【参考方案1】:

试试这个代码。

ContentValues content = new ContentValues(4);
content.put(Video.VideoColumns.DATE_ADDED,
System.currentTimeMillis() / 1000);
content.put(Video.Media.MIME_TYPE, "video/mp4");
content.put(MediaStore.Video.Media.DATA, "video_path");
ContentResolver resolver = getBaseContext().getContentResolver();
Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, content);

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Title");
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri);
startActivity(Intent.createChooser(sharingIntent,"share:")); 

此代码添加在您的分享按钮的onClick() 方法中并获得结果。 将 EXTRA_STREAM 中的值作为 URI 而非文件传递。

【讨论】:

@Sandip Chaniyara 感谢使用此代码...我也实现了这个。 非常感谢...对于内部存储,您可以使用 INTERNAL_CONTENT_URI 我只收到“没有应用程序可以执行此操作”,为什么?【参考方案2】:

我没有足够的声誉来发表评论,但我在尝试让 user2126788 的代码工作时浪费了大约一个小时,因为我忘记在意图上设置类型。

sharingIntent.setType("video/*");

【讨论】:

【参考方案3】:

请在 android manifest 中添加这一行

     <intent-filter>
     <action android:name="android.intent.action.SEND" />
     <category android:name="android.intent.category.DEFAULT" />              
     <data android:host="www.youtube.com" android:mimeType="text/*" /> 
     </intent-filter>

【讨论】:

放入Activity,用于视频分享。只是把它放在清单文件中而不改变其他任何东西? 我放了它但不起作用,同样的问题是重定向到活动。此代码需要进行任何其他更改吗?【参考方案4】:

经过几个小时的尝试,了解如何让它在 facebook、youtube、instagram 和 whatsapp 上上传和分享视频。这是对我有用的代码。 将录制的视频从您的应用程序上传到社交媒体应用程序

ContentValues content = new ContentValues(4);
            content.put(Video.VideoColumns.DATE_ADDED,
            System.currentTimeMillis() / 1000);
            content.put(Video.Media.MIME_TYPE, "video/mp4");
            content.put(MediaStore.Video.Media.DATA, "your_path_to_video");
            ContentResolver resolver = getBaseContext().getContentResolver();
            Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, content);

            Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
            sharingIntent.setType("video/*");
            sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Title");
            sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri);
            startActivity(Intent.createChooser(sharingIntent,"share:")); 

【讨论】:

很好的答案@Tarek Mowafy。但是我可以在 youtube 上传页面中将标题和描述设为空吗? @David,很抱歉回复晚了,再次抱歉,但我无法回答您的问题,当您将视频上传到 youtube 时,您必须选择视频的标题和说明,对吗?【参考方案5】:

这段代码对我很有效。

我尝试实施并获得最佳结果。

所以,如果有人遇到此类问题,请尝试此代码。

我相信它也非常适合您。

ContentValues content = new ContentValues(4);
content.put(Video.VideoColumns.DATE_ADDED,
System.currentTimeMillis() / 1000);
content.put(Video.Media.MIME_TYPE, "video/mp4");
content.put(MediaStore.Video.Media.DATA, "path_of_video");
ContentResolver resolver = getBaseContext().getContentResolver();
Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, content);

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Title_text");
//sharingIntent.setType("video/*");
//File newFile = new File(path_var);
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri);
startActivity(Intent.createChooser(sharingIntent,"Where you want to share?")); 

此代码在您的分享按钮的 onClick() 方法中出现问题并获取结果。

【讨论】:

【参考方案6】:

这段代码对我很好。

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Title_text");
//sharingIntent.setType("video/*");
File newFile = new File(path_var);
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri);
startActivity(Intent.createChooser(sharingIntent,"Where you want to share?")); 

【讨论】:

【参考方案7】:

另一个很好的解决方案是在不离开应用的情况下实现自己的上传机制。 您可以将 Google Java 和 Android 库与 YouTube Java 库一起使用。

这是一个完整的应用程序:https://github.com/youtube/yt-direct-lite-android

【讨论】:

【参考方案8】:
        ContentValues content = new ContentValues(4);
        content.put(MediaStore.Video.VideoColumns.DATE_ADDED,
                System.currentTimeMillis() / 1000);
        content.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
        content.put(MediaStore.Video.Media.DATA, path);
        ContentResolver resolver = getActivity().getContentResolver();
        Uri uri1 =  Uri.fromFile(new File(path)); 

        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
        sharingIntent.setType("video/*");
        sharingIntent.setPackage("com.google.android.youtube");
        sharingIntent.putExtra(Intent.EXTRA_TITLE, "Title");
        sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Desc");
        sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri1);
        startActivity(Intent.createChooser(sharingIntent, "Share to"));

【讨论】:

以上是关于如何在android中将视频上传到youtube?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android中将视频上传到youtube?

iOS:在我的应用中将视频分享到 youtube

如何使用适用于 Android 和 iOS 的 Xamarin 表单在特定频道上的 youtube 上上传视频?

如何将 YouTube 本地化(翻译)添加到我的 C# YouTube 视频上传器?

如何获取上传到多个 YouTube 频道的最新视频列表?

如何使上传到 Youtube 的视频对公众可见