是否可以使用 C# .NET 和 YouTube 数据 API v3(不是 JavaScript 或任何其他客户端语言)获取我的每个 YouTube 视频的持续时间?
我已经搜索了几天,唯一想到的就是 Google 在其 .NET Code Samples page 上的示例它只显示了如何获取 playlistItems.list。但是,这并没有从 contentDeatils 给我一个视频列表及其相关持续时间。
请帮我解决这个问题。 谢谢大家。
最佳答案
遇到过类似的情况,我需要更新所有上传内容的描述。在这里查看隐藏的 gem :https://github.com/youtube/api-samples/tree/master/dotnet
在项目 Google.Apis.YouTube.Samples.UpdateVideos
中,您会发现一个循环,您可以稍微修改它并使用它来获取每个视频的持续时间。
foreach (var channel in channelsListResponse.Items)
{
var uploadsListId = channel.ContentDetails.RelatedPlaylists.Uploads;
Console.WriteLine("Videos in list {0}", uploadsListId);
var nextPageToken = "";
while (nextPageToken != null)
{
var playlistItemsListRequest = youtubeService.PlaylistItems.List("snippet");
playlistItemsListRequest.PlaylistId = uploadsListId;
playlistItemsListRequest.MaxResults = 50;
playlistItemsListRequest.PageToken = nextPageToken;
// Retrieve the list of videos uploaded to the authenticated user's channel.
var playlistItemsListResponse = await playlistItemsListRequest.ExecuteAsync();
foreach (var playlistItem in playlistItemsListResponse.Items)
{
var videoRequest = youtubeService.Videos.List("snippet");
videoRequest.Id = playlistItem.Snippet.ResourceId.VideoId;
videoRequest.MaxResults = 1;
var videoItemRequestResponse = await videoRequest.ExecuteAsync();
// Get the videoID of the first video in the list
var video = videoItemRequestResponse.Items[0];
var duration = video.ContentDetails.Duration;
}
nextPageToken = playlistItemsListResponse.NextPageToken;
}
}
关于c# - 使用 C# .NET 和 YouTube Data API v3 检索我的每个 youtube 视频的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44790637/