YouTube API v3检查视频处理状态

本文关键字:处理 状态 视频 检查 API v3 YouTube | 更新日期: 2023-09-27 18:12:38

一旦视频上传,如何使用c# .NET的API检查其处理状态?答案应该在google . api . youtube .v3. data中。VideoProcessingDetails,但是该对象究竟应该如何实例化呢?下面的代码抛出System.Net.Http.HttpRequestException:

video.ProcessingDetails = new VideoProcessingDetails();

上面的代码在以下上下文中使用:

 UserCredential credential;
 using (FileStream stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
 {
        credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
                new[] { YouTubeService.Scope.Youtube, YouTubeService.Scope.YoutubeUpload },
                "user",
                CancellationToken.None,
                new FileDataStore("YouTube.Auth.Store")).Result;
 }
 var youtubeService = new YouTubeService(new BaseClientService.Initializer()
 {
        HttpClientInitializer = credential,
        ApplicationName = Assembly.GetExecutingAssembly().GetName().Name
  });
  var video = new Video();
  video.Snippet = new VideoSnippet();
  video.Snippet.Title = Title;
  video.Snippet.Description = Description;
  video.Snippet.Tags = Tags;
  video.ProcessingDetails = new VideoProcessingDetails(); // Here it throws an exception
  video.Snippet.CategoryId = CategotyId;
  video.Status = new VideoStatus();
  video.Status.PrivacyStatus = PrivacyStatus;
  var filePath = FilePath;

这个想法是,一旦视频上传,在循环中检查视频是否仍在处理,并在处理完成后对其执行其他操作。

更新:我发现,如果对象在视频上传后实例化(即在私有静态void videosinsertrequest_responserreceived ()方法中,例如),异常就消失了,但是一旦我尝试访问视频。值,表示该值为空

谢谢。

YouTube API v3检查视频处理状态

在我自己的工作中,我发现当ProcessingDetails。ProcessingStatus等于"terminated", ProcessingDetails中的所有其他属性都不等于什么(即null)。我相信这意味着YouTube已经完成了对视频的处理。

我通常检查一个Google API v3属性,看看它是否为空之前,试图使用它。