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

Hoa*_* Ha 9 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=
Run Code Online (Sandbox Code Playgroud)

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

joh*_*h10 19

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个结果,但你会得到它们全部.