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

使用YouTube Data API上传视频时遇400 Bad Request错误求助

解决YouTube Data API上传视频时的400 Bad Request(unknownPart)错误

错误原因

错误返回中的unknownPart明确说明:请求的part参数值无效。你在调用videos.insert接口时,第一个参数直接传了字符串"part"——这不是YouTube Data API认可的有效资源部分名称。

修复方案

API要求part参数必须指定你要操作的视频资源具体部分,多个部分用逗号分隔。常用的必要部分包括:

  • snippet:用于设置视频标题、描述、分类等元数据
  • status:用于设置视频隐私状态(公开/私有/未列出)

修改后的代码

需要给Video对象补充必要的元数据,同时替换无效的part参数值:

import com.google.api.services.youtube.model.VideoSnippet
import com.google.api.services.youtube.model.VideoStatus

// ... 其他原有代码保持不变

fun upload(mediaFile: File) {
    val mediaContent =
        InputStreamContent("application/octet-stream", BufferedInputStream(FileInputStream(mediaFile)))
    mediaContent.length = mediaFile.length()

    // 配置视频元数据
    val video = Video()
    val snippet = VideoSnippet().apply {
        setTitle("你的视频标题")
        setDescription("你的视频描述")
        setCategoryId("22") // 分类ID,可根据实际需求修改,比如22对应娱乐类
    }
    video.snippet = snippet

    val status = VideoStatus().apply {
        setPrivacyStatus("private") // 可选值:public / private / unlisted
    }
    video.status = status

    // 使用有效的part参数调用上传接口
    service.videos().insert("snippet,status", video, mediaContent).execute()
}

补充说明

part参数的有效值对应YouTube视频资源的不同字段集合,你可以根据需求添加更多部分(比如contentDetails用于设置视频时长等),但至少需要包含你要设置的字段所属的部分。

内容的提问来源于stack exchange,提问作者Luís Soares

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:00:55