Captions: insert

上传字幕轨。

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

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

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

常见使用场景

请求

HTTP 请求

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

授权

此请求需要获得以下至少一个范围的授权(详细了解身份验证和授权)。

范围
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 内容管理系统用户。此参数适用于拥有和管理众多不同 YouTube 频道的 YouTube 内容合作伙伴。它可让内容所有者在一次身份验证后获得访问其所有视频和频道数据的权限,而无需为每个频道提供身份验证凭据。用户用于进行身份验证的实际 CMS 账号必须与指定的 YouTube 内容所有者相关联。
sync boolean
此参数已弃用。 sync 参数用于指明 YouTube 是否应自动将字幕文件与视频的音轨同步。如果您将该值设置为 true,则 YouTube 会忽略上传的字幕文件中的所有时间码,并为字幕生成新的时间码。

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

请求正文

在请求正文中提供字幕资源。 针对该资源:

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

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

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

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

响应

如果成功,此方法会在响应正文中返回字幕资源

错误

下表列出了 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 个字符。

试试看!

使用 APIs Explorer 调用此 API 并查看 API 请求和响应。