This page lists YouTube Live Streaming API changes and documentation updates. Subscribe to this changelog.
May 2, 2014
This update contains the following changes:
-
The descriptions of the
liveStream
resource and of theliveBroadcasts.bind
method have been updated to note that a broadcast can only be bound to one video stream, but a video stream can be bound to more than one broadcast. This change is solely a correction to the documentation; the underlying API functionality has not changed. -
The
liveBroadcast
resource'scontentDetails.monitorStream.enableMonitorStream
property has been updated to explain that if the property's value istrue
, then you must transition your broadcast to thetesting
state before you can transition it to thelive
state. (If the property's value isfalse
, your broadcast cannot have atesting
stage, so you can transition the broadcast directly to thelive
state. -
The
liveCuepoint
resource'ssettings.offsetTimeMs
property has been updated to note that you should not specify a value for the property if your broadcast does not have a monitor stream. -
All of the methods for the
liveBroadcast
andliveStream
resources now support theonBehalfOfContentOwner
andonBehalfOfContentOwnerChannel
parameters. These parameters allow you to use the same authorization credentials to complete API requests for different channels associated with the same content owner. -
The
liveCuepoints.insert
method's documentation has been updated to note that you can set a value for thesettings.walltime
property when calling that method. -
The error documentation now specifies the HTTP response code for each error type.
-
The API now supports the following error:
Error type Error detail Description insufficientPermissions
livePermissionBlocked
The liveBroadcasts.insert
,liveBroadcasts.transition
, andliveStreams.insert
methods return this error if the user that authorized the request is unable to stream live video on YouTube. Details explaining why the user cannot stream live video may be available in the user's channel settings at https://www.youtube.com/features. -
The
liveBroadcasts.insert
method'sinvalidScheduledStartTime
error has been updated to clarify that the scheduled start time must be close enough to the current date that a broadcast could be reliably scheduled at that time.
December 13, 2013
This update contains the following changes:
-
The
liveBroadcast
resource's newstatus.recordingStatus
property identifies the broadcast's current status. -
The
liveBroadcast
resource's newcontentDetails.enableClosedCaptions
property indicates whether closed captions can be ingested for the broadcast. The property value can be set when you insert or update a broadcast, but it cannot be updated once the broadcast is in thetesting
orlive
state. If you set this property totrue
, then theliveStream
resource that is bound to the broadcast will specify the ingestion URL to use for the broadcast's closed captions. -
The
liveBroadcast
resource'ssnippet.scheduledEndTime
property now supports broadcasts that are scheduled to continue indefinitely. With this change, the property is no longer required inliveBroadcasts.insert
andliveBroadcasts.update
requests.
If you retrieve aliveBroadcast
resource that does not specify a value for this property, then the broadcast is scheduled to continue indefinitely. Similarly, if you call theliveBroadcasts.insert
orliveBroadcasts.update
method and do not specify a value for this property, the broadcast will be scheduled to continue indefinitely. -
The
liveBroadcast
resource'scontentDetails.recordFromStart
property, which already had a default value oftrue
, can now only be set tofalse
if the broadcasting channel is allowed to disable recordings for live broadcasts.If your channel does not have permission to disable recordings, and you attempt to insert a broadcast with the
recordFromStart
property set tofalse
, the API will return aForbidden
error. In addition, if your channel does not have that permission and you attempt to update a broadcast to set therecordFromStart
property tofalse
, the API will return amodificationNotAllowed
error. -
The
liveBroadcast
resource no longer contains anenableArchive
property, which had been mentioned in the descriptions of thecontentDetails.enableDvr
andcontentDetails.enableEmbed
properties. -
The list of valid values for the
liveBroadcast
resource'sstatus.lifeCycleStatus
property has been updated to include a description of each status. -
The
liveCuepoint
resource's newsettings.walltime
property specifies the date and time at which the cuepoint should be inserted. The API returns an error if a request tries to insert a cuepoint that specifies a value for this property and for thesettings.offsetTimeMs
property. -
The new
contentDetails
object in aliveStream
resource contains information about the stream. Currently, the object's only property iscontentDetails.closedCaptionsIngestionUrl
, which specifies the ingestion URL for closed captions associated with the video stream. -
The list of valid values for the
liveStream
resource'sstatus.streamStatus
property has been updated to include a description of each status. -
The
liveBroadcasts.control
method's newwalltime
parameter lets you specify the date and time when a slate change will occur. The API returns an error if a request specifies a value for this parameter and for theoffsetTimeMs
parameter. -
In the API response to a
liveBroadcasts.list
request, the value of thekind
property has changed fromyoutube#liveBroadcastList
toyoutube#liveBroadcastListResponse
. -
In the API response to a
liveStreams.list
request, the value of thekind
property has changed fromyoutube#liveStreamList
toyoutube#liveStreamListResponse
. -
The
eventId
property has been deprecated from both theliveBroadcastListResponse
and theliveStreamListResponse
. -
The API supports the following new errors:
Error type Error detail Description invalidValue
conflictingTimeFields
The liveBroadcasts.control
method returns this error if your request specifies values for theoffsetTimeMs
andwalltime
parameters. A request can either omit both parameters or specify a value for one of the two parameters.invalidValue
invalidWalltime
The liveBroadcasts.control
method returns this error if thewalltime
parameter's value is invalid.forbidden
enableClosedCaptionsModificationNotAllowed
The liveBroadcasts.update
method returns this error if you attempt to update thecontentDetails.enableClosedCaptions
value and the broadcast's status is notcreated
orready
.invalidValue
conflictingTimeFields
The liveCuepoints.insert
method returns this error if your request specifies values for thesettings.offsetTimeMs
andsettings.walltime
properties. A request can either omit both properties or specify a value for one of the two properties.In addition, the
liveStreams.update
method no longer supports acdnRequired
error similar to the one that theliveStreams.insert
method supports.
May 10, 2013
This update contains the following changes:
-
YouTube no longer identifies experimental API features and services. Instead, we now provide a list of YouTube APIs that are subject to the deprecation policy.
May 2, 2013
This update contains the following changes:
-
The new
liveBroadcasts.control
method enables you to toggle the display settings for a slate that displays in the broadcast stream for a broadcast that is already in progress. If your broadcast stream is delayed, you can also use this method to specify a time offset when the requested slate change will occur. -
The definitions of the following properties have been updated to explain that the property values must be set if you update a
liveBroadcast
resource'scontentDetails
part: -
The
liveStream
resource'sstatus.streamStatus
no longer supports the valuedeleted
as a possible stream status. -
The information that the API returns for many error messages has been revised to better explain why particular errors occurred. The API also supports several new errors.
March 27, 2013
This update contains the following changes:
-
The following properties have changed in the
liveBroadcast
resource:- The
startWithSlateCuepoint
property has been renamed tostartWithSlate
. - The
enableArchive
property has been renamed torecordFromStart
. - The
slateSettings
object has been deprecated and removed from the documentation. Error messages related to theslateSettings
object or its properties have also been removed. Finally, the "Displaying Slates" section of the Getting started guide has been removed.
- The
-
The API no longer supports the ability to insert in-stream slates using the
liveCuepoints.insert
method. The following documents have been updated to reflect this change:-
The index page, Getting started guide, and Life of a broadcast tutorial no longer mention this functionality.
-
The
liveCuepoint
resource'ssettings.cueType
property no longer supportsslate
as a property value. (The only supported value isad
. -
The
liveCuepoint
resource'ssettings.eventState
property has been deprecated and removed from the documentation.
-
March 18, 2013
This update contains the following changes:
-
All of the API's error messages have been updated to more clearly explain possible errors and, when possible, offer guidance about how to fix them.
-
The API may now return several new errors. The list below identifies the error and the API method that might return that error:
liveBroadcasts.insert
– A broadcast's scheduled end time must be after its scheduled start time.liveBroadcasts.insert
– The broadcast specifies an invalid privacy status.liveBroadcasts.update
– The resource does not contain or does not set a value for thecontentDetails.enableArchive
property.liveBroadcasts.update
– The resource does not contain or does not set a value for thecontentDetails.enableContentEncryption
property.liveBroadcasts.update
– The resource does not contain or does not set a value for thecontentDetails.enableDvr
property.liveStreams.insert
– The snippet title must be between 1 and 128 characters long.liveStreams.update
– The resource does not contain or does not set a value for thesnippet.title
property.
-
The
liveStream
resource documentation has been updated to reflect that multicast and WebM are not supported ingestion methods as previously indicated. The list of formats for thecdn.format
property has been updated accordingly, and thecdn.multicastIngestionInfo
object and its child properties have been removed from the resource's documentation. In addition,http
has been removed from the list of supportedcdn.ingestionType
values.