模型视图控制器 - YouTube API 在请求文件详细信息时返回空值



对于我正在开发的应用程序,我需要知道某些YouTube视频的持续时间。我正在使用 YouTube API V3 的 .NET 库。

请求 FileDetails 的 durationMs 属性适用于某些视频,但对于其他视频(全部完全处理)返回"null"。该视频均未列出,并且应该保持不变,因此我宁愿不透露导致问题的视频的ID。

这个问题的原因可能是什么?我没有从 API 收到任何错误,并且我确实得到了容器 (MOV),但持续时间等属性都是空的。

我已经包含了相关的代码片段。

var videosListRequest = youtube.Videos.List("processingDetails,FileDetails");
videosListRequest.Id = file.FileName;
videosListRequest.OauthToken = Authresult.Result.Credential.Token.AccessToken;
VideoListResponse vlr = videosListRequest.Execute();
if (vlr.Items.Count > 0 && vlr.Items[0].ProcessingDetails.ProcessingStatus == "succeeded")
{
    file.IsVideoProcessed = true;
    int durationInS = (int)(vlr.Items[0].FileDetails.DurationMs / 1000.0);
    UpdateVideoStatus(file.Id, ClientId.Value, MediaStatus.READY, durationInS);
}

我认为你应该使用part=contentDetails而不是fileDetails。

从这个SO问题中,可以清楚地说明part=contentDetails包含持续时间。

以下是使用 part=contentDetails 的示例请求

https://www.googleapis.com/youtube/v3/videos?id=9bZkp7q19f0&part=contentDetails&key={YOUR_API_KEY}

有关详细信息,请查看此文档和此相关的 SO 问题。

相关内容

  • 没有找到相关文章

最新更新