喜欢标题。 我这样做了一个请求:
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属性转到下一页。 ??? 我不知道为什么。 我怎样才能得到所有结果。
答案 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, ...