【问题标题】:How can get all results from Youtube API (search API) response如何从 Youtube API(搜索 API)响应中获取所有结果
【发布时间】:2015-02-14 12:06:26
【问题描述】:

喜欢标题。 我提出这样的要求:

https://www.googleapis.com/youtube/v3/search?key=AIzaSyDuxczhyyvHWfxKuF3ygW9p0GWmKlvWLYc&part=id,snippet&publishedAfter=2014-12-09T00:00:00Z&publishedBefore=2014-12-11T00:00:00Z&videoCategoryId=GCSG93LXRvICYgRElZ&type=video&maxResults=50&pageToken=

总结果是 1000000。但我最多只能得到 500 个结果(10 页,50 个结果/页)。 在第 10 页,我没有看到 nextPageToken 属性可以转到下一页。 ??? 我不知道为什么。 我怎样才能得到所有的结果。

【问题讨论】:

    标签: youtube youtube-api


    【解决方案1】:

    YouTube 规定了大约 500 的软限制。没有直接的方法可以通过 API 获得更多。

    详细信息:https://code.google.com/p/gdata-issues/issues/detail?id=4282

    相关摘录:

    “我们无法通过 API 为任意 YouTube 查询提供超过 500 个搜索结果,否则搜索结果的质量会严重下降(重复等)。

    v1/v2 GData API 早在 11 月就进行了更新,将返回的搜索结果数量限制为 500。如果您指定的起始索引为 500 或更多,则不会返回任何结果。

    这应该也对 v3 API 生效(它使用不同的结果分页方法)但显然没有推出,因此在 v3 中仍然可以检索多达 1000 个搜索结果——最后 500 个通常质量很差。

    将 v3 的搜索结果限制为 500 个的更改将在不久的将来某个时候推出。一旦达到 500 个结果,将不再返回 nextPageTokens。

    我知道在所有这些情况下返回的 totalResults 都远高于 500,但这与说我们可以有效地返回所有 X 百万个可能的结果不同。它是对与查询匹配的视频集的总大小的估计,通常不是很有用。”

    更新 - 如何绕过 500 个结果的最大软限制

    使用过滤器“publishedAfter”和“publishedBefore”将您的查询分解为按天/周/月的查询循环,直到不再返回结果。每个定期查询应返回少于 500 个结果,但您会得到所有结果。

    【讨论】:

    • 非常感谢@john。我已经搜索了很多天,但找不到答案。谢谢。
    【解决方案2】:

    顺便说一句,有channelId 的文档(仍然没有videoCategoryId

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

    Note: Search results are constrained to a maximum of 500 videos if your request specifies a value
    for the channelId parameter and sets the type parameter value to video, ...
    

    【讨论】:

      猜你喜欢
      • 2018-02-13
      • 2016-07-31
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      • 2018-11-17
      • 2016-05-15
      相关资源
      最近更新 更多