Captions: insert

上传字幕轨。

此方法支持媒体上传。上传的文件必须符合以下限制:

  • 文件大小上限:100MB
  • 接受的媒体 MIME 类型text/xmlapplication/octet-stream*/*

配额影响:对此方法的调用会产生 400 个单位的配额费用

常见使用场景

请求

HTTP 请求

POST https://www.googleapis.com/upload/youtube/v3/captions

授权

此请求需要获得以下至少一个范围的授权。如需详细了解身份验证和授权,请参阅实现 OAuth 2.0 授权

范围
https://www.googleapis.com/auth/youtube.force-ssl
https://www.googleapis.com/auth/youtubepartner

参数

下表列出了此查询支持的参数。列出的所有参数都是查询参数。

参数
必需参数
part string
part 参数用于指定 API 响应将包含的 caption 资源部分。将参数值设置为 snippet

以下列表包含您可以在参数值中包含的 part 名称:
  • id
  • snippet
可选参数
onBehalfOfContentOwner string
此参数只能在经过适当授权的请求中使用。

注意:此参数仅供 YouTube 内容合作伙伴使用。

onBehalfOfContentOwner 参数表示请求的授权凭据标识了代表参数值中指定的内容所有者行事的 YouTube CMS 用户。此参数适用于拥有和管理许多不同 YouTube 频道的 YouTube 内容合作伙伴。借助此功能,内容所有者只需进行一次身份验证,即可访问其所有视频和频道数据,而无需为每个频道分别提供身份验证凭据。用户进行身份验证时使用的实际 CMS 账号必须与指定的 YouTube 内容所有者相关联。
sync boolean
此参数已被弃用。 sync 参数用于指明 YouTube 是否应自动将字幕文件与视频的音轨同步。如果您将此值设为 true,YouTube 会忽略上传的字幕文件中的所有时间码,并为字幕生成新的时间码。

如果您上传的是一个没有时间码的转写内容,或者您怀疑文件中的时间码不正确,并希望 YouTube 尝试修正它们,则应将 sync 参数设为 true

请求正文

在请求正文中提供 caption 资源。 对于该资源:

您必须为以下属性指定值:

  • snippet.videoId
  • snippet.language
  • snippet.name

您可以为以下属性设置值:

  • snippet.videoId
  • snippet.language
  • snippet.name
  • snippet.isDraft

响应

如果成功,此方法将在响应正文中返回 caption 资源。

错误

下表列出了该 API 在响应对此方法的调用时可能会返回的错误消息。如需了解详情,请参阅 YouTube Data API - 错误

错误类型 错误详情 说明
badRequest (400) contentRequired 请求不包含字幕轨内容。
conflict (409) captionExists 指定的视频已包含使用给定 snippet.languagesnippet.name 的字幕轨道。一个视频可以有多个使用同一语言的轨道,但每个轨道都必须有不同的名称。

您可以通过多种方式解决此错误。您可以先删除现有轨道,然后插入新轨道,也可以在插入新轨道之前更改新轨道的名称。
forbidden (403) forbidden 与请求关联的权限不足以上传字幕轨道。该请求可能未获得适当授权。
invalidValue (400) invalidMetadata 请求包含无效的元数据值,导致无法创建曲目。确认请求为 snippet.languagesnippet.namesnippet.videoId 属性指定了有效的值。您也可以添加 snippet.isDraft 属性,但这不是必需的。
notFound (404) videoNotFound 找不到由 videoId 参数标识的视频。
invalidValue (400) nameTooLong 请求中指定的 snippet.name 过长。支持的最大长度为 150 个字符。