更新直播。例如,您可以修改 liveBroadcast 资源的 contentDetails 对象中定义的直播设置。
常见应用场景
请求
HTTP 请求
PUT https://www.googleapis.com/youtube/v3/liveBroadcasts
授权
此请求需要使用至少以下一个范围进行授权。如需详细了解身份验证和授权,请参阅实现 OAuth 2.0 授权。
| 范围 |
|---|
https://www.googleapis.com/auth/youtube |
https://www.googleapis.com/auth/youtube.force-ssl |
参数
下表列出了此查询支持的参数。列出的所有参数都是查询参数。
| 参数 | ||
|---|---|---|
| 必需参数 | ||
part |
stringpart 参数在此操作中具有两个用途。它用于标识写入操作将设置的属性,以及 API 响应将包含的属性。您可以包含在参数值中的 part 属性包括 id、snippet、contentDetails、monetizationDetails 和 status。请注意,此方法会替换参数值指定的任何部分中包含的所有可变属性的现有值。例如,直播的隐私状态在 status 部分中定义。因此,如果您的请求是更新私享或不公开列出的直播,并且请求的 part 参数值包含 status 部分,则直播的隐私设置将更新为请求正文指定的任何值。如果请求正文未指定值,则现有隐私设置将被移除,直播将恢复为默认隐私设置。 |
|
| 可选参数 | ||
onBehalfOfContentOwner |
string此参数只能在经过适当授权的请求中使用。 注意:此参数仅供 YouTube 内容合作伙伴使用。 onBehalfOfContentOwner 参数表示请求的授权凭据标识的是一个 YouTube 内容管理系统 (CMS) 用户,该用户代表参数值中指定的内容所有者行事。此参数适用于拥有和管理许多不同 YouTube 频道的 YouTube 内容合作伙伴。它允许内容所有者进行一次身份验证,即可访问其所有视频和频道数据,而无需为每个频道提供身份验证凭据。用户进行身份验证时使用的 CMS 账号必须与指定的 YouTube 内容所有者相关联。 |
|
onBehalfOfContentOwnerChannel |
string此参数只能在经过适当授权的请求中使用。 注意:此参数仅供 YouTube 内容合作伙伴使用。 onBehalfOfContentOwnerChannel 参数用于指定要向其添加视频的频道的 YouTube 频道 ID。当请求为 onBehalfOfContentOwner 参数指定值时,此参数是必需的,并且只能与该参数一起使用。此外,必须使用与 onBehalfOfContentOwner 参数指定的内容所有者相关联的 CMS 账号对请求进行授权。最后,onBehalfOfContentOwnerChannel 参数值指定的频道必须与 onBehalfOfContentOwner 参数指定的内容所有者相关联。此参数适用于拥有和管理许多不同 YouTube 频道的 YouTube 内容合作伙伴。它允许内容所有者进行一次身份验证,即可代表参数值中指定的频道执行操作,而无需为每个单独的频道提供身份验证凭据。 |
|
请求正文
在请求正文中提供 liveBroadcast 资源。 对于该资源:
-
您必须为以下属性指定值:
idsnippet.scheduledStartTimecontentDetails.monitorStream.enableMonitorStreamcontentDetails.monitorStream.broadcastStreamDelayMs
-
您可以为以下属性设置值:
snippet.titlesnippet.descriptionsnippet.categoryIdsnippet.scheduledStartTimesnippet.scheduledEndTimestatus.privacyStatuscontentDetails.monitorStream.enableMonitorStreamcontentDetails.monitorStream.broadcastStreamDelayMscontentDetails.enableAutoStartcontentDetails.enableAutoStopcontentDetails.enableClosedCaptionscontentDetails.enableDvrcontentDetails.enableEmbedcontentDetails.recordFromStartcontentDetails.availabilityConfigmonetizationDetails.adsMonetizationStatusmonetizationDetails.cuepointSchedule.enabledmonetizationDetails.cuepointSchedule.pauseAdsUntilmonetizationDetails.cuepointSchedule.ytOptimizedCuepointConfigmonetizationDetails.cuepointSchedule.creatorCuepointConfig.scheduleStrategymonetizationDetails.cuepointSchedule.creatorCuepointConfig.repeatIntervalSecs
如果您提交的是更新请求,并且您的请求未为已具有值的属性指定值,则该属性的现有值将被删除。
响应
如果成功,此方法会在响应正文中返回 liveBroadcast 资源。
错误
下表列出了 API 在响应对此方法的调用时可能会返回的出错提示。如需了解详情,请参阅出错提示。
| 错误类型 | 错误详情 | 说明 | |
|---|---|---|---|
backendError (503) |
backendError |
某些设置尚无法应用。这很可能是因为直播刚刚创建。请在几秒钟后重试。 | |
forbidden (403) |
closedCaptionsTypeModificationNotAllowed |
只有当直播处于 created 或 ready 状态时,才能修改 contentDetails.closedCaptionsType 值。 |
|
forbidden (403) |
monetizationDetailsModificationNotAllowed |
未加入 YouTube 合作伙伴计划 (YPP) 的频道无法修改视频的 monetizationDetails。 |
|
forbidden (403) |
pauseAdsUntilModificationNotAllowed |
无法修改 pauseAdsUntil 字段。
出现此错误的原因可能如下:
|
|
forbidden (403) |
enableAutoStartModificationNotAllowed |
只有当直播流处于非活跃状态且直播处于 created 或 ready 状态时,才能修改 contentDetails.enableAutoStart 值。 |
|
forbidden (403) |
enableClosedCaptionsModificationNotAllowed |
只有当直播的状态为 created 或 ready 时,才能修改 contentDetails.enableClosedCaptions 值。 |
|
forbidden (403) |
enableDvrModificationNotAllowed |
只有当直播的状态为 created 或 ready 时,才能修改 contentDetails. 值。 |
|
forbidden (403) |
enableMonitorStreamModificationNotAllowed |
只有当直播的状态为 created 或 ready 时,才能修改 contentDetails. 值。 |
|
forbidden (403) |
recordFromStartModificationNotAllowed |
只有当直播的状态为 created 或 ready 时,才能修改 contentDetails. 值。 |
|
insufficientPermissions |
insufficientLivePermissions |
请求无权更新指定的直播。如需了解详情,请参阅实现 OAuth2 身份验证。 | |
insufficientPermissions |
liveStreamingNotEnabled |
授权请求的用户未获准在 YouTube 上直播实时视频。用户可以在 https://www.youtube.com/features 上找到更多信息。 | |
invalidArgument |
missingAdsMonetizationStatus |
ads_monetization_status 必须指定为 ON 或 OFF。 |
|
invalidValue (400) |
invalidAutoStart |
liveBroadcast 资源
包含 contentDetails.enableAutoStart 属性的无效值。
您无法修改永久性直播的 enableAutoStart 设置。 |
|
invalidValue (400) |
invalidAutoStop |
liveBroadcast 资源
包含 contentDetails.enableAutoStop 属性的无效值。您
无法修改永久性直播的 enableAutoStop 设置。 |
|
invalidValue (400) |
invalidDescription |
liveBroadcast 资源未为 snippet.description 属性指定有效值。snippet.description 最多可以包含 5000 个字符。 |
|
invalidValue (400) |
invalidEmbedSetting |
liveBroadcast 资源包含 contentDetails.enable_embed 属性的无效值。您无法嵌入此直播。 |
|
invalidValue (400) |
invalidEnableClosedCaptions |
在 liveBroadcast 资源中,contentDetails.enableClosedCaptions 属性的值与 contentDetails.closedCaptionType 设置的值不兼容。修改资源以仅包含这两个属性中的一个,然后重新提交请求。 |
|
invalidValue (400) |
invalidLatencyPreferenceOptions |
liveBroadcast 资源
包含 contentDetails.latencyPreference 属性的无效值。
并非所有设置都支持此延迟偏好设置。
|
|
invalidValue (400) |
invalidEligibleForAdsMonetization |
eligible_for_ads_monetization 是只读的,无法在 monetization_details 字段中指定。 |
|
invalidValue (400) |
invalidCuepointSchedule |
liveBroadcast 资源包含 monetizationDetails.cuepointSchedule 属性的无效值。出现此错误的原因可能如下:
|
如果 ads_monetization_status 为 OFF,则无法指定 cuepoint_schedule。 |
invalidValue (400) |
invalidEnabled |
liveBroadcast 资源
包含 monetizationDetails.cuepointSchedule.enabled 属性的无效值或冲突值。
出现此错误的原因可能如下:
|
|
invalidValue (400) |
invalidCreatorCuepointConfig |
必须同时指定 schedule_strategy 和 repeat_interval_secs。 |
|
invalidValue (400) |
invalidRepeatIntervalSecs |
repeat_interval_secs 属性值必须在 [360, 3600] 范围内。 |
|
invalidValue (400) |
invalidPauseAdsUntil |
liveBroadcast 资源包含 monetizationDetails.cuepointSchedule.pauseAdsUntil 属性的无效值。出现此错误的原因可能如下:
|
|
invalidValue (400) |
invalidPrivacyStatus |
liveBroadcast 资源未指定有效的隐私状态。请参阅 有效的 privacyStatus 值。 |
|
invalidValue (400) |
invalidProjection |
liveBroadcast 资源包含 contentDetails.projection 属性的无效值。永久性直播的投影不能设置为 360。 |
|
invalidValue (400) |
invalidScheduledEndTime |
liveBroadcast 资源包含 snippet.scheduledEndTime 属性的无效值。计划结束时间必须晚于计划开始时间。 |
|
invalidValue (400) |
invalidScheduledStartTime |
liveBroadcast 资源包含 snippet.scheduledStartTime 属性的无效值。计划开始时间必须是未来的时间。 |
|
invalidValue (400) |
invalidTitle |
liveBroadcast 资源未为 snippet.title 属性指定有效值。snippet.title 的长度必须介于 1 到 100 个字符之间。 |
|
notFound (404) |
liveBroadcastNotFound |
id 属性在 liveBroadcast 资源中指定,但未标识直播。 |
|
preconditionFailed (412) |
videoNotEligibleForAdsMonetization |
视频不符合广告创收条件。如果频道不符合创收条件,则可能会出现这种情况。 | |
required (400) |
broadcastStreamDelayMsRequired |
liveBroadcast 资源未指定 contentDetails. 属性。 |
|
required (400) |
enableMonitorStreamRequired |
liveBroadcast 资源未指定 contentDetails. 属性。 |
|
required (400) |
idRequired |
liveBroadcast 资源必须包含 id 属性并为其指定值。 |
|
required (400) |
scheduledEndTimeRequired |
liveBroadcast 资源未指定 snippet.scheduledEndTime 属性。 |
|
required (400) |
scheduledStartTimeRequired |
liveBroadcast 资源未指定 snippet.scheduledStartTime 属性。 |
试试看!
使用 APIs Explorer 调用此 API,查看 API 请求和响应。