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

使用Google API NodeJS客户端上传YouTube视频如何设置为公开可见?

解决方法
  • 检查OAuth授权范围
    确保请求OAuth授权时使用的scope包含https://www.googleapis.com/auth/youtube.upload或更高权限的https://www.googleapis.com/auth/youtube,scope权限不足时,即使代码中指定了privacyStatus: "public",YouTube也会强制将视频设置为私有。
  • 删除requestBody中的无效id参数
    你当前代码中向requestBody传入了id: channelId是错误配置,videos.insert接口不需要提前传入视频id,YouTube会在上传完成后自动生成视频id,传入无效id会触发状态异常导致视频被强制设为私有。
  • 补充必填的儿童内容声明参数
    YouTube现行政策要求所有上传视频必须明确声明是否为面向儿童的内容,未声明该参数时视频会被默认限制为私有等待人工确认,需要在status节点下添加selfDeclaredMadeForKids参数,非儿童内容设为false,儿童内容设为true。
  • 检查Google Cloud项目的OAuth应用状态
    如果你的Google Cloud项目中YouTube Data API对应的OAuth同意屏幕处于测试状态,所有通过该接口上传的视频会自动设为仅测试用户可见,若要对外公开发布,需要完成OAuth应用的官方审核流程,将应用状态修改为正式上线。

修正后的代码示例

let res = await youtube.videos.insert({
  part: "id,snippet,status",
  notifySubscribers: true,
  requestBody: {
    snippet: {
      title: title,
      description: description,
    },
    status: {
      privacyStatus: "public",
      selfDeclaredMadeForKids: false // 可根据视频实际属性调整值
    },
  },
  media: {
    body: fs.createReadStream(filePath),
  },
});
console.log(`Youtube Upload Response:`);
console.log(res.data);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:06:03