使用Python Flask调用YouTube API举报视频时遇invalidAbuseReason错误
修复YouTube API reportAbuse的invalidAbuseReason错误
错误核心是你使用了非法的reasonId值,YouTube Data API要求reasonId必须是通过abuseReportReasons.list接口获取的官方合法ID,而非自定义的字符串(比如你用的SPAM)。
解决步骤:
先获取所有合法的举报原因ID
调用API获取当前支持的举报原因列表,从中找到你需要的原因对应的ID:# 获取英文环境下的举报原因列表 reasons = youtube.abuseReportReasons().list( part='snippet', hl='en' ).execute() # 打印所有原因ID和对应的名称 for item in reasons['items']: print(f"ID: {item['id']}, 举报原因: {item['snippet']['label']}")执行后会输出类似内容(示例):
ID: 1, 举报原因: Spam or misleading ID: 2, 举报原因: Harassment or bullying ...替换代码中的
reasonId
把你代码里的'SPAM'替换成上面获取到的对应ID,比如垃圾信息对应'1':video_id = 'VIDEOID' report = { 'reasonId': '1', # 使用合法的ID 'videoId': video_id, 'language': 'en' } youtube.videos().reportAbuse(body=report).execute()
额外注意:
- 如果需要指定二级原因(
secondaryReasonId),同样要从上述接口返回的items[].snippet.secondReasons中获取对应的ID,不能自定义。 - 确保你的API密钥或OAuth令牌拥有
youtube.force-ssl的权限范围。
内容的提问来源于stack exchange,提问作者Ruler
相关产品推荐
相关产品推荐

