Jas*_*aul 5 youtube youtube-data-api
我一直在尝试使用新的 V3 数据 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 条评论(包括分页,并计算所有回复) )(按时间顺序排列)。
验证研究:
如果您从下拉列表中选择“热门评论”,然后向下滚动并一遍又一遍地单击“更多”,则会收到 1,000 多条评论(我停在大约 1,000 条)
如果您然后从下拉列表中选择“最新优先”并重复该过程(更多...更多...更多),您会发现在您无法显示更多评论之前,大约有 317 条评论。
我觉得 UI 中存在差异很奇怪,但感谢 API 与 UI 的一部分对齐。有没有其他人注意到这一点?有没有办法获得所有 5,499 条评论的全文?
谢谢!
杰森
跟进 1
作为后续工作,我能够使用 View->Source(线程 ID z12wzfzhtybgz13kj22ocvsz2unrtn1qj04)隔离一条评论,并在此处的 API 中从该评论中获取所有信息:https : //www.googleapis.com/youtube/v3/ commentThreads?part=id%2Csnippet%2Creplies&id=z12wzfzhtybgz13kj22ocvsz2unrtn1qj04&maxResults=100&key= {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
Run Code Online (Sandbox Code Playgroud)
为您提供 100 个评论线程,并且nextPageToken是Cg0Qk9fa7fHgxgIgACgBEhQIARCY49LZ5eDGAhi4rNGIrZrGAhgCIGM. 如果您将该令牌包含在新的 API 调用中,如下所示:
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId=Dlj6SUg9B04&&maxResults=100&nextPageToken=Cg0Qk9fa7fHgxgIgACgBEhQIARCY49LZ5eDGAhi4rNGIrZrGAhgCIGM&key=API_KEY
Run Code Online (Sandbox Code Playgroud)
您会得到一组完全不同的评论线程。您可以通过order=time在两个 API 调用中指定来仔细检查这一点。您将看到两个调用的最早评论线程不同,并且您不会在另一个调用的结果中找到任一调用的评论线程 ID。要获得更多评论线程,您可以nextPageToken从较新的调用结果中获取 ,并再次执行相同的操作(直到调用不再给您另一个nextPageToken,这意味着您位于最后一页,并且没有更多评论线程可返回)。
| 归档时间: |
|
| 查看次数: |
2351 次 |
| 最近记录: |