如何从Youtube API(搜索API)响应中获取所有结果

时间:2014-12-16 08:15:52

标签: youtube youtube-api

喜欢标题。 我这样做了一个请求:

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属性转到下一页。 ??? 我不知道为什么。 我怎样才能得到所有结果。

2 个答案:

答案 0 :(得分:17)

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个结果,但是你将全部获得它们。

答案 1 :(得分:0)

顺便说一下,有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, ...