【问题标题】:YouTube Data API not returning the full data setYouTube 数据 API 未返回完整数据集
【发布时间】:2021-04-23 13:21:37
【问题描述】:

当提出以下请求时,它并没有给我完整的数据集,而是限制在 10 页和 500 条记录:

https://www.googleapis.com/youtube/v3/search?maxResults=50&part=id&type=video&channelId=UCgdHSFcXvkN6O3NXvif0-pA&pageToken=CPQDEAA

它只返回 2126 条记录中的大约 500 条记录。

2021-04-05T11:18:13.330-04:00    3    [1|Q-Id]    [HTTP|Res: 20]
[HTTP Headers]
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Vary: Origin
Vary: X-Origin
Vary: Referer
Content-Encoding: gzip
Date: Mon, 05 Apr 2021 15:18:13 GMT
Server: scaffolding on HTTPServer2
Cache-Control: private
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Alt-Svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
Transfer-Encoding: chunked
2021-04-05T11:18:13.330-04:00    3    [1|Q-Id]    [HTTP|Res: 20] {
  "kind": "youtube#searchListResponse",
  "etag": "5snf-LkAO-ildQnoSYiawBtMrQI",
  "nextPageToken": "CKYEEAA",
  "prevPageToken": "CPQDEAE",
  "regionCode": "US",
  "pageInfo": {
    "totalResults": 2126,
    "resultsPerPage": 4
  },

当我在这里尝试 API 时得到相同的行为:

https://developers.google.com/youtube/v3/docs/search/list.

【问题讨论】:

  • 问题是什么?
  • 这里有nextPageToken,如果您需要更多项目,请使用它来获取更多页面
  • 分页设置为 50,所以一个页面会给我 50 个视频,并且 10 次迭代后的 nextPageToken 设置为空白。因此,当我知道我们还有更多视频时,我只收到了大约 500 个视频。

标签: youtube-data-api


【解决方案1】:

根据Search.list API 端点的请求参数channelId 的以下官方规范,您遇到的行为是有效的:

channelId(字符串)

channelId 参数表示 API 响应应该只包含通道创建的资源。

注意:如果您的请求指定了 channelId 参数的值并将 type 参数值设置为 video,则搜索结果将限制为最多 500 个视频,但确实如此不要同时设置forContentOwner、forDeveloper 或forMine 过滤器之一。

因此,通过对 API 调用的结果集进行分页

https://www.googleapis.com/youtube/v3/search?maxResults=50&part=id&type=video&channelId=UCgdHSFcXvkN6O3NXvif0-pA

您将获得不超过 500 个视频项目。

【讨论】:

    【解决方案2】:

    正如@stvar 所说,搜索不是满足您需求的 YouTube 数据 API v3 端点。事实上,您正在尝试列出来自给定 YouTube 频道的视频,并且通过尝试这样做,我建议您关注 this approach。该方法包括在part 中使用Channels: list 和contentDetails 获取YouTube 频道的uploads 自动创建的播放列表ID,然后使用PlaylistItems: list 检索上传到此YouTube 频道的所有公共视频。

    【讨论】:

      猜你喜欢
      • 2013-09-11
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 2019-07-13
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      相关资源
      最近更新 更多