【问题标题】:YouTube API returns nextPageToken with empty listsYouTube API 返回带有空列表的 nextPageToken
【发布时间】:2018-12-13 05:58:04
【问题描述】:

这个问题与 YouTube API 500-1000 meaningful results question 无关。我认为 YouTube API nextPageTokens 的工作方式是,一旦没有更多结果返回,它们就会为空。但是,我看到一开始就返回了结果,但有时即使只有 8 个项目(对于单个请求,maxResults = 50),它也会包含一个 nextPageToken ,但这只会返回一个空的“项目”列表。随后的 nextPageToken 会导致更多的空列表,直到达到最大值 1000,然后 nextPageToken 变为 null。

另外令人担忧的是 page_info['totalResults'] 显示为 1000000,但在许多情况下仅返回不到 200。

所以它可能会发生:
- 提出初始请求,获得 50 个结果
- 查询 nextPageToken,得到另外 50 个结果 AND nextPageToken
- 查询 nextPageToken,得到另外 8 个结果 AND nextPageToken
- 查询 nextPageToken,得到一个空列表 AND nextPageToken
- 查询 nextPageToken,得到一个空列表 AND nextPageToken
- 等等

这正常吗?还是我必须查找部分“项目”列表以确定结果是否完成?

【问题讨论】:

    标签: python youtube-api youtube-data-api


    【解决方案1】:

    首先,totalResults 是一个近似值。

    As written in docs:

    结果集中的结果总数。请注意,该值是近似值,可能不代表精确值。此外,最大值为 1,000,000。 您不应使用此值来创建分页链接。而是使用 nextPageToken 和 prevPageToken 属性值来确定是否显示分页链接。

    所以它可能是应用任何过滤器之前的结果计数(只是推测)。

    现在介绍 nextPageToken空项目

    https://issuetracker.google.com 上有很多关于他们怪异行为的公开问题 他们多年来一直在努力修复它们。 see one of them

    看起来 Youtube 试图通过估计来优化每个搜索请求的 CPU 服务器时间,或者可能应该来自您所在地区的内容受到限制(例如),或者可能是因为在获取 nextPagetokens 之后遇到了其他一些条件。

    这正常吗?还是我必须查找部分“项目”列表以确定结果是否完成?

    目前是 IMO,是的。

    可能的实现:

    1. 只要有 nextPageToken 可用,就继续进行连续调用。 这个比较推荐。

    2. 在一些 API 调用之后,如果项目变为空,则不需要 API 调用。 对于分页实现中存在错误的当前情况,这可以被认为是有效的。但不可靠。

    【讨论】:

      猜你喜欢
      • 2019-05-13
      • 2017-11-29
      • 2019-01-06
      • 2018-08-28
      • 2018-08-01
      • 2019-08-05
      • 2021-10-16
      • 1970-01-01
      • 2014-09-16
      相关资源
      最近更新 更多