LiveBroadcasts: update

Updates a broadcast. For example, you could modify the broadcast settings defined in the liveBroadcast resource's contentDetails object. Try it now.

Request

HTTP request

PUT https://www.googleapis.com/youtube/v3/liveBroadcasts

Authorization

This request requires authorization with at least one of the following scopes (read more about authentication and authorization).

Scope
https://www.googleapis.com/auth/youtube
https://www.googleapis.com/auth/youtube.force-ssl

Parameters

The following table lists the parameters that this query supports. All of the parameters listed are query parameters.

Parameters
Required parameters
part string
The part parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include.

The part properties that you can include in the parameter value are id, snippet, contentDetails, and status.

Note that this method will override the existing values for all of the mutable properties that are contained in any parts that the parameter value specifies. For example, a broadcast's privacy status is defined in the status part. As such, if your request is updating a private or unlisted broadcast, and the request's part parameter value includes the status part, the broadcast's privacy setting will be updated to whatever value the request body specifies. If the request body does not specify a value, the existing privacy setting will be removed and the broadcast will revert to the default privacy setting.
Optional parameters
onBehalfOfContentOwner string
This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.

The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
onBehalfOfContentOwnerChannel string
This parameter can only be used in a properly authorized request. This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.

The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.

This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.

Request body

Provide a liveBroadcast resource in the request body. For that resource:

  • You must specify a value for these properties:

    • id
    • snippet.title
    • snippet.scheduledStartTime
    • status.privacyStatus
    • contentDetails.monitorStream.enableMonitorStream
    • contentDetails.monitorStream.broadcastStreamDelayMs
    • contentDetails.enableDvr
    • contentDetails.enableContentEncryption
    • contentDetails.enableEmbed
    • contentDetails.recordFromStart
    • contentDetails.startWithSlate

  • You can set values for these properties:

    • snippet.title
    • snippet.description
    • snippet.scheduledStartTime
    • snippet.scheduledEndTime
    • status.privacyStatus
    • contentDetails.monitorStream.enableMonitorStream
    • contentDetails.monitorStream.broadcastStreamDelayMs
    • contentDetails.enableDvr
    • contentDetails.enableContentEncryption
    • contentDetails.enableEmbed
    • contentDetails.recordFromStart
    • contentDetails.startWithSlate
    • contentDetails.enableClosedCaptions

    If you are submitting an update request, and your request does not specify a value for a property that already has a value, the property's existing value will be deleted.

Response

If successful, this method returns a liveBroadcast resource in the response body.

Errors

The following table identifies error messages that the API could return in response to a call to this method. Please see the error message documentation for more detail.

Error type Error detail Description
forbidden (403) closedCaptionsTypeModificationNotAllowed The contentDetails.closedCaptionsType value can only be modified when the broadcast is in the created or ready status.
forbidden (403) enableClosedCaptionsModificationNotAllowed The contentDetails.enableClosedCaptions value can only be modified when the broadcast's status is created or ready.
forbidden (403) enableContentEncryptionModificationNotAllowed The contentDetails.enableContentEncryption value can be modified only when the broadcast's status is created or ready.
forbidden (403) enableDvrModificationNotAllowed The contentDetails.enableDvr value can be modified only when the broadcast's status is created or ready.
forbidden (403) enableMonitorStreamModificationNotAllowed The contentDetails.monitorStream.enableMonitorStream value can be modified only when the broadcast's status is created or ready.
forbidden (403) recordFromStartModificationNotAllowed The contentDetails.recordFromStart value can be modified only when the broadcast's status is created or ready.
forbidden (403) startWithSlateModificationNotAllowed The contentDetails.startWithSlate value can be modified only when the broadcast's status is created or ready.
insufficientPermissions insufficientLivePermissions The request is not authorized to update the specified live broadcast. For more information, see Implementing OAuth2 authentication.
insufficientPermissions liveStreamingNotEnabled The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at https://www.youtube.com/features.
invalidValue (400) invalidDescription The liveBroadcast resource did not specify a valid value for the snippet.description property. snippet.description can contain up to 5000 characters.
invalidValue (400) invalidEmbedSetting The liveBroadcast resource contained an invalid value for the content_details.enable_embed property. You cannot embed this broadcast.
invalidValue (400) invalidEnableClosedCaptions In the liveBroadcast resource, the value of the contentDetails.enableClosedCaptions property is incompatible with the value of the contentDetails.closedCaptionType setting. Modify the resource to only include one of the two properties, and then resubmit the request.
invalidValue (400) invalidPrivacyStatus The liveBroadcast resource did not specify a valid privacy status. See valid privacyStatus values.
invalidValue (400) invalidProjection The liveBroadcast resource contained an invalid value for the content_details.projection property. A default broadcast's projection cannot be set to 360.
invalidValue (400) invalidScheduledEndTime The liveBroadcast resource contained an invalid value for the snippet.scheduledEndTime property. The scheduled end time must follow the scheduled start time.
invalidValue (400) invalidScheduledStartTime The liveBroadcast resource contained an invalid value for the snippet.scheduledStartTime property. The scheduled start time must be in the future.
invalidValue (400) invalidTitle The liveBroadcast resource did not specify a valid value for the snippet.title property. snippet.title must be between 1 and 100 characters long.
notFound (404) liveBroadcastNotFound The id property specified in the liveBroadcast resource did not identify a broadcast.
required (400) broadcastStreamDelayMsRequired The liveBroadcast resource did not specify the contentDetails.monitorStream.broadcastStreamDelayMs property.
required (400) enableContentEncryptionRequired The liveBroadcast resource did not specify the contentDetails.enableContentEncryption property.
required (400) enableDvrRequired The liveBroadcast resource did not specify the contentDetails.enableDvr property.
required (400) enableEmbedRequired The liveBroadcast resource did not specify the contentDetails.enableEmbed property.
required (400) enableMonitorStreamRequired The liveBroadcast resource did not specify the contentDetails.monitorStream.enableMonitorStream property.
required (400) idRequired The liveBroadcast resource must include and specify a value for the id property.
required (400) privacyStatusRequired The liveBroadcast resource did not specify a privacy status. See for valid privacyStatus values.
required (400) recordFromStartRequired The liveBroadcast resource did not specify the contentDetails.recordFromStart property.
required (400) scheduledEndTimeRequired The liveBroadcast resource did not specify the snippet.scheduledEndTime property.
required (400) scheduledStartTimeRequired The liveBroadcast resource did not specify the snippet.scheduledStartTime property.
required (400) startWithSlateRequired The liveBroadcast resource did not specify the contentDetails.startWithSlate property.
required (400) titleRequired The liveBroadcast resource did not specify the snippet.title property.

Try it!

Use the API Explorer to call this method on live data and see the API request and response.