YouTube CommentThreads.list接口返回403 commentsDisabled错误咨询
问题说明
调用YouTube Data API v3的CommentThreads.list接口时发起如下GET请求:
GET https://youtube.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&allThreadsRelatedToChannelId=UC14YzmOgfiBEvEEeCDAtfjg
接口返回403错误,错误核心标识为commentsDisabled,提示传入的videoId参数对应视频关闭评论。实际核查目标频道(ID:UC14YzmOgfiBEvEEeCDAtfjg)前台公开视频,未发现评论关闭的内容;对另一个已知存在关评视频的频道(ID:UCb0igM0fY85iaKarWkcLOAQ)发起同结构请求,接口可正常返回结果。
错误触发逻辑
该报错提示存在误导性,并非只有显式传入videoId参数时才会触发:
使用allThreadsRelatedToChannelId参数拉取频道全量关联评论线程时,API服务端会遍历该频道下所有绑定评论区的内容索引,覆盖范围远大于频道前台可见的公开上架视频,还包含未列出/私享视频、已下架/已删除但残留评论索引的视频、老版频道讨论区历史帖子、Shorts草稿等内容。遍历过程中只要命中任意一个评论区关闭的条目,API会直接中断请求返回该403错误,不会自动跳过异常项返回剩余结果。
测试的另一个存在关评视频的频道可正常返回,仅因为当前请求返回的分页段还未遍历到关评条目的索引位置,翻页到对应位置时同样会触发报错,和频道本身属性无关。手动核查未发现关评视频,本质是大部分触发报错的内容没有公开展示入口,前台无法直接查看。
排查与修复方案
- 定位异常条目位置:给请求加上
maxResults=1参数,逐次调整pageToken翻页,找到触发报错的具体分页节点,先确认是单条内容导致的全局报错,排除密钥权限异常、频道整体被限制类问题。 - 全面核查关评内容:
- 登录对应频道创作者后台,筛选所有状态(公开、未列出、私享、已删除、已下架)的长视频与Shorts,逐一检查评论区开关状态
- 核查频道2020年之前的老版讨论区历史帖子,这类帖子在讨论区功能下线后会被系统默认关闭评论,且公开展示入口已移除,但仍保留在API索引中
- 筛选被系统自动判定为面向儿童的内容,这类内容会被系统强制关闭评论,前台不会做特殊标注,容易漏判
- 调整拉取逻辑规避全局报错:放弃使用
allThreadsRelatedToChannelId做全量拉取,先通过频道视频列表接口拉取该频道所有公开状态的视频ID,再逐个传入videoId参数拉取对应视频的评论。单条视频的关评报错只会中断当前视频的拉取,不会影响其他视频的结果返回。 - 校验密钥权限:换一个未设置应用/IP/Referer限制的测试API密钥发起相同请求,排除密钥限制导致的错误原因映射错位问题。
内容的提问来源于stack exchange,提问作者Noam Zeplovitch
相关产品推荐
相关产品推荐

