YouTube Data API异常:订阅者计数非零但订阅者列表返回空
解决YouTube Data API获取订阅者列表返回空的问题
看起来你在这里犯了一个很容易混淆的API参数使用错误,这大概率是导致你拿到空响应的核心原因,咱们一步步理清楚:
核心问题:参数用途搞反了
你调用subscriptions.list时用了mine=true,但这个参数的作用是获取当前授权用户所订阅的频道列表(也就是“我关注了谁”),而不是获取订阅你频道的用户列表(也就是“谁关注了我”)。
要获取订阅你频道的用户,你需要使用forChannelId参数指定你的频道ID,同时结合part参数来获取订阅者的信息。
正确的API调用示例
curl \ 'https://youtube.googleapis.com/youtube/v3/subscriptions?part=snippet,id,subscriberSnippet,contentDetails&forChannelId=UCWjFX5qjtUCF4Xr-Z4q0h9w&key=XXXXXX' \ --header 'Authorization: Bearer XXXXXX' \ --header 'Accept: application/json' \ --compressed
注意:
forChannelId:指定你要查询订阅者的目标频道ID(即你的频道ID UCWjFX5qjtUCF4Xr-Z4q0h9w)- 仍然需要携带有效的Bearer令牌,因为获取订阅者信息需要授权(哪怕是你自己的频道)
其他可能导致空响应的原因
如果调整参数后还是拿到空结果,那可能是以下情况:
- 订阅者隐藏了订阅行为:YouTube允许用户设置“隐藏我的订阅列表”,这类订阅者不会出现在API返回的结果中,但会被计入
subscriberCount统计里。你可以去YouTube Studio后台查看订阅者列表,如果后台里也看不到这些订阅者,那就是这个原因。 - 权限不足:确保你的授权令牌包含了
https://www.googleapis.com/auth/youtube.readonly或更高权限的scope,没有足够权限的话,API会过滤掉部分数据。 - 订阅者账号状态异常:如果订阅者的账号被删除、暂停或封禁,API不会返回这些订阅者的信息,但统计计数可能还没同步更新。
内容的提问来源于stack exchange,提问作者Tal Ben Shabtay
相关产品推荐
相关产品推荐

