将字幕插入现有视频 Youtube API,错误“请求不包含字幕轨道内容。”

Tom*_*mmy 5 youtube youtube-api google-apis-explorer

我一直在尝试将字幕插入 YouTube 上的现有视频中。我能够毫无问题地调用列表标题端点。所以这不是 Auth 问题。

我调用了 POST https://www.googleapis.com/youtube/v3/captions?part=snippet

带有请求正文

{
  "snippet": {
    "language": "en",
    "name": "English captions",
    "videoId": "MY_VIDEO_ID",
    "isDraft": true
   }
} 
Run Code Online (Sandbox Code Playgroud)

但我收到“请求不包含字幕轨道内容”。

https://developers.google.com/youtube/v3/docs/captions/insert

google api explorer 不会向您展示如何在请求中实际附加标题文件。

我也尝试使用表单数据发布,但没有成功。

小智 1

您必须添加一个名为“media_body”的单独参数。

request = youtube.captions().insert(
    part="snippet",
    body={
      "snippet": {
        "language": "en",
        "name": "English captions",
        "videoId": "MY_VIDEO_ID"
      }
    },
    media_body=MediaFileUpload("whateverfile.extension")
)
Run Code Online (Sandbox Code Playgroud)

如需进一步参考,请在检查 YouTubeAPI 文档中的内容时,转到“尝试此方法”功能。任何缺失的参数(如本例)都会显示在那里,即使它们不在文档中。