如何使用 OAuth2 访问令牌 (.NET) 通过 API 上传 Youtube 视频?

问题描述 投票:0回答:1

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

到了这个阶段,我现在意识到我不知道如何使用我的访问令牌上传视频(我知道在回答这个问题时我可能需要刷新它)-任何人都可以帮忙吗?我找不到任何有关使用 YouTube .NET 客户端库(例如

YouTubeRequestSettings
YouTubeRequest
等)来执行此操作的文档 - 非常感谢所有帮助!

c# .net youtube upload youtube-api
1个回答
2
投票

我最终通过反复试验发现了这一点 - 脱节的 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);          
© www.soinside.com 2019 - 2024. All rights reserved.