该 API 现在支持将您的频道或视频标记为“面向儿童的内容”。此外,
channel
和 video
资源现在还包含一个属性,用于标识相应频道或视频是否属于“面向儿童的内容”。YouTube API 服务的《服务条款》和《开发者政策》也已于 2020 年 1 月 10 日更新。如需了解详情,请参阅 YouTube Data API 服务和 YouTube API 服务的服务条款的修订历史记录。更新视频的元数据。
对配额的影响:调用此方法会产生 50 个单元的配额费用。
常见使用场景
请求
HTTP 请求
PUT https://www.googleapis.com/youtube/v3/videos
授权
此请求需要获得以下至少一个范围的授权(详细了解身份验证和授权)。
范围 |
---|
https://www.googleapis.com/auth/youtubepartner |
https://www.googleapis.com/auth/youtube |
https://www.googleapis.com/auth/youtube.force-ssl |
参数
下表列出了此查询支持的参数。列出的所有参数都是查询参数。
参数 | ||
---|---|---|
必需参数 | ||
part |
string part 参数在此操作中有两种用途。它标识写入操作要设置的属性,以及 API 响应将包含的属性。请注意,如果参数值指定的任意部分包含,此方法将覆盖所有可变属性的现有值。例如,视频的隐私设置包含在 status 部分。因此,如果您的请求要更新私享视频,并且该请求的 part 参数值包含 status 部分,则视频的隐私设置将更新为请求正文指定的任何值。如果请求正文未指定值,则系统会移除现有隐私设置,并将视频还原为默认隐私设置。此外,并非所有部分都包含可在插入或更新视频时设置的属性。例如, statistics 对象封装了 YouTube 为视频计算的统计信息,但不包含您可以设置或修改的值。如果参数值指定的 part 不包含可变值,该 part 仍会包含在 API 响应中。以下列表包含您可以包含在参数值中的 part 名称:
|
|
可选参数 | ||
onBehalfOfContentOwner |
string 此参数只能在正确授权的请求中使用。注意:此参数仅适用于 YouTube 内容合作伙伴。 onBehalfOfContentOwner 参数用于指明该请求的授权凭据会标识代表参数值中指定的内容所有者执行操作的 YouTube 内容管理系统用户。此参数适用于拥有和管理众多不同 YouTube 频道的 YouTube 内容合作伙伴。它可让内容所有者在一次身份验证后获得访问其所有视频和频道数据的权限,而无需为每个频道提供身份验证凭据。用户用于进行身份验证的实际 CMS 账号必须与指定的 YouTube 内容所有者相关联。 |
请求正文
在请求正文中提供视频资源。 针对该资源:
-
您必须为以下属性指定一个值:
id
snippet.title
- 仅当请求更新了video
资源的snippet
时,此属性才是必需的。snippet.categoryId
- 仅当请求更新了video
资源的snippet
时,此属性才是必需的。
-
您可以为以下属性设置值:
snippet.categoryId
snippet.defaultLanguage
snippet.description
snippet.tags[]
snippet.title
status.embeddable
status.license
status.privacyStatus
status.publicStatsViewable
status.publishAt
- 如果您为此属性设置了值,则还必须将status.privacyStatus
属性设置为private
。status.selfDeclaredMadeForKids
recordingDetails.locationDescription
(已弃用)recordingDetails.location.latitude
(已弃用)recordingDetails.location.longitude
(已弃用)recordingDetails.recordingDate
localizations.(key)
localizations.(key).title
localizations.(key).description
如果您要提交更新请求,但您的请求没有为已经包含某个值的属性值指定值,则该属性的现有值将被删除。
响应
如果成功,此方法将在响应正文中返回视频资源。
错误
下表列出了 API 在响应对此方法的调用时可能会返回的错误消息。如需了解详情,请参阅错误消息文档。
错误类型 | 错误详情 | 说明 |
---|---|---|
badRequest (400) |
defaultLanguageNotSet |
该 API 请求试图添加本地化视频详细信息,却未指定视频详细信息的默认语言。 |
badRequest (400) |
invalidCategoryId |
snippet.categoryId 属性指定的类别 ID 无效。使用 videoCategories.list 方法可检索支持的类别。 |
badRequest (400) |
invalidDefaultBroadcastPrivacySetting |
该请求尝试为默认广播设定无效的隐私设置。 |
badRequest (400) |
invalidDescription |
请求元数据指定的视频说明无效。 |
badRequest (400) |
invalidPublishAt |
请求元数据指定的预定发布时间无效。 |
badRequest (400) |
invalidRecordingDetails |
请求元数据中的 recordingDetails 对象指定了无效的录制详细信息。 |
badRequest (400) |
invalidTags |
请求元数据指定了无效的视频关键字。 |
badRequest (400) |
invalidTitle |
请求元数据指定的视频标题无效或为空。 |
badRequest (400) |
invalidVideoMetadata |
请求元数据无效。 |
forbidden (403) |
forbidden |
|
forbidden (403) |
forbiddenEmbedSetting |
该请求试图为视频设置无效的嵌入设置。请注意,部分频道可能无权为直播提供嵌入式播放器。如需了解详情,请访问 YouTube 帮助中心。 |
forbidden (403) |
forbiddenLicenseSetting |
该请求试图为视频设置无效的许可。 |
forbidden (403) |
forbiddenPrivacySetting |
该请求试图为视频设置无效的隐私设置。 |
notFound (404) |
videoNotFound |
找不到你尝试更新的视频。检查请求正文中 id 字段的值,确保其正确无误。 |
试试看!
使用 APIs Explorer 调用此 API 并查看 API 请求和响应。