YouTube 数据 API v3 评论线程差异

标签 youtube youtube-data-api

我一直在尝试使用新的 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 条评论(包括寻呼,并计算所有回复)(按时间顺序排序)。

验证研究:

如果您从下拉列表中选择“热门评论”,然后向下滚动并反复点击“更多”,您会收到超过 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 个结果(请参阅 documentation 中的 maxResults)。如果您想获得更多评论线程,则必须将从初始调用中获得的 nextPageToken 传递到后续 API 调用中。

例如:

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

为您提供 100 个评论线程,nextPageTokenCg0Qk9fa7fHgxgIgACgBEhQIARCY49LZ5eDGAhi4rNGIrZrGAhgCIGM。如果您将该 token 包含在新的 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,这意味着您位于最后一页,并且没有更多评论线程可返回)。

关于YouTube 数据 API v3 评论线程差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29974742/

相关文章:

android - 如何通过Youtube Data API v3/JSOUP解析获取评论?

Youtube Api V3 搜索 - 删除视频描述中的第一个字符 (char ¿)

php - 从 youtube 视频 (php) 中恢复数据

youtube - 如何在 youtube api 版本 3 中获得 youtube `search instead` 功能?

javascript - 将 javascript var 传递到 iframe

javascript - 在 iPhone Safari HTML 页面上打开带有图像的 Youtube 视频

Youtube Quota Exceeded Exception 实际上不是

php - Youtube 数据 api v3 未按预期工作

javascript - 使用 YouTube API 检查视频是否可嵌入

javascript - 嵌入式 YouTube 视频不会在 Chrome 和 IE 中停止