LiveBroadcasts: update

更新直播。例如,您可以修改 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 string
part 参数在此操作中具有两个用途。它用于标识写入操作将设置的属性,以及 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 资源。 对于该资源:

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

    • id
    • snippet.scheduledStartTime
    • contentDetails.monitorStream.enableMonitorStream
    • contentDetails.monitorStream.broadcastStreamDelayMs

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

    • snippet.title
    • snippet.description
    • snippet.categoryId
    • snippet.scheduledStartTime
    • snippet.scheduledEndTime
    • status.privacyStatus
    • contentDetails.monitorStream.enableMonitorStream
    • contentDetails.monitorStream.broadcastStreamDelayMs
    • contentDetails.enableAutoStart
    • contentDetails.enableAutoStop
    • contentDetails.enableClosedCaptions
    • contentDetails.enableDvr
    • contentDetails.enableEmbed
    • contentDetails.recordFromStart
    • contentDetails.availabilityConfig
    • monetizationDetails.adsMonetizationStatus
    • monetizationDetails.cuepointSchedule.enabled
    • monetizationDetails.cuepointSchedule.pauseAdsUntil
    • monetizationDetails.cuepointSchedule.ytOptimizedCuepointConfig
    • monetizationDetails.cuepointSchedule.creatorCuepointConfig.scheduleStrategy
    • monetizationDetails.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 字段。 出现此错误的原因可能如下:
  • monetizationDetails.cuepointSchedule.enabled 字段未设置为 true。此字段只能使用 YouTube 工作室进行设置。
  • 直播未处于直播状态。
forbidden (403) enableAutoStartModificationNotAllowed 只有当直播流处于非活跃状态且直播处于 created 或 ready 状态时,才能修改 contentDetails.enableAutoStart 值。
forbidden (403) enableClosedCaptionsModificationNotAllowed 只有当直播的状态为 created 或 ready 时,才能修改 contentDetails.enableClosedCaptions 值。
forbidden (403) enableDvrModificationNotAllowed 只有当直播的状态为 created 或 ready 时,才能修改 contentDetails.enableDvr 值。
forbidden (403) enableMonitorStreamModificationNotAllowed 只有当直播的状态为 created 或 ready 时,才能修改 contentDetails.monitorStream.enableMonitorStream 值。
forbidden (403) recordFromStartModificationNotAllowed 只有当直播的状态为 created 或 ready 时,才能修改 contentDetails.recordFromStart 值。
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。
  • 如果 ads_monetization_status 为 ON,则必须指定 cuepoint_schedule。
如果 ads_monetization_status 为 OFF,则无法指定 cuepoint_schedule。
invalidValue (400) invalidEnabled liveBroadcast 资源 包含 monetizationDetails.cuepointSchedule.enabled 属性的无效值或冲突值。 出现此错误的原因可能如下:
  • 必须在 cuepoint_schedule 字段中指定 enabled。
  • 如果 enabled 为 false,则无法指定 pause_ads_until、yt_optimized_cuepoint_config 或 creator_cuepoint_config。
  • 如果 enabled 为 true,则只能指定 yt_optimized_cuepoint_config 和 creator_cuepoint_config 中的一个。
invalidValue (400) invalidCreatorCuepointConfig 必须同时指定 schedule_strategy 和 repeat_interval_secs。
invalidValue (400) invalidRepeatIntervalSecs repeat_interval_secs 属性值必须在 [360, 3600] 范围内。
invalidValue (400) invalidPauseAdsUntil liveBroadcast 资源包含 monetizationDetails.cuepointSchedule.pauseAdsUntil 属性的无效值。出现此错误的原因可能如下:
  • monetizationDetails.cuepointSchedule.pauseAdsUntil 值未采用 ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) 格式指定。
  • monetizationDetails.cuepointSchedule.pauseAdsUntil 值不是未来的时间。
  • monetizationDetails.cuepointSchedule.pauseAdsUntil 值与当前时间相差超过 10 分钟。
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.monitorStream.broadcastStreamDelayMs 属性。
required (400) enableMonitorStreamRequired liveBroadcast 资源未指定 contentDetails.monitorStream.enableMonitorStream 属性。
required (400) idRequired liveBroadcast 资源必须包含 id 属性并为其指定值。
required (400) scheduledEndTimeRequired liveBroadcast 资源未指定 snippet.scheduledEndTime 属性。
required (400) scheduledStartTimeRequired liveBroadcast 资源未指定 snippet.scheduledStartTime 属性。

试试看!

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