使用allThreadsRelatedToChannelId调用YouTube commentThreads API返回0结果
别搞混参数用途:
allThreadsRelatedToChannelId不是获取频道下所有视频的评论
这个参数仅用于抓取频道主页讨论区的评论(也就是频道主页下方独立的评论区,和视频自带的评论区是两回事)。如果CrunchLabs频道关闭了主页讨论区功能,或者该区域本身没有任何评论,自然会返回空结果。而你用videoId能拿到正常结果,说明视频自身的评论功能是正常的。要获取频道下所有视频的评论,正确流程是:先调用channels.list接口获取频道的uploads播放列表ID,再调用playlistItems.list遍历出所有视频ID,最后逐个调用commentThreads.list获取每个视频的评论。检查频道的评论全局设置
频道所有者可能修改了评论权限:比如关闭了"允许观众对我的视频发表评论"的全局开关,或者设置了仅特定用户可评论。不过你用单个videoId能拿到评论,说明这个可能性较低,但可以直接去YouTube网页查看该频道的任意视频评论区是否对外可见。确认API请求的参数完整性
确保请求里指定了正确的part参数(必须包含snippet,比如part="snippet"),如果需要获取评论回复,还要加上replies。另外检查是否错误设置了textFormat等过滤参数,或者遗漏了必要的分页参数(不过空结果的话分页参数影响不大)。检查API密钥的受限内容访问权限
如果频道内容有年龄限制或被标记为成人内容,你的API密钥需要在Google Cloud控制台开启"YouTube Data API v3"的受限内容访问权限。不过既然单个videoId能拿到结果,这个大概率不是问题,但可以去控制台确认下权限设置。
内容的提问来源于stack exchange,提问作者Padraic Bartholomew

