YouTube数据API v3评论线程差异



我一直在尝试使用新的V3Dataneneneba API获得一个结果喜忧参半的注释列表。

对于某些视频,你只会得到一部分评论。我在一些视频中注意到了这一点,但对于这个特定的情况,我将使用视频ID=U55NGD9Jm7M

您可以在此处的WebUI中找到对此视频的所有评论:https://www.youtube.com/all_comments?v=U55NGD9Jm7M

在发布时,这段视频共有5499条评论。

API结果

查询时https://www.googleapis.com/youtube/v3/commentThreads?part=id,摘录,回复&text格式=纯文本&maxResults=100&videoId=U55NGD9Jm7M&key={YOUR_API_key}我只收到大约317条评论(包括寻呼和计算所有回复)(按时间排序)。

验证研究

如果你从下拉菜单中选择"热门评论",然后向下滚动,一遍又一遍地点击"更多",你会得到1000多条评论(我在1000条左右停止)

如果你从下拉列表中选择"最新的第一条"并重复这个过程(更多…更多…更多),你会发现在你无法显示更多评论之前,大约有317条评论。

我发现UI中存在差异是很奇怪的,但感谢API与UI的一部分对齐。其他人注意到了吗?有没有办法获得所有5499条评论的全文?

谢谢!

Jason

后续1

作为后续操作,我能够使用View->Source(线程ID z12wzfzhtybgz13kj22cvsz2unrtn1qj04)隔离一个注释,并在API中获取该注释的所有信息:https://www.googleapis.com/youtube/v3/commentThreads?part=id%2Csnippet%2Creplies&id=z12wzfzhtybgz13kj22cvsz2unrtn1qj04&maxResults=100&密钥={YOUR_API_key})

它甚至提到了与评论相关联的正确的VideoID。但是,当您通过视频进行查询时,不会返回此评论ID。

后续2我刷新了所有评论的Web UI,并且有一个明显不同的评论列表正在返回

commentsThread.list调用最多只能返回100个结果(请参阅文档中的maxResults)。如果您想获得更多的注释线程,您必须将从初始调用获得的nextPageToken传递到后续的API调用中。

例如:

https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId=U55NGD9Jm7M&maxResults=100&key=API_KEY

提供了100个注释线程,而nextPageToken就是Cg0Qk9fa7fHgxgIgACgBEhQIARCY49LZ5eDGAhi4rNGIrZrGAhgCIGM。如果您在新的API调用中包含该令牌,如:

https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId=Dlj6SUg9B04&&maxResults=100&nextPageToken=Cg0Qk9fa7fHgxgIgACgBEhQIARCY49LZ5eDGAhi4rNGIrZrGAhgCIGM&key=API_KEY

你会得到一组完全不同的评论线程。您可以通过在两个API调用中指定order=time来对此进行双重检查。您将看到两个调用的最早注释线程是不同的,并且在另一个调用的结果中找不到任何一个的注释线程ID。要获得更多的注释线程,您可以从新调用的结果中获取nextPageToken,然后再次执行相同的操作(直到调用没有给您另一个nextPageToken,这意味着您已经到了最后一页,并且没有更多的评论线程可返回)。

最新更新