You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:23:23