使用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
相关产品推荐
相关产品推荐

