如何通过YouTube API获取本人发布的评论?调用返回400错误
问题原因
你调用commentThreads/list接口传channelId返回400,本质是对接口参数的语义理解错了:这个参数的作用是筛选发布在指定频道下的评论线程,根本不是筛选指定频道/用户自己发出的评论。YouTube Data API v3从设计上就没开放「按发布用户维度拉取全量评论」的能力,自然找不到对应实现方法,传参不对报400是必然结果。
可落地的实现方法
方法一:走Google账号自有数据导出(100%全量,最推荐)
你提到的Google账号自带的个人活动入口本身就存了你发过的所有YouTube评论,不需要依赖公开API就能拿到完整数据:
- 进入个人Google活动页,筛选到YouTube评论分类
- 页面内容是滚动动态加载的,写个几十行的浏览器控制台脚本,自动滚动加载完所有内容后,解析页面上的评论正文、发布时间、关联视频信息,直接按你要的格式拼接成Markdown文件就行
- 不想写脚本的话,直接用Google官方的Takeout数据导出功能,勾选YouTube相关数据,导出的压缩包里会包含你所有历史评论的结构化文件,本地简单解析就能转成Markdown。
方法二:API迂回实现(覆盖度极低,不推荐)
如果一定要走YouTube API实现,只能拿到非常有限的评论数据:
- 先调用
channels/list接口拿到你个人频道的上传视频列表ID,拉取你自己发布过的所有视频的ID - 遍历每个自有视频ID,调用
commentThreads/list拉取对应视频下的所有评论,从中筛选出作者为你自己账号的内容 - 这个方法只能拿到你在自己发布的视频下留的评论,你在其他创作者视频下发的评论完全无法通过这个方式获取——总不可能遍历全平台所有视频去筛查你的评论,实用性基本为0。
别再浪费时间试
commentThreads/list的channelId参数了,从接口设计上就不支持你要的查询逻辑,调多少次都是错的。
内容的提问来源于stack exchange,提问作者coscorrodrift
相关产品推荐
相关产品推荐

