YouTube Api v3 .net库,Oauth令牌在视频上传期间到期

时间:2014-01-17 20:12:55

标签: c# .net youtube-api

问题和我尝试过的事情

嗨!我一直无法使用v3 api上传长到YouTube的视频,这是因为Oauth令牌需要每3600秒(1小时)刷新一次。这是大文件的问题(或者在上载开始时令牌即将过期的情况下)

现在,文档说它应该在接近过期时自动刷新,但事实并非如此,经过一些测试后,我已经能够确定令牌试图刷新大约2或3分钟迟到,导致上传因未经授权的错误而停止(401)。

现在,我尝试使用一个线程来手动检查Token(在服务的Youtube使用的用户凭据中找到)是否即将到期,并在它到期前1分钟调用UserCredential.RefreshTokenAsync。这有效,它实际上及时刷新了令牌,但是......通过它的外观,类InsertMediaUpload不使用对此令牌的引用,但是它使用了一个副本,因为在调试时我可以看到它正在使用旧的令牌,即使在线程更新后,再次导致同样的错误。

我的问题

我的问题基本上是,我该怎么办?有没有办法让我手动更新我的InsertMediaUpload对象正在使用的令牌?或者有没有办法使令牌“刷新”比现在更早发生?或者我还能做什么?

上传代码,以备不时之需

 using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
 {
        VideosResource.InsertMediaUpload videosInsertRequest =
            youtubeService.Videos.Insert(video, parts, fileStream, "video/*");
        videosInsertRequest.ProgressChanged += videosInsertRequest_ProgressChanged;
        videosInsertRequest.ResponseReceived += videosInsertRequest_ResponseReceived;

        await videosInsertRequest.UploadAsync();
 }

感谢您的帮助

PS :我实际上尝试使用可恢复上传来继续播放,但我仍然无法使其正常工作,但这是我猜的另一个问题。

0 个答案:

没有答案