Youtube Data API(v3)无效分类ID报错:ID42不可用是因assignable为false吗?
问题:调用Youtube Data API(v3)上传视频时分类ID报错
我用Python开发调用Youtube Data API(v3)的应用,上传视频时一直收到分类ID相关的400错误。
我的代码
import os from subprocess import run os.chdir(os.path.dirname(__file__)) video_name = "video1010.mp4" title = "This is a test" vid_des = "This is a test" keywords = "this, is, a, test" category = "42" command = f'python3 uploadYoutube.py --file="{video_name}" --title="{title}" --description="{vid_des}" --keywords="{keywords}" --category="{category}" --privacyStatus="public"' terminal_output = run(command, capture_output=True).stdout print(terminal_output)
错误输出(简化后)
An HTTP error 400 occurred: b'{ "error": { "code": 400, "message": "The <code>snippet.categoryId</code> property specifies an invalid category ID.
获取到的分类ID信息
通过Curl调用API获取到分类ID 42的详情:
{ "kind": "youtube#videoCategory", "etag": "TxVSfGoUyT7CJ7h7ebjg4vhIt6g", "id": "42", "snippet": { "title": "Shorts", "assignable": false, "channelId": "UCBR8-60-B28hp2BmDPdntcQ" } },
请问这个报错是由assignable: false导致的,还是其他原因?
解答
报错的直接原因就是assignable: false。Youtube Data API明确规定,只有assignable字段为true的分类ID,才能被开发者手动指定给上传的视频。
分类ID 42对应的是Shorts短视频分类,这个分类是Youtube系统自动分配的——当你的视频符合Shorts格式要求(比如竖屏比例、时长≤60秒)时,平台会自动将其归类到该分类,不允许手动指定。
解决方法:
- 更换为一个
assignable为true的分类ID,比如22(People & Blogs)、24(Entertainment)、1(Film & Animation)等; - 如果目标是上传Shorts视频,无需指定分类ID,只要视频满足格式要求,Youtube会自动完成分类。
内容的提问来源于stack exchange,提问作者Zak Virgo
相关产品推荐
相关产品推荐

