Youtube API 视频列表返回的结果少于指示的结果



我正在自己的YouTube频道上运行查询以检索所有视频标题。我有 680 个视频,但只能获得其中的一半左右。我所做的是创建一个代码,该代码自频道创建以来迭代所有年份,并在一年内使用 pageTokens 浏览 50 个视频包。

因此,查询将如下所示:

https://www.googleapis.com/youtube/v3/search?key={XXXXX}&channelId={XXXXX}&part=snippet,id&order=date&type=video&maxResults=50&publishedAfter=2018-01-01T00:00:00Z&publishedBefore=2019-01-01T00:00:00Z&pageToken=CDIQAA

在这些查询的结果中,我得到指示,指示有以下内容:

array (
'totalResults' => 321,
'resultsPerPage' => 50,
),

遍历页面,我得到 2 个页面,其中包含 50 个项目,然后是另一个页面,结果也显示'resultsPerPage' => 50,但只包含 35 个视频,当年的其余页面在 JSON 数据中有 0 个"项目"。因此,有问题的页面仅返回 135 个结果,而不是 321 个结果。一旦我切换到下一年,我再次得到 2 页的完整结果,然后是一页缺少一些结果,然后是空白的。

知道可能出了什么问题吗?

以下是最后一个 JSON 数据集的摘录:

array (
  'kind' => 'youtube#searchListResponse',
  'etag' => '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/IsJyhRyDQ6qMmAHldktSRzEN2qs"',
  'nextPageToken' => 'CJYBEAA',
  'prevPageToken' => 'CGQQAQ',
  'regionCode' => 'DE',
  'pageInfo' => 
  array (
    'totalResults' => 321,
    'resultsPerPage' => 50,
  ),
  'items' => 
  array (
    0 => 
    [..contents..]
   35 =>
    [..last content and closing brackets..]

如果您想获取给定频道的整个视频列表而没有任何遗漏,我建议您改用 PlaylistItems 端点,通过将适当的值传递给端点的 playlistId 参数来查询给定频道的上传列表。

给定频道的上传播放列表 ID 是在查询频道自己的终结点时获取的。所需的 ID 可在 .items.contentDetails.relatedPlaylists.uploads 中找到。通常,频道 ID 及其相应的上传播放列表 ID 由 s/^UC([0-9a-zA-Z_-]{22})$/UU1/ 关联。

还有一点:您应该了解视频的发布时间和上传时间之间的差异。

相关内容

  • 没有找到相关文章

最新更新