【问题标题】:Youtube Data API V3 Number of results not equal to maxResults/pageInfo.resultsPerPageYoutube Data API V3 结果数不等于 maxResults/pageInfo.resultsPerPage
【发布时间】:2017-07-11 22:11:48
【问题描述】:

美好的一天。我正在尝试在按观看次数排序的指定发布日期内获取热门游戏视频。我在 JSON 响应中返回的项目数有问题,因为它少于 50 个项目,即使我已将 maxResults 参数设置为 50 并且 JSON 响应返回的 pageInfo.resultsPerPage 等于 50。 totalResults 还返回比 50 多得多的结果,因此它应该在结果中显示 50 个项目。例如,我使用以下 URL

https://www.googleapis.com/youtube/v3/search?key={API_Key}&part=sn-p&maxResults=50&order=viewCount&publishedAfter=2017-02-01T00%3A00%3A00Z&publishedBefore=2017-02-01T00%3A01%3A59Z&type=video&videoCategoryId=20

我上次运行此查询时返回的结果有 20 项,尽管总共有 161,307 个结果。我想问一个解决方案,以确保如果可能的话,我将始终获得等于 maxResults 的项目数。希望有人可以帮助我。非常感谢。

编辑:我知道如何使用页面令牌,但我的目标不是获取多个请求所需的项目(因为数据 API 每天的积分有限)。我要解决的问题是确保每次调用请求时总是能获得 50 个项目。

【问题讨论】:

  • 您可以使用 Nextpage 令牌显示更多视频
  • Values must be within the range: [0, 50] 您可以使用 Nextpage Token 查看更多视频
  • 我使用的 maxResults 值是 50,所以它应该是一个有效值。根据文档 maxResults 参数指定结果集中应返回的最大项目数。我的假设是结果集是我的过滤器参数应用“之后”的结果。我知道如何使用页面令牌,但我的目标不是获取多个请求所需的项目(因为数据 API 每天的积分有限)。我要解决的问题是确保每次调用请求时总是得到 50 个项目。

标签: youtube-api


【解决方案1】:

嗯,我通过您提供的 URL 请求获得了 50 个结果。只需确保为您使用的参数设置正确的值,尤其是publishedAfter 中的值。您也可以使用参数pageToken 获取下一页或后50 个结果。

有关更多信息,请查看此SO question,了解如何使用pageToken

【讨论】:

  • 感谢您的回复。我得到的物品数量实际上是不一致的。我现在试了一下,它返回了 18 个项目。我知道如何使用页面令牌,但我的目标不是获取多个请求所需的项目(因为数据 API 每天的积分有限)。我要解决的问题是确保每次调用请求时总是得到 50 个项目。现在我想知道 API 是否以某种方式对获取请求有超时,并且在我的连接中,我总是在 50 个项目完成之前得到超时。只是一个有根据的猜测。
【解决方案2】:

尽管总共有 160k+ 个结果,但您的 publishedAfter/publishedBefore 过滤器将返回的数量减少到该时间范围内发布的视频,即 20。

【讨论】:

  • 感谢您的回复。你有这方面的参考吗?根据文档 pageInfo.totalResults 是结果集中的结果总数。我假设通过结果集,它意味着应用过滤器后的结果。同样值得一提的是,搜索结果的 nextPageToken 字段中有一个值。如果我的发布日期范围如您所说的将结果截断为 20,我认为他们提供页面令牌以查看下一组结果是没有意义的。
猜你喜欢
  • 2020-01-02
  • 1970-01-01
  • 2014-05-14
  • 2015-08-09
  • 1970-01-01
  • 2016-08-25
  • 2012-12-19
  • 2018-11-14
  • 1970-01-01
相关资源
最近更新 更多