Google Youtube API 搜索不会检索频道中的所有视频



我必须使用YouTube API检索我的频道的所有视频。所有视频都在YouTube上发布,我可以正确地看到它们。

我试图直接从此页面提出请求:https://developers.google.com/youtube/v3/docs/search/list这是示例请求:获取http s://www.googleapis.com/youtube/v3/search?part = spippet& channelid = myChannelId& maxResults = 50& key = {your_api_key}

请求没有检索所有视频,它总共只返回7个。所有视频都具有相同的配置。丢失的视频总是相同的。

如果我使用视频API传递了从搜索响应中排除的其中一个视频的ID,则它返回正确的响应,并且正确属于我的频道:https://developers.google.com/youtube/v3/docs/videos/list#try-it-it-it

有人可以帮助我吗?

预先感谢您

francesco

使用YouTube数据API V3在频道中获得所有视频的列表的答案?"这可能是您需要的。特别查看答案中链接的视频。

要总结一下,要从频道中获取所有上传,您需要使用playlistItemss.list in playlistItemss.list在该播放列表的ID上获取频道的播放列表,而不是在频道ID上调用search.list。

尝试这种两步方法:

  1. 使用频道获取频道上传播放列表的ID。清单API调用:GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id={YOUR_CHANNEL_ID}&key={YOUR_API_KEY}
  2. 使用playlistItem.List Call:GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=3&playlistId={YOUR_PLAYLIST_ID}&key={YOUR_API_KEY}
  3. 从上传播放列表中获取视频

尝试此

async static Task<IEnumerable<YouTubeVideo>> GetVideosList(Configurations configurations, string searchText = "", int maxResult = 20)
{
    List<YouTubeVideo> videos = new List<YouTubeVideo>();
    using (var youtubeService = new YouTubeService(new BaseClientService.Initializer()
    {
        ApiKey = configurations.ApiKey
    }))
    {
        var searchListRequest = youtubeService.Search.List("snippet");
        searchListRequest.Q = searchText;
        searchListRequest.MaxResults = maxResult;
        searchListRequest.ChannelId = configurations.ChannelId;
        searchListRequest.Type = "video";
        searchListRequest.Order = SearchResource.ListRequest.OrderEnum.Date;// Relevance;

        var searchListResponse = await searchListRequest.ExecuteAsync();

        foreach (var responseVideo in searchListResponse.Items)
        {
            videos.Add(new YouTubeVideo()
            {
                Id = responseVideo.Id.VideoId,
                Description = responseVideo.Snippet.Description,
                Title = responseVideo.Snippet.Title,
                Picture = GetMainImg(responseVideo.Snippet.Thumbnails),
                Thumbnail = GetThumbnailImg(responseVideo.Snippet.Thumbnails)
            });
        }
        return videos;
    }
}

相关内容

  • 没有找到相关文章

最新更新