c# - 使用 C# .NET 和 YouTube Data API v3 检索我的每个 youtube 视频的持续时间

标签 c# .net video youtube-api youtube-data-api

是否可以使用 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/

相关文章:

c# - SQLite typeof() 也应该与 SQL 一起工作吗?

c# - 如何将 UserControl 放入 Visual Studio 工具箱

c# - 从 List<string> of words 生成最多 X 长度的所有组合

iphone - 禁用 UIWebView 自动播放视频

html - 嵌入式YouTube视频无法加载

iphone - ALAsset 视频压缩

c# - TableLayoutPanel:删除行

c# - 关于 global.asax 和那里的事件

c# - Entity Framework 6 - 缺少仅包含引用不同表的主键的表

.net - SmtpClient (.NET) 未按照 RFC 2047 对邮件 header 进行编码