youtube-api - startindex >= 100 时的空响应

标签 youtube-api

经过大量的调试,我终于发现,在使用 v2 YouTube-API 获取评论时,看似 Youtube 只发布前 100 条评论。我终于尝试使用:

curl -Lk -X GET "http://gdata.youtube.com/feeds/api/videos/MShbP3OpASA/comments?alt=json&start-index=100&max-results=50"

我得到的只是一个没有 entry 的回复范围。也就是说,我没有收到错误响应或类似的东西 - 我得到了非常好的响应,但没有 entry范围。

再深入一点,在我的回复中 openSearch$totalResults 的值是 100,所以根据 this resource这似乎是预期的结果(尽管它讲述了我没有得到的某种错误消息?)。

但问题来了:当我使用
curl -Lk -X GET "http://gdata.youtube.com/feeds/api/videos/MShbP3OpASA/comments?alt=json&start-index=1&max-results=50&orderby=published"
openSearch$totalResults等于 3141,评论的实际计数。

现在我的问题是:由于大约一周前正式弃用了 v2 API,Google 是否可能只是对评论设置了限制?所以只能访问前 100 条评论?由于 v3 API 不允许检索评论,这对我来说将是一件非常令人沮丧的事情。

有没有人有任何想法?

最佳答案

我已经弄清楚如何使用嵌入在 json 响应中的导航链接来检索所有评论。

假设您使用如下链接检索第一个(此处为 python,但您明白了):

r' https://gdata.youtube.com/feeds/api/videos/ ' + aVideoID + r'/comments?alt=json&start-index=1&max-results=50&prettyprint=true&orderby=published'

嵌入在“feed”下(以及评论之前)的 json 中将是一个名为“link”的四元素数组。第四个元素将被称为“rel”:“next”,在“href”下将有一个链接,您可以使用它来获取接下来的 50 条评论。该链接将类似于:

https://gdata.youtube.com/feeds/api/videos/fH0cEP0mvlU/comments?alt=json&orderby=published&alt=json&start-token=EgkI2NqyoZDRvgIosK%2FPosPRvgIw653cmsXRvgI4AUAC&max-results=50&orderby=published

对于原始 URL:

https://gdata.youtube.com/feeds/api/videos/fH0cEP0mvlU/comments?alt=json&start-index=1&max-results=50&prettyprint=true&orderby=published

如果您点击下一个链接,它将返回与原始链接类似的 json,还有另外 50 条评论。一遍又一遍地继续这个过程,直到你得到所有的评论(在我的代码中,我检查 json 中是否缺少此项或 json 中的零评论以确定何时停止)。

您需要原始 URL 中的“&orderby=published”,否则“下一个”链接最终会变得太大并导致错误(API 使用 token 中的某些内容来跟踪您在默认 orderby 中看到的评论)很大的空间)。关于已发布的 orderby 的某些内容使“start-token”保持较小,而在使用默认 orderby 进行大约 500 条评论后,您将开始收到 414 Request URI too long 错误。

希望这可以帮助。

关于youtube-api - startindex >= 100 时的空响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22288123/

相关文章:

youtube-api - 有什么方法可以提高YouTube API v3配额限制?

button - 网站的YouTube按钮

ios - YouTube上传错误: GTLJSONRPCErrorDomain Code=401

html - 嵌入YouTube HTML5视频

android - 使用Youtube SDK Android在YouTube视频的末尾隐藏相关视频

android - Youtube api键缓存搜索查询的json结果

android - 如何阻止在 youtube 播放器 api 中播放的 youtube 视频的广告?

youtube - 如何从 YouTube Analytics API 获取属于当前用户的每个视频的指标?

android - Youtube api Apache 2.0 许可证

youtube - 如何通过 API 从自动生成的 YouTube channel 的播放列表中获取视频列表?