我一直在尝试使用带有混合结果的新V3 Data API获取评论列表。
对于某些视频,您只会获得一部分评论。我在一些视频中注意到这一点,但对于这个特定情况,我将使用视频ID = U55NGD9Jm7M
您可以在此处的WebUI中找到有关此视频的所有评论:https://www.youtube.com/all_comments?v=U55NGD9Jm7M
在发布时,该视频有5,499条评论。
API结果:
查询https://www.googleapis.com/youtube/v3/commentThreads?part=id,snippet,replies&textFormat=plainText&maxResults=100&videoId=U55NGD9Jm7M&key= {YOUR_API_KEY}时,我只收到317条评论(包括分页,并计算所有回复)(按时间顺序排序)。
验证研究:
如果您选择"热门评论"从下拉菜单然后向下滚动并点击"更多"一遍又一遍,你得到超过1000条评论(我停在约1,000条)
如果您然后选择"最新的第一"从下拉列表中重复这个过程(更多...更多...更多)你会发现在你无法再显示任何评论之前有大约317条评论。
我觉得很奇怪,UI中存在差异,但是感谢API与UI的一部分对齐。有没有其他人注意到这一点?有没有办法获得所有5,499条评论的全文?
谢谢!
杰森
后续行动
作为后续行动,我能够使用View-&gt; Source(线程ID z12wzfzhtybgz13kj22ocvsz2unrtn1qj04)隔离一条评论,并在此处获取API中此评论的所有信息:https://www.googleapis.com/youtube/v3/commentThreads?part=id%2Csnippet%2Creplies&id=z12wzfzhtybgz13kj22ocvsz2unrtn1qj04&maxResults=100&key= {YOUR_API_KEY})< / p>
它甚至提到评论与之关联的正确的VideoID。但是,当您通过视频查询时,不会返回此注释ID。
后续行动2 我刷新了所有评论的Web UI,并且返回的评论列表明显不同
答案 0 :(得分:0)
commentsThread.list
来电最多只能返回100个结果(请参阅documentation中的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
,这意味着您和&#0} #39;在最后一页上,并且没有更多评论主题可以返回)。