我如何检索一些视频细节(持续时间,日期,视图)从一个播放列表与YouTube API V3在一个通行证

本文关键字:一个 播放列表 YouTube API 通行证 V3 何检索 视频 细节 持续时间 视图 | 更新日期: 2023-09-27 18:05:46

大家好,更具体地说,谷歌的人在你的支持页面监控这个标签。我是从。net和 playlisttitems . list ("snippet,contentDetails")没有做很多与旧的RSS提要搜索。事实上,添加部分contentDetails增加了很少的价值,因为现在只有VideoID返回,但它已经是Snippet.ResourceId.VideoId

的一部分

"类型":"youtube # playlistItem",bla,bla," contentDetails ": {:"videoId DLME0PsJRnk"}

为什么要添加一个只返回一位信息的"部分"?

是否支持"snippet,contentDetails(duration, publishhedat,Views)"我觉得这是一种基本的元数据(片段),大多数应用程序会想要列出给用户。当你在这里的时候,请删除这些无意义的Java参数的大小写。为什么你要把你选择的语言泄露到API中,这真的很可悲。是的,不断检查大小写拼写是否正确是令人沮丧的。

好吧,看起来你强迫"我们"建立一个videoid列表,而不是转身做更多的API调用,而我以前做的更少。这也意味着,我将不得不管理50项最大分页两次,一次播放列表,如果它超过50个视频,然后手动管理我的videosid分页列表,当我转身制作视频。列表调用。

如果我错过了All-In-One call类型的API,请告诉我,谢谢。

我如何检索一些视频细节(持续时间,日期,视图)从一个播放列表与YouTube API V3在一个通行证

这是我现在的工作,让我知道如果有更好的方法

        // 20150802
    public async Task<List<YouTubeInfo>> PlaylistVideosInfo(String PlaylistID)
    {
        var YoutubeService = YouTubeService();
        //
        List<YouTubeInfo> VideoInfos = new List<YouTubeInfo>();
        //
        var NextPageToken = "";
        while (NextPageToken != null)
        {
            // 
            var SearchListRequest = YoutubeService.PlaylistItems.List("snippet");
            SearchListRequest.PlaylistId = PlaylistID;
            SearchListRequest.MaxResults = 50;
            SearchListRequest.PageToken = NextPageToken;
            // Call the search.list method to retrieve results matching the specified query term.
            var SearchListResponse = await SearchListRequest.ExecuteAsync();
            // Collect Video IDs from this page
            var VideoIDsBatch = new List<string>(); // batch Video detail search by 50 max
            foreach (var searchResult in SearchListResponse.Items)
            {
                VideoIDsBatch.Add(searchResult.Snippet.ResourceId.VideoId);                    
            }
            // Make API call for this batch  - expect a single page :(
            var VideoListRequest = YoutubeService.Videos.List("snippet,contentDetails");
            VideoListRequest.Id = String.Join(",", VideoIDsBatch); 
            VideoListRequest.MaxResults = 50;
            var VideoListResponse = await VideoListRequest.ExecuteAsync();
            // Collect each Video details
            foreach (var VideoResult in VideoListResponse.Items)
            {
                YouTubeInfoAdd(VideoInfos, VideoResult);
            }
            // request next page
            NextPageToken = SearchListResponse.NextPageToken;
        }
        // Return All Videos' detail
        return VideoInfos;
    }