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

如何通过YouTube Data API修改视频的snippet.defaultLanguage

关于YouTube Data API设置Video.snippet.defaultLanguage的问题

核心结论

*snippet.defaultLanguage是可以设置的,调用Videos.update接口时存在几个容易忽略的约束和坑,导致你测试时出现问题。

关键注意事项

  • 必填字段约束:YouTube Data API的Videos.update接口虽然是补丁更新逻辑,但snippet下的title、categoryId属于必填字段——哪怕你不需要修改它们,也必须传入视频当前的原值,否则接口会直接返回错误,这就是你必须包含这些"无关"字段的原因。
  • 语言代码规范:defaultLanguage的值必须是符合ISO 639-1标准的双字母语言代码(比如en、zh),不能使用语言全称或非标准代码,否则接口会识别失败。
  • 请求字段范围优化:调用Videos.update的第二个参数(返回字段范围)不需要写全snippet, localizations,如果只修改defaultLanguage,可以简化为'id,snippet',避免不必要的字段传递。
  • localizations处理:如果你不需要修改视频的本地化内容,要么传入视频当前的原有本地化数据,要么直接从resource对象中移除localizations字段——空对象或格式错误的本地化数据会导致接口调用失败。

修正后的示例代码

// 先获取视频当前的snippet基础数据
const video = YouTube.Videos.list('snippet', {id: '你的视频ID'}).items[0];
const resource = {
  id: video.id,
  snippet: {
    // 必须传入的必填字段原值
    title: video.snippet.title,
    categoryId: video.snippet.categoryId,
    // 要设置的目标语言代码
    defaultLanguage: 'zh'
  }
};
// 仅请求必要的字段范围
YouTube.Videos.update(resource, 'id,snippet');

常见失败排查点

  • 确认你的授权令牌拥有https://www.googleapis.com/auth/youtube.force-ssl权限,修改视频信息必须使用这个权限范围。
  • 检查目标视频是否属于当前授权账号,第三方账号无法修改非自有视频的信息。
  • 如果之前配置过视频本地化内容,修改defaultLanguage后要确保本地化内容的语言映射逻辑没有冲突。

内容的提问来源于stack exchange,提问作者amit jha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 12:10:59