【问题标题】:How to upload a Youtube video via the API using an OAuth2 Access Token (.NET)?如何使用 OAuth2 访问令牌 (.NET) 通过 API 上传 Youtube 视频?
【发布时间】:2012-12-20 03:01:33
【问题描述】:

我是一位经验丰富的 .NET 开发人员,我正在制作一个只需要使用 2 或 3 个帐户的视频上传器应用程序。使用 1 个帐户作为我的测试用例,我已经使用它授权了我的应用程序,取回了我的授权密钥,我现在有了一个访问+刷新令牌。

到了这个阶段,我现在意识到我不知道如何使用我的访问令牌上传视频(我知道在回答这个问题时我可能需要刷新它) - 有人可以帮忙吗?我找不到任何有关使用 Youtube .NET 客户端库(例如 YouTubeRequestSettings、YouTubeRequest 等)执行此操作的文档 - 非常感谢所有帮助!

【问题讨论】:

  • 你有没有用谷歌搜索..?有一个关于如何做到这一点的例子..你需要你想要做的事情需要使用异步上传。显示如何使用 ResumableUploader 组件和 AsyncOperationCompleted/AsyncOperationProgress 事件的完整示例包含在 .NET 客户端库中,可在 code.google.com/p/google-gdata/source/browse/… 获得
  • @DJKRAZE - 令人印象深刻的是,您试图同时提供帮助和侮辱性 - 如果您查看 YoutubeUploader 中的最后一种方法,该链接不会在任何地方使用 OAuth 密钥它使用 Youtube 帐户的用户名和密码——这违反了推荐的最佳做法(因此我尝试使用 OAuth!)如果您能荣幸地取消您的反对票,我可能会更多地关注我的问题跨度>

标签: c# .net api upload youtube


【解决方案1】:

我最终通过反复试验发现了这一点 - 脱节的 Youtube API 文档确实没有帮助!

AuthSub 已被弃用,如果您遇到获取 OAuth2 密钥的麻烦(文档中对此进行了很好的描述),您可以使用它上传视频。

为此,只需使用 access_token 代替 'YoutubeRequestSettings' 对象中的 authsub 键 - 如下例所示:

string myDeveloperKey = "Your developer key here";
string myOAuthKey = "The OAuth key for the target user's account here";

YouTubeRequestSettings settings = new YouTubeRequestSettings("My Uploader App Name", myDeveloperKey, myOAuthKey); // The documentation for this method implies it only accepts an authSub key - it works if you pass your OAuth key

YouTubeRequest request = new YouTubeRequest(settings);

Video newVideo = new Video();

newVideo.Title = "Test Video - ignore me";
newVideo.Tags.Add(new MediaCategory("Autos", YouTubeNameTable.CategorySchema));
newVideo.Keywords = "test 1 , test 2";

newVideo.Description = "test 3 test 4";
newVideo.YouTubeEntry.Private = false;

newVideo.Tags.Add(new MediaCategory("tag 1, tag 2", YouTubeNameTable.DeveloperTagSchema));
newVideo.Private = true; // Make this video private as it's a test

newVideo.YouTubeEntry.Location = new GeoRssWhere(37, -122);

newVideo.YouTubeEntry.MediaSource = new MediaFileSource(@"C:\MyTestVideo.mov", "video/quicktime");

Video createdVideo = request.Upload(newVideo);          

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 2015-06-08
    • 1970-01-01
    • 2013-05-03
    • 2014-09-27
    • 2014-01-06
    • 2019-10-19
    • 1970-01-01
    • 2012-08-19
    相关资源
    最近更新 更多