This page lists YouTube Data API (v3) changes and documentation updates.
Subscribe to this changelog
.
March 13, 2024
Note:
This is a deprecation announcement.
This update contains the following changes:
The
sync
parameter for the
captions.insert
and
captions.update
methods
has been deprecated. YouTube will stop supporting the
parameter as of April 12, 2024.
As a result of this change, developers must include timing information when inserting or
updating caption tracks or the upload will fail.
March 12, 2024
This update contains the following changes:
Documentation for the
captions
resource has been updated to note that the maximum allowed length for the
snippet.name
field is 150 characters. The API returns a
nameTooLong
error if the track name is longer than that.
March 7, 2024
Note:
This is a deprecation announcement.
The
channel
resource property
brandingSettings.channel.moderateComments
has been deprecated. YouTube will stop
supporting the parameter as of March 7, 2024.
January 31, 2024
This update contains the following changes:
The
channels.list
method's new
forHandle
parameter enables you to retrieve information about a channel by specifying its YouTube handle.
November 09, 2023
All references to the
videoId
resource under
Comments
have been removed as the
videoId
resource is not being returned using an API call.
September 12, 2023
Note:
This is a deprecation announcement.
The
comments.markAsSpam
method
has been deprecated for several years. This method is already unsupported on YouTube and is no
longer supported through the API.
A deprecation notice has been added to all of the documents referencing the
comments.markAsSpam
method.
August 22, 2023
The
search.list
method now supports the
videoPaidProductPlacement
parameter. This parameter enables you to filter search results to include only videos that the
creator has denoted as having a paid promotion.
August 18, 2023
The definition of the
video
resource's
liveStreamingDetails.concurrentViewers
has been updated to note that the concurrent viewer counts that the YouTube Data API returns might
differ from the processed, despammed concurrent viewer counts available through YouTube
Analytics. The
YouTube Help Center
provides more information about live streaming metrics.
August 7, 2023
As
announced on June 12, 2023
, the
search.list
method's
relatedToVideoId
parameter has been deprecated. That parameter is no longer
supported, and references to the parameter have been removed from the API documentation.
June 28, 2023
The
thumbnails.set
method now supports the
uploadRateLimitExceeded
error, which indicates that the channel has uploaded too many
thumbnails during the past 24 hours and should try again later.
June 12, 2023
Note:
This is a deprecation announcement.
The
search.list
method's
relatedToVideoId
parameter has been deprecated. YouTube will stop supporting the
parameter as of August 7, 2023.
At this time, a deprecation notice has been added to the
search.list
method's
documentation. This parameter will be fully removed from the
search.list
documentation
on or after August 7, 2023.
In addition, an example demonstrating how to retrieve related videos has been
removed from the
API implementation guide
.
August 22, 2022
Corrected type annotations for
video.statistics
fields to string from unsigned long.
August 5, 2022
YouTube has changed the way that caption IDs are generated and, as part of that change, is
assigning new caption IDs to all caption tracks. This change might be a backward-incompatible
change for applications that store
caption_id
values, though it will not
affect applications that do not store
caption_id
values.
Between now and December 1, 2022, the
captions.list
,
captions.update
,
captions.download
, and
and
captions.delete
methods will
support both the old and new caption track IDs. However, on or after December 1, 2022, YouTube
will stop supporting the old caption track IDs. At that time, calling any of those API methods
with an old caption track ID will result in a
captionNotFound
error.
To prepare for this change, you should plan to fully replace all stored caption track data
between now and December 1, 2022. This means that for any video for which you store caption track
data, you should delete the currently stored data, then call the
captions.list
method to retrieve the
current set of caption tracks for the video and store the data in the API response as you would
normally.
July 12, 2022
The YouTube API Services Terms of Service has been updated. Please
see the
YouTube API Services Terms of Service - Revision
History
for more information.
April 27, 2022
The
videos.insert
method description has been updated to note that the maximum file size for uploaded videos has increased from 128GB to 256GB.
April 8, 2022
The
subscriptions.list
method's
myRecentSubscribers
and
mySubscribers
parameter definitions
have both been updated to note that the maximum number of subscribers returned by the API might be limited.
This change represents a documentation correction and not a change in API behavior.
December 15, 2021
As announced on
November 18, 2021
, in conjunction with
changes to make video dislike
counts private across the entire YouTube platform
, the
video
resource's
statistics.dislikeCount
property is now private.
You can learn more about this change on
YouTube's official blog
.
November 18, 2021
In conjunction with
changes to
make video dislike counts private across the entire YouTube platform
, the
video
resource's
statistics.dislikeCount
property will be made private as of December 13, 2021. This means that the property will only
be included in an API response from the
videos.list
endpoint if the API request was
authenticated by the video owner.
The
videos.rate
endpoint is not affected
by this change.
Developers who do not display dislike counts publicly and still need the dislike count for their
API client can apply to be put on an allow list for an exemption. To apply for an exemption, you
must complete this
application form
.
You can learn more about this change on
YouTube's official blog
.
July 2, 2021
Note:
This is a deprecation announcement.
The
commentThreads.update
endpoint has been deprecated and is no longer supported.
This endpoint duplicated functionality available through other API endpoints. Instead, you can
call the
comments.update
method
and, if your code requires a
commentThreads
resource, make a secondary call to the
commentThreads.list
method.
July 1, 2021
All developers using YouTube’s API Services must complete an API Compliance Audit in order to be granted more than the default quota allocation of 10,000 units. To date, both the compliance audit process and requests for additional quota unit allocations have been conducted by developers filling out and submitting the
YouTube API Services - Audit and Quota Extension Form
.
To clarify these processes and better meet the needs of developers using our API Services, we are adding three new forms and a guide to completing those forms:
- Audited Developer Requests Form
: Developers who have already passed an API Compliance Audit can fill out and submit this shorter form to request an allocated quota extension.
- Appeals Form
: Developers whose API projects have failed a compliance audit (or been denied a quota unit increase) can fill out and submit this form.
- Change of Control Form
: Developers, or any party operating an API client on a developer’s behalf, who experience a change of control (for example, through a stock purchase or sale, merger or other form of corporate transaction) associated with an API project must fill out and submit this form. This enables YouTube’s API team to update our records, audit the new API project’s use case compliance, and validate the developer’s current quota allocation.
Each new form will inform us of your intended usage of YouTube’s API and enable us to better assist you.
More details are available in our new API Compliance Audits
guide
.
May 12, 2021
Note:
This is a deprecation announcement.
This update covers the following API changes:
-
The
channel
resource's
contentDetails.relatedPlaylists.favorites
property has been deprecated. Favorite videos functionality has already been deprecated for
several years as noted in the
April 28, 2016
, revision
history entry.
Prior to this update, the API would still create a new playlist if an API client attempted to
add a video to a nonexistent favorites playlist. Going forward, the playlist will not be
created in this case and the API will return an error. Attempts to modify favorites playlists
by adding, modifying, or deleting items are also all deprecated per prior announcements and
might start returning errors at any time.
-
The following
channel
resource
properties have been deprecated. These properties are already unsupported in the YouTube Studio UI
and on YouTube. As a result, they are also no longer supported via the API.
brandingSettings.channel.defaultTab
brandingSettings.channel.featuredChannelsTitle
brandingSettings.channel.featuredChannelsUrls[]
brandingSettings.channel.profileColor
brandingSettings.channel.showBrowseView
brandingSettings.channel.showRelatedChannels
All of the properties have been removed from the
channel
resource representation
, and their definitions have been removed from the resource's
property list
. In addition, errors
associated with these properties have been removed from the method-specific documentation.
-
The following
channelSection
resource
properties have been deprecated. These properties are already unsupported in the YouTube Studio UI
and on YouTube. As a result, they are also no longer supported via the API.
snippet.style
snippet.defaultLanguage
snippet.localized.title
localizations
localizations.(key)
localizations.(key).title
targeting
targeting.languages[]
targeting.regions[]
targeting.countries[]
In conjunction with this change, the
channelSection.list
method's
hl
parameter has also
been deprecated since the features it supports are not supported.
All of the properties have been removed from the
channelSection
resource representation
, and their definitions have been removed from the resource's
property list
. In addition, errors
associated with these properties have been removed from the method-specific documentation.
-
For the
channelSection
resource's
snippet.type
property,
the following values have been deprecated. These values are already unsupported on YouTube
channel pages and, as a result, they are also no longer supported via the API.
likedPlaylists
likes
postedPlaylists
postedVideos
recentActivity
recentPosts
-
The
playlist
resource's
snippet.tags[]
property has been deprecated. This property is already unsupported
on YouTube and, as a result, it is no longer supported via the API.
February 9, 2021
The
playlistItem
resource supports two new properties:
January 28, 2021
This update contains the following changes:
-
The
playlistItems.delete
,
playlistItems.insert
,
playlistItems.list
,
playlistItems.update
,
playlists.delete
,
playlists.list
, and
playlists.update
methods all support
a new
playlistOperationUnsupported
error. The error occurs when a request attempts to
perform an operation that is not allowed for a particular playlist. For example, a user cannot
delete a video from their uploaded videos playlist or delete the playlist itself.
In all cases, this error returns a
400
HTTP response code (Bad Request).
-
The
playlistItems.list
method's
watchHistoryNotAccessible
and
watchLaterNotAccessible
errors have
been removed from the documentation. While users' watch history and watch later lists are, indeed,
not accessible via the API, these particular errors are not returned by the API.
October 15, 2020
Two new sections have been added to the
Developer
Policies
:
- The new
Section III.E.4.i
provides
additional information about the data collected and sent via the YouTube embedded player. You
are responsible for any user data you send to us via any YouTube embedded player before the
user has interacted with the player to indicate playback intent. You can limit the data shared
with YouTube before a user interacts with the player by setting Autoplay to false.
- The new
Section III.E.4.j
relates
to checking the Made for Kids (MFK) status of content before embedding it on your sites and
apps. You are responsible for knowing when videos that you embed on your API Client are made
for kids and treating data collected from the embedded player accordingly. As such, you must
check the status of content using YouTube Data API Service before embedding it on your API
Client via any YouTube embedded players.
The new
Finding the MadeForKids status of a video
guide explains how to look up the MFK status of a video using the
YouTube Data API Service
.
In conjunction with these changes, a reminder has been added to the
Embedded Player Parameter documentation
to explain that
if you enable Autoplay, playback will occur without any user interaction with the player; playback
data collection and sharing will therefore occur upon page load.
October 8, 2020
This update covers three small changes related to the
channel
resource:
- The
snippet.thumbnails
object, which identifies a channel's thumbnail images, might be empty for newly created
channels and might take up to one day to populate.
- The
statistics.videoCount
property reflects the count of the channel's public videos only, even to owners. This behavior
is consistent with counts shown on the YouTube website.
- Channel keywords, which are identified in the
brandingSettings.channel.keywords
property, might be truncated if they exceed the maximum allowed length of 500 characters or
if they contained unescaped quotation marks (
"
). Note that the 500 character
limit is not a per-keyword limit but rather a limit on the total length of all keywords.
This behavior is consistent with that on the YouTube website.
September 9, 2020
Note:
This is a deprecation announcement.
This update covers the following API changes. All changes will go into effect on or after
9 September 2020, the date of this announcement. With that in mind, developers should no longer
rely on any of the API features listed below.
-
The following API resources, methods, parameters, and resource properties are deprecated
immediately and will stop working on or after the date of this announcement:
- The following
channel
resource
properties:
- The
statistics.commentCount
property
- The
brandingSettings.image
object and all of its child properties
- The
brandingSettings.hints
list and all of its child properties
- The
channels.list
method's
categoryId
filter parameter
- The
guideCategories
resource
and the
guideCategories.list
method
-
API responses for the
channels.list
method no
longer contain the
prevPageToken
property if the API request sets the
managedByMe
parameter
to
true
. This change does not affect the
prevPageToken
property
for other
channels.list
requests, and it does not affect the
nextPageToken
property for any requests.
-
The
channel
resource's
contentDetails.relatedPlaylists.watchLater
and
contentDetails.relatedPlaylists.watchHistory
properties were both announced
as deprecated on
11 August 2016
. The
playlistItems.insert
method's and
playlistItems.delete
method's support
for these playlists are also now fully deprecated, and the two properties have been removed
from the documentation.
-
The
channels.list
method's
mySubscribers
parameter, which was
announced as deprecated on
30 July 2013
, has been
removed from the documentation. Use the
subscriptions.list
method and
its
mySubscribers
parameter to retrieve a list of subscribers to the
authenticated user's channel.
-
The
channel
resource's
invideoPromotion
object and all of its child
properties, which were announced as deprecated on
27 November 2017
, have been removed from the documentation.
July 29, 2020
We have simplified our process for charging quota for API requests by removing the additional
cost associated with the
part
parameter. Effective immediately, we will only charge
the base cost for the method that is called. You can find more information about the simplified
quota
here
.
The effect of this change is that most API calls will have a marginally lower quota cost, while
some API calls will still have the same cost. This change does not increase the cost of any API
calls. Overall, the likely impact is that your allocated quota, which can be seen in the
Google Cloud Console
, will go a little further.
We strongly recommend that all developers complete a
compliance audit
for their
projects to ensure continued access to the YouTube API Services.
This revision history entry was originally published on July 20, 2020.
July 28, 2020
All videos uploaded via the
videos.insert
endpoint from unverified API projects created after
28 July 2020
will be restricted to
private viewing mode. To lift this restriction, each project must
undergo an audit
to verify
compliance with the
Terms of Service
.
Creators who use an unverified API client to upload video will receive an email explaining that
their video is locked as private, and that they can avoid the restriction by using an official
or audited client.
API projects created prior to 28 July 2020 are
not currently affected by this change. However, we strongly recommend that all developers
complete a compliance audit
for their projects to ensure continued access to the YouTube API Services.
July 21, 2020
[Updated July 28, 2020.] The documentation update referenced in this revision
history entry was republished on July 28, 2020.
Yesterday, we published a documentation update related to our process for charging quota.
However, due to unforeseen circumstances, the quota change is not yet in effect. As a result, the
documentation has been reverted in the interest of accuracy. To avoid confusion, the revision
history entry explaining the change has been removed and will be republished in the near future.
July 7, 2020
Note:
This is a deprecation announcement.
The
videos.insert
method's
autoLevels
and
stabilize
parameters are now deprecated, and both
parameters have been removed from the documentation. Their values are ignored and do not affect the
way newly uploaded videos are processed.
June 15, 2020
The new
Complying with the YouTube Developer
Policies
guide provides guidance and examples to help you ensure that your API clients adhere
to specific portions of the YouTube API Services
Terms
and
Policies
(API TOS).
This guidance offers insight into how YouTube enforces certain aspects of the API TOS but does
not replace any existing documents. The guide addresses some of the most common questions that
developers ask during API compliance audits. We hope that it simplifies your feature development
process by helping you understand how we interpret and enforce our policies.
June 4, 2020
Note:
This is an update to a prior deprecation announcement.
The channel bulletin feature has now been fully deprecated. This change was initially announced
on 17 April 2020 and has now taken effect. As a result, the
activities.insert
method is no
longer supported, and the
activities.list
method no longer returns channel bulletins. For more details, please see the
YouTube Help Center
.
April 17, 2020
Note:
This is a deprecation announcement.
YouTube is deprecating the channel bulletin feature. As a result, the
activities.insert
method will be
deprecated, and the
activities.list
method will stop returning channel bulletins. These changes will be effective in the API on or
after May 18, 2020. For more details, please see the
YouTube Help Center
.
March 31, 2020
This update contains the following changes:
January 10, 2020
The API now supports the ability to identify child-directed content, which YouTube calls
"made for kids."
Learn more about
"made for kids" content
in the YouTube Help Center.
The
channel
and
video
resources support two new properties to
enable content creators and viewers to identify content that is made for kids:
-
The
selfDeclaredMadeForKids
property enables content creators to specify whether a
channel
or
video
is made for kids.
For channels, this property can be set when calling the
channels.update
method. For videos,
this property can be set when calling either the
videos.insert
or
videos.update
methods.
Note that this property is only included in API responses that contain
channel
or
video
resources if the channel owner authorized the API request.
-
The
madeForKids
property enables any user to retrieve the "made for kids" status
of a
channel
or
video
. For example, the status might be
determined based on the value of the
selfDeclaredMadeForKids
property. See the
YouTube Help Center
for more
information about setting the audience for your channel, videos, or broadcasts.
We have also updated the YouTube API Services Terms of Service and Developer Policies. Please
see the
YouTube API Services Terms of Service - Revision
History
for more information. The changes to the YouTube API Services Terms of Service and
Developer Policies will take effect on January 10, 2020 Pacific Time.
September 10, 2019
The API reference documentation has been updated to reflect a change to the way that subscriber
counts are reported on YouTube and, consequently, in API responses. As a result of the change,
subscriber counts returned by the YouTube Data API Service are rounded down to three significant
figures for subscriber counts greater than 1000 subscribers. This change affects the
channel
resource's
statistics.subscriberCount
property.
Note:
This change affects this property value even in cases where a user
sends an authorized request for data about their own channel. Channel owners can still see exact
subscriber counts in YouTube Studio.
For example, if a channel has 123,456 subscribers, the
statistics.subscriberCount
property will contain the value
123000
.
The table below shows examples of how subscriber counts are rounded in API responses and
abbreviated in other publicly visible YouTube user interfaces:
Example subscriber count
|
YouTube Data API
|
Publicly visible YouTube UIs
|
1,234
|
1230
|
1.23K
|
12,345
|
12300
|
12.3K
|
123,456
|
123000
|
123K
|
1,234,567
|
1230000
|
1.23M
|
12,345,678
|
12300000
|
12.3M
|
123,456,789
|
123000000
|
123M
|
April 4, 2019
This update contains the following changes:
-
The API reference documentation has been updated to better explain common use cases for each method and to provide dynamic, high-quality code samples through the APIs Explorer widget. See the
channels.list
method's documentation for an example. There are now two new elements on pages that describe API methods:
-
The APIs Explorer widget lets you select authorization scopes, enter sample parameter and property values, and then send actual API requests and see actual API responses. The widget also offers a fullscreen view that shows complete code samples, which dynamically update to use the scopes and values that you have entered.
-
The
Common use cases
section describes one or more common use cases for the method explained on the page. For example, you could call the
channels.list
method to retrieve data about a specific channel or to retrieve data about the current user's channel.
You can use links in that section to populate the APIs Explorer with sample values for your use case or to open the fullscreen APIs Explorer with those values already populated. These changes aim to make it easier for you to see code samples that are directly applicable to the use case that you're trying to implement in your own application.
Code samples are currently supported for Java, JavaScript, PHP, Python, and curl.
-
The
code samples
tool has also been updated with a new UI that offers all of the same features described above. Using that tool, you can explore use cases for different methods, load values into the APIs Explorer, and open the fullscreen APIs Explorer to get code samples in Java, JavaScript, PHP, and Python.
In conjunction with this change, the pages that previously listed available code samples for Java, JavaScript, PHP, and Python have been removed.
-
The quickstart guides for
Java
,
JavaScript
,
PHP
, and
Python
have been updated. The revised guides explain how to run one sample with an API key and another sample with an OAuth 2.0 client ID using code samples from the APIs Explorer.
Note that the changes described above replace an interactive tool that had been added to the API documentation in 2017.
July 9, 2018
This update contains the following changes:
-
The definition of the
channel
resource's
snippet.thumbnails
property has been updated to note that when displaying thumbnails in your application, your code should use the image URLs exactly as they are returned in API responses. For example, your application should not use the
http
domain instead of the
https
domain in a URL returned in an API response.
Beginning in July 2018, channel thumbnail URLs will only be available in the
https
domain, which is how the URLs appear in API responses. After that time, you might see broken images in your application if it tries to load YouTube images from the
http
domain.
-
Note:
This is a deprecation announcement.
The
video
resource's
recordingDetails.location.altitude
property has been deprecated. There is no guarantee that videos will return values for this property. Similarly, even if API requests attempt to set a value for that property, it is possible that the incoming data will not be stored.
June 22, 2018
The
Implementation guide
, formerly known as the
Implementation and Migration guide, has been updated to remove instructions for migrating from the
v2 API to the v3 API. In addition, instructions have also been removed for features that have
since been deprecated in the v3 API, such as favorite videos.
November 27, 2017
This update contains the following changes:
-
Note:
This is a deprecation announcement.
YouTube is removing support for the
Featured Video
and
Featured Website
features, which are supported in the API via the
channel
resource's
invideoPromotion
object. As a result, that object, including all of its child properties are being deprecated.
You can still retrieve and set
invideoPromotion
data until December 14, 2017. After that date:
- Attempts to retrieve the
invideoPromotion
part when calling
channels.list
will return an empty
invideoPromotion
or will not return any
invideoPromotion
data at all.
- Attempts to update
invideoPromotion
data when calling
channels.update
will return a successful response until at least May 27, 2018, but they will be treated as no-ops, meaning that they will not actually perform an update.
After May 27, 2018, it is possible that these requests could return error messages to indicate, for example, that
invalidPromotion
is an invalid part.
November 16, 2017
This update contains the following changes:
-
The
interactive code snippet tool
now supports Node.js code samples. The samples are also visible in the documentation for almost all API methods, such as the
channels.list
method.
The customizable samples are designed to give you a use-case-specific starting point for a Node.js application. The functionality is similar to the code in the
Node.js quickstart guide
. However, the samples do contain some utility functions that don't appear in the quickstart:
- The
removeEmptyParameters
function takes a list of key-value pairs corresponding to API request parameters and removes the parameters that don't have values.
- The
createResource
function takes a list of key-value pairs corresponding to properties in an API resource. It then converts the properties into a JSON object that can be used in
insert
and
update
operations. The example below shows a set of property names and values and the JSON object that the code would create for them:
# Key-value pairs:
{'id': 'ABC123',
'snippet.title': 'Resource title',
'snippet.description': 'Resource description',
'status.privacyStatus': 'private'}
# JSON object:
{
'id': 'ABC123',
'snippet': {
'title': 'Resource title',
'description': 'Resource description',
},
'status': {
'privacyStatus': 'private'
}
}
All of these samples are designed to be downloaded and run locally. For more information, see the prerequisites for
running full code samples locally
in the code snippet tool instructions.
October 25, 2017
This update contains the following changes:
-
The Python code samples in the
interactive code snippet tool
have been updated to use the
google-auth
and
google-auth-oauthlib
libraries instead of the
oauth2client
library, which is now deprecated.
In addition to that change, the tool now provides full code samples for installed Python applications and Python web server applications, which use slightly different authorization flows. To see the full samples (and this change):
- Go to the
interactive code snippet tool
or to the documentation for any API method, such as the
channels.list
method.
- Click the
Python
tab above the code samples.
- Click the toggle above the tabs to switch from seeing a snippet to a full sample.
- The tab should now show a complete code sample that uses the
InstalledAppFlow
authorization flow. The description above the sample explains this and also links to a sample for a web server application.
- Click the link to switch to the web server example. That sample uses the Flask web application framework and a different authorization flow.
All of these samples are designed to be downloaded and run locally. If you'd like to run the samples, see the instructions for
running full code samples locally
in the code snippet tool instructions.
August 29, 2017
This update contains the following changes:
- The definition of the
search.list
method's
forContentOwner
parameter has been updated to note that if that parameter is set to
true
, the
type
parameter must be set to
video
.
- The definition of the
search.list
method's
regionCode
parameter has been updated to clarify that the parameter restricts search results to videos that can be viewed in the specified region.
- YouTube has updated its branding logos and icons. New "developed with YouTube" logos can be downloaded from the
branding guidelines
page. Other new YouTube logos and icons are also shown on that page and can be downloaded from the
YouTube brand site
.
July 24, 2017
This update contains the following changes:
June 1, 2017
This update contains the following changes:
-
Note:
This is a deprecation announcement.
The following
video
resource properties are being deprecated. While the properties will be supported until December 1, 2017, there is no guarantee that videos will continue to return values for those properties until that time. Similarly,
videos.insert
and
videos.update
requests that set those property values will not generate errors before that date, but it is possible that the incoming data will not be stored.
May 17, 2017
This update contains the following changes:
-
The API reference documentation has been updated to make code snippets more ubiquitous and interactive. Pages that explain API methods, like
channels.list
or
videos.rate
, now feature an interactive tool that lets you view and customize code snippets in Java, JavaScript, PHP, Python, Ruby, Apps Script, and Go.
For any given method, the tool shows code snippets for one or more use cases, and each use case describes a common way of calling that method. For example, you can call the
channels.list
method to retrieve data about a specific channel or about the current user's channel.
You can also interact with code samples:
-
Modify parameter and property values, and the code snippets dynamically update to reflect the values you provide.
-
Toggle between code snippets and full samples. A code snippet shows the portion of the code that calls the API method. A full sample contains that snippet as well as boilerplate code for authorizing and sending requests. Full samples can be copied and run from the command line or a local web server.
-
Execute requests by clicking a button. (To execute requests, you need to authorize the tool to call the API on your behalf.)
Note that this tool has replaced the APIs Explorer on the pages where it is available. (Each page displays a link so that you also have the option of loading the request you are working on in the APIs Explorer.)
-
The
Data API Code Snippets
tool has also been updated with a new UI that offers all of the same features described above. The major new features available on this page are:
- Support for API requests that write data.
- Support for Java samples.
- More flexible and comprehensive boilerplate code for authorizing users and building API requests.
April 27, 2017
This update contains the following changes:
March 30, 2017
This update contains the following changes:
- The
channel
resource's new
topicDetails.topicCategories[]
property contains a list of Wikipedia URLs that describe the channel's content. The URLs correspond to the topic IDs returned in the resource's
topicDetails.topicIds[]
property.
- The
playlistItem
resource's new
contentDetails.videoPublishedAt
property identifies the time that the video was published to YouTube. The resource already contains the
snippet.publishedAt
property, which identifies the time that the item was added to the playlist.
- Like the
channel
resource, the
video
resource now returns the
topicDetails.topicCategories[]
property, which contains a list of Wikipedia URLs that describe the video's content. For
video
resources, the URLs correspond to the topic IDs returned in the resource's
topicDetails.relevantTopicIds[]
property.
- The
video
resource's new
contentDetails.contentRating.mpaatRating
property identifies the rating that the Motion Picture Association of America gave to a movie trailer or preview.
February 27, 2017
As originally
announced on August 11, 2016
, YouTube has switched the supported list of topic IDs to a curated list. The complete list of supported topic IDs is included in the
topicDetails
properties for
channel
and
video
resources as well as in the
search.list
method's
topicId
parameter.
Note that there are several changes to the curated list:
- The following topics have been added as subtopics of
Society
:
Name
| topic ID
|
Business
| /m/09s1f
|
Health
| /m/0kt51
|
Military
| /m/01h6rj
|
Politics
| /m/05qt0
|
Religion
| /m/06bvp
|
- The
Animated cartoon
topic, previously a child of
Entertainment
, has been removed.
- The
Children's music
topic, previously a child of
Music
, has been removed.
As a result of this change, topics related to a video are now always returned in the
video
resource's
topicDetails.relevantTopicIds[]
property value.
November 29, 2016
This update contains the following changes:
-
There are three small changes to the list of topic IDs that will be supported as of February 10, 2017:
- The
Professional wrestling
category, which was previously a child of the
Sports
category, is now a child of
Entertainment
.
- The
TV shows
category, which is a child of
Entertainment
, is new.
- The
Health
category, previously a child of
Lifestyle
, has been removed.
Also note that there are a few parent categories (
Entertainment
,
Gaming
,
Lifestyle
,
Music
, and
Sports
). Any video that is associated with a child category, like
Tennis
, will also be associated with the parent category (
Sports
).
November 10, 2016
This update contains the following changes:
-
As
first announced on August 11, 2016
, the deprecation of Freebase and the Freebase API requires several changes related to topic IDs. Topic IDs identify topics associated with
channel
and
video
resources, and you can also use the
topicId
search parameter to find channels or videos related to a particular topic.
On February 10, 2017, YouTube will start returning a small set of topic IDs instead of the much more granular set of IDs returned thus far. In addition, note that channels and videos are not guaranteed to be associated with any topics, which is consistent with current API behavior.
So that you can prepare your API Clients for those changes, the definitions of the following API parameters and properties have been updated to list the topic IDs that will be supported after that time. Note that the list of categories is the same for all of the properties.
-
Note:
This is a deprecation announcement.
The following properties are being deprecated:
- The
channel
resource's
topicDetails.topicIds[]
property. This property will be supported until November 10, 2017.
- The
video
resource's
topicDetails.relevantTopicIds[]
property. This property will be supported until November 10, 2017.
- The
video
resource's
topicDetails.topicIds[]
property. This property will not contain values after February 10, 2017. (After that date, the
topicDetails.relevantTopicIds[]
property value will identify all of the topics associated with a video.)
-
Since Freebase has already been deprecated, the
Searching with Freebase Topics
guide has been removed from the documentation. That guide provided code samples to show how an application would work with the Freebase API.
In addition, several code samples related to topic IDs have been removed from the
search.list
method's documentation.
November 2, 2016
This update contains the following changes:
September 15, 2016
This update contains the following changes:
-
The August 11, 2016, revision history update discussed several changes related to topic IDs, including the fact that the set of supported topic IDs will change as of February 10, 2017. The list of topics that will be supported will be published by November 10, 2016.
-
The following changes are now in effect. Notice of these changes was given in the revision history update on August 11, 2016:
-
If the
activities.list
method is called with the
home
parameter set to
true
, the API response now contains items similar to what a logged-out YouTube user would see on the home page.
This is a slight change that is intended to provide a better user experience than the behavior described in the revision history update on August 11, 2016. That update had stated that requests using the
home
parameter would return an empty list.
-
The
channel
resource's
contentDetails.relatedPlaylists.watchHistory
and
contentDetails.relatedPlaylists.watchLater
properties now contain values of
HL
and
WL
, respectively, for all channels.
To be clear, these properties are only visible to an authorized user retrieving data about the user's own channel. The properties always contain the values
HL
and
WL
, even for an authorized user retrieving data about the user's own channel. Thus, the watch history and watch later playlist IDs cannot be retrieved via the API.
In addition, requests to retrieve playlist details (
playlists.list
) or playlist items (
playlistItems.list
) for a channel's watch history or watch later playlist now return empty lists. This behavior is true for the new values,
HL
and
WL
, as well as for any watch history or watch later playlist IDs that your API Client may have already stored.
-
The
video
resource's
fileDetails.recordingLocation
object and its child properties are no longer returned. Previously, this data (like the parent
fileDetails
object) could only be retrieved by a video's owner.
August 11, 2016
This update contains the following changes:
-
The newly published YouTube API Services Terms of Service ("the Updated Terms"), discussed in detail on the
YouTube Engineering and Developers Blog
, provides a rich set of updates to the current Terms of Service. In addition to the
Updated Terms
, which will go into effect as of February 10, 2017, this update includes several supporting documents to help explain the policies that developers must follow.
The full set of new documents is described in the
revision history for the Updated Terms
. In addition, future changes to the Updated Terms or to those supporting documents will also be explained in that revision history. You can subscribe to an RSS feed listing changes in that revision history from a link in that document.
-
The deprecation of Freebase and the Freebase API is causing several changes related to topic IDs. Topic IDs are used in the following API resources and methods:
- The
channel
resource's
topicDetails
part identifies topics associated with the channel.
- The
video
resource's
topicDetails
part identifies topics associated with the video.
- The
search.list
method's
topicId
parameter lets you search for videos or channels related to a particular topic.
The changes to these features are:
-
As of February 10, 2017, YouTube will start returning a small set of topic IDs instead of the much more granular set of IDs returned thus far. That set of supported topics will identify high-level categorizations like
Sports
or
Basketball
, but, for example, they will not identify specific teams or players. We will be announcing the set of supported topics so that you have time to prepare your application for this change.
-
Any Freebase topic IDs that you have already retrieved can be used to search for content until February 10, 2017. However, after that time, you will be able to use only the smaller set of topics identified in the previous item to retrieve search results by topic.
-
After February 10, 2017, if you try to search for results using a topic ID that is not in the smaller set of supported topic IDs, the API will return an empty result set.
-
Several API fields and parameters are being deprecated effective September 12, 2016:
-
The
activities.list
method's
home
parameter enabled an authorized user to retrieve the activity feed that would display on the YouTube home page for that user. Requests that use this parameter after September 12, 2016, will return an empty list.
-
The
channel
resource's
contentDetails.relatedPlaylists.watchHistory
and
contentDetails.relatedPlaylists.watchLater
properties are only visible to an authorized user retrieving data about the user's own channel. After September 12, 2016, the
contentDetails.relatedPlaylists.watchHistory
will return a value of
HL
and the
contentDetails.relatedPlaylists.watchLater
property will return a value of
WL
for all channels.
Requests to retrieve playlist details (
playlists.list
) for a channel's watch history or watch later playlist will return an empty list after September 12, 2016. Requests to retrieve playlist items (
playlistItems.list
) in either of those playlists will also return an empty list after that time. This is true for the new values,
HL
and
WL
, as well as for any watch history or watch later playlist IDs that your API Client may have already stored.
-
The
video
resource's
fileDetails.recordingLocation
object or any of its child properties will no longer be returned after September 12, 2016. This data can only be retrieved by a video's owner since the parent
fileDetails
object can only be retrieved by a video owner.
June 13, 2016
This update contains the following changes:
-
The
channel
resource's
contentDetails.googlePlusUserId
property has been deprecated. Previously, the property was only present if the channel was associated with a Google+ profile. Following the deprecation, the property will no longer be included in any
channel
resources.
-
The
comment
resource's
snippet.authorGoogleplusProfileUrl
property has been deprecated. Previously, the property was only present if the channel was associated with a Google+ profile. Following the deprecation, the property will no longer be included in any
comment
resources.
Since neither of these properties will be returned following the deprecation, both properties have been removed from the corresponding resource documentation.
May 31, 2016
This update contains the following changes:
-
The
subscriptions.list
method's new
myRecentSubscribers
parameter retrieves a list of the subscribers of the authenticated user's channel in reverse chronological order of the time that they subscribed to the channel.
Note that the new parameter only supports retrieval of the most recent 1000 subscribers to the authenticated user's channel. To retrieve a complete list of subscribers, use the
mySubscribers
parameter. That parameter, which does not return subscribers in a particular order, does not limit the number of subscribers that can be retrieved.
-
The definition of the
snippet.thumbnails.(key)
property has been updated for the
activity
,
playlistItem
,
playlist
,
search result
,
thumbnail
, and
video
resources to note that additional thumbnail image sizes are available for some videos.
- The
standard
image is 640px wide and 480px tall.
- The
maxres
image is 1280px wide and 720px tall.
-
The definition of the
channelSection.list
method's
part
parameter has been updated to note that the
targeting
part can be retrieved at a cost of
2
quota units.
-
The
videos.list
method now returns a
forbidden
(
403
) error when an improperly authorized request tries to retrieve the
fileDetails
,
processingDetails
, or
suggestions
parts of a
video
resource. Those parts are only available to the video's owner.
May 17, 2016
The new
Data API Code Snippets
tool provides short code snippets for common YouTube Data API use cases. Code snippets are currently available for all read-only API methods in Apps Script, Go, JavaScript, PHP, Python, and Ruby.
For each method, the tool shows code samples for one or more use cases. For example, it provides five code snippets for the
search.list
method:
- List videos by keyword
- List videos by location
- List live events
- Search for the authenticated user's videos
- List related videos
For each use case, the tool displays the parameters used in the API request. You can modify the parameter values, in which case the tool updates the code snippets to reflect the parameter values that you provided.
Finally, the tool displays the API response to each request. If you have modified the request parameters, the API response is based on your provided parameter values. Note that you need to authorize the tool to submit requests on your behalf for API responses to display.
April 28, 2016
This update contains the following changes:
-
The
video
resource's new
contentDetails.projection
property specifies the video's projection format. Valid property values are
360
and
rectangular
.
-
The
video
resource's
recordingDetails.location
and
fileDetails.recordingLocation
properties have both been updated to explain the difference between the two properties:
- The
recordingDetails.location
property identifies the location that the video owner wants to associate with the video. This location is editable, searchable on public videos, and might be displayed to users for public videos.
- The
fileDetails.recordingLocation
property value is immutable and represents the location associated with the original, uploaded video file. The value is only visible to the video owner.
-
The definition of the
channel
resource's
contentDetails.relatedPlaylists.favorites
property has been updated to note that the property value might contain a playlist ID that refers to an empty playlist and that cannot be fetched. This is due to the fact that favorite videos functionality has already been deprecated. Note that this property is
not subject to the API deprecation policy
.
-
The definition of the
ineligibleAccount
error, which can be returned by the
comments.insert
,
comments.update
,
commentThreads.insert
, or
commentThreads.update
method, has been updated to reflect that the error occurs when the YouTube account used to authorize the API request has not been merged with the user's Google account.
April 20, 2016
This update contains the following changes:
-
The definition of the
channels.update
method's
part
parameter has been updated to note that
localizations
is also a valid value for that parameter.
-
The
Quota Usage
section of the Getting Started guide has been updated to link to the Google Developer's Console, where you can see your actual quota and quota usage.
March 16, 2016
This update contains the following changes:
December 18, 2015
European Union (EU) laws require that certain disclosures must be given to and consents obtained from end users in the EU. Therefore, for end users in the European Union, you must comply with the
EU User Consent Policy
. We have added a notice of this requirement in our
YouTube API Terms of Service
.
November 19, 2015
The API now supports the ability to set and retrieve localized text for the
snippet.title
and
snippet.description
properties of the
playlist
and
video
resources, the
snippet.title
property of the
channelSection
resource, and the
snippet.description
property of the
channel
resource.
-
Setting localized titles and descriptions
You can set localized values for a resource when calling the
insert
or
update
method for that resource. To set localized values for a resource, do both of the following:
-
Ensure that a value is set for the resource's
snippet.defaultLanguage
property. That property identifies the language of the resource's
snippet.title
and
snippet.description
properties. Its value can be any
supported application language
or most other ISO 639-1:2002 language codes. For example, if you upload a video that has an English title and description, you would set the
snippet.defaultLanguage
property to
en
.
Note for updating
channel
resources:
To set the
snippet.defaultLanguage
property for a
channel
resource, you actually need to update the
brandingSettings.channel.defaultLanguage
property.
-
Add the
localizations
object to the resource you are updating. Each object key is a string that identifies an application language or ISO 639-1:2002 language code, and each key maps to an object that contains the localized title (and description) for the resource.
The sample snippet below sets the resource's default language to English. It also adds localized German and Spanish titles and descriptions to a video:
{
"kind": "youtube#video",
...
"snippet": {
"title": "Playing soccer",
"description": "We play soccer in the park on Sundays.",
"defaultLanguage": "en",
...
},
"localizations":
"de": {
"title": "Fußball spielen",
"description": "Wir spielen Fußball im Park am Sonntag"
},
"es": {
"title": "Jugar al futbol",
"description": "Nosotros jugamos futbol en el parque los domingos",
}
}
}
Important:
Remember that when you update the localized data for a resource, your API request must include all of the existing localized versions of the data. For example, if you sent a subsequent request to add Portuguese data to the video in the example above, the request would need to include the localized data for German, Spanish, and Portuguese.
-
Retrieving localized values
The API supports two ways to retrieve localized values for a resource:
-
Add the
hl
parameter to your
channels.list
,
channelSections.list
,
playlists.list
, or
videos.list
request to retrieve localized data for a specific
application language that the YouTube website supports
. If localized resource details are available in that language, the resource's
snippet.localized
object will contain the localized values. However, if localized details are not available, the
snippet.localized
object will contain resource details in the resource's
default language
.
For example, suppose a
videos.list
request retrieved data for the video described above with localized German and Spanish data. If the
hl
parameter were set to
de
, the resource would contain the following data:
{
"kind": "youtube#video",
...
"snippet": {
"title": "Playing soccer",
"description": "We play soccer in the park on Sundays.",
"defaultLanguage": "en",
"localized": {
"title": "Fußball spielen",
"description": "Wir spielen Fußball im Park am Sonntag"
}
...
}
}
However, if the
hl
parameter were set to
fr
, the
snippet.localized
object would contain the English title and description because English is the default language for the resource, and localized French details are not available.
Important:
The
hl
parameter only supports values that identify application languages that the YouTube website supports. To determine whether localized text is available for other languages, you need to retrieve the
localizations
part for the resource and filter to determine whether the localized text exists.
For example, you would need to retrieve the full list of localizations to determine whether localized text is available in Appalachian English.
-
When retrieving a resource, include
localizations
in the
part
parameter value to retrieve all of the localized details for that resource. If you are retrieving localized data for a language that is not a
current YouTube application language
, you need to use this approach to retrieve all localizations and then filter to determine whether the desired localized data exists.
-
Errors related to localized text values
The API also supports the following new errors for localized text values:
Error type
|
Error detail
|
Description
|
badRequest (400)
|
defaultLanguageNotSetError
|
This error indicates that a request that tries to insert or update the
localizations
object for a resource is failing because the
snippet.defaultLanguage
property is not set for that resource. The
channels.update
,
channelSections.insert
,
channelSections.update
,
playlists.insert
,
playlists.update
,
videos.insert
, and
videos.update
methods support this error.
|
badRequest (400)
|
localizationValidationError
|
This error indicates that one of the values in a resource's
localizations
object failed to validate. For example, this error might occur if the object contains an invalid language code. The
channels.update
,
channelSections.insert
,
channelSections.update
,
playlists.insert
, and
playlists.update
methods support this error.
|
November 4, 2015
This update contains the following changes:
New and updated errors
-
The API now supports the following errors:
Error details
|
activities.insert
|
HTTP Response Code
| badRequest (400)
|
Reason
| invalidMetadata
|
Description
| The
kind
property does not match the type of ID provided.
|
|
commentThreads.update
comments.insert
comments.update
|
HTTP Response Code
| badRequest (400)
|
Reason
| commentTextTooLong
|
Description
| The
comment
resource that is being inserted or updated contains too many characters in the
snippet.topLevelComment.snippet.textOriginal
property.
|
|
playlistItems.insert
playlistItems.update
|
HTTP Response Code
| forbidden (403)
|
Reason
| playlistItemsNotAccessible
|
Description
| The request is not properly authorized to insert, update, or delete the specified playlist item.
|
|
playlists.delete
playlists.insert
playlists.update
|
HTTP Response Code
| badRequest (400)
|
Reason
| playlistForbidden
|
Description
| This operation is forbidden or the request is not properly authorized.
|
|
search.list
|
HTTP Response Code
| badRequest (400)
|
Reason
| invalidLocation
|
Description
| The
location
and/or
locationRadius
parameter value was formatted incorrectly.
|
|
search.list
|
HTTP Response Code
| badRequest (400)
|
Reason
| invalidRelevanceLanguage
|
Description
| The
relevanceLanguage
parameter value was formatted incorrectly.
|
|
subscriptions.insert
|
HTTP Response Code
| badRequest (400)
|
Reason
| subscriptionForbidden
|
Description
| This error occurs when any of the following are true:
- The subscription that you are trying to create already exists
- You have already reached your maximum number of subscriptions
- You are trying to subscribe to your own channel, which is not supported.
- You have created too many subscriptions recently and need to wait a few hours before retrying the request.
|
|
videos.update
|
HTTP Response Code
| badRequest (400)
|
Reason
| invalidDefaultBroadcastPrivacySetting
|
Description
| The request attempts to set an invalid privacy setting for the default broadcast.
|
|
August 28, 2015
This update contains the following changes:
August 7, 2015
This update contains the following changes:
June 18, 2015
This update contains the following changes:
April 27, 2015
This update contains the following changes:
April 16, 2015
This update contains the following changes:
-
The
migration guide
has been updated to explain how to migrate applications still using comments functionality from the v2 API.
The guide also calls out several commenting features that the v2 API did not support but that are
supported in the v3 API
. These include:
- Retrieving comments about a channel
- Retrieving all comment threads related to a channel, which means that the API response can contain comments about the channel or any of its videos.
- Updating the text of a comment
- Marking a comment as spam
- Setting a comment's moderation status
-
The
Subscribing to push notifications
guide has been updated to reflect the fact that notifications are only pushed to the Google PubSubHubBub hub and not also to the Superfeedr hub as previously indicated.
April 9, 2015
This update contains the following changes:
-
The API's new
commentThread
and
comment
resources let you retrieve, insert, update, delete, and moderate comments.
-
A
commentThread
resource contains information about a YouTube comment thread, which comprises a top-level comment and replies, if any exist, to that comment. A
commentThread
resource can represent comments about either a video or a channel.
The top-level comment and the replies are actually
comment
resources that are nested inside the
commentThread
resource. It is important to note that the
commentThread
resource does not necessarily contain all replies to a comment, and you need to use the
comments.list
method if you want to retrieve all replies for a particular comment. In addition, some comments do not have replies.
The API supports the following methods for
commentThread
resources:
commentThreads.list
– Retrieve a list of comment threads. Use this method to retrieve comments associated with a particular video or channel.
commentThreads.insert
– Create a new top-level comment. (Use the
comments.insert
method to reply to an existing comment.)
commentThreads.update
– Modify a top-level comment.
-
A
comment
resource contains information about a single YouTube comment. A
comment
resource can represent a comment about either a video or a channel. In addition, the comment could be a top-level comment or a reply to a top-level comment.
The API supports the following methods for
comment
resources:
comments.list
– Retrieve a list of comment. Use this method to retrieve all of the replies to a particular comment.
comments.insert
– Create a reply to an existing comment.
comments.update
– Modify a comment.
comments.markAsSpam
– Flag one or more comments as spam.
comments.setModerationStatus
– Set the moderation status of one or more comments. For example, clear a comment for public display or reject a comment as unfit for display. The API request must be authorized by the owner of the channel or video associated with the comments..
comments.delete
– Delete a comment.
Note that the API's new
https://www.googleapis.com/auth/youtube.force-ssl
scope, described in the
revision history for April 2, 2015
, is required for calls to the
comments.insert
,
comments.update
,
comments.markAsSpam
,
comments.setModerationStatus
,
comments.delete
,
commentThreads.insert
, and
commentThreads.update
methods.
-
The new
Subscribing to push notifications
guide explains the API's new support for push notifications via
PubSubHubBub
, a server-to-server publish/subscribe protocol for Web-accessible resources. Your PubSubHubBub callback server can receive Atom feed notifications when a channel does any of the following activities:
- uploads a video
- updates a video's title
- updates a video's description
-
The
migration guide
has also been updated to note the new support for push notifications. However, since the v2 API supported numerous other types of push notifications that are not supported in the v3 API, the mention of PubSubHubBub support is still listed in the
Deprecated
section of that guide.
-
The API's new
https://www.googleapis.com/auth/youtube.force-ssl
scope is now a valid scope for any API method that previously supported the
https://www.googleapis.com/auth/youtube
scope.
-
The API now supports the following errors:
Error type
|
Error detail
|
Description
|
badRequest (400)
|
invalidRating
|
The
videos.rate
method returns this error if the request contained an unexpected value for the
rating
parameter.
|
-
The
subscriptions.insert
method no longer supports the
subscriptionLimitExceeded
error, which previously indicated that the subscriber identified with the request had exceeded the subscription rate limit.
April 2, 2015
This update contains the following changes:
-
The new
captions
resource represents a YouTube caption track. A caption track is associated with exactly one YouTube video.
The API supports methods to
list
,
insert
,
update
,
download
, and
delete
caption tracks.
-
The
migration guide
has also been updated to explain how to migrate applications still using captions functionality in the v2 API.
-
The API's new
https://www.googleapis.com/auth/youtube.force-ssl
scope requires communication with the API server to happen over an SSL connection.
This new scope grants the same access as the
https://www.googleapis.com/auth/youtube
scope. And, in fact, those two scopes are functionally identical because the YouTube API server is only available via an HTTPS endpoint. As a result, even though the
https://www.googleapis.com/auth/youtube
scope does not require an SSL connection, there is actually no other way to make an API request.
The new scope is required for calls to the all of the
caption
resource's methods.
March 11, 2015
This update contains the following changes:
-
The
YouTube Data API (v3) migration guide
contains a new tab, named
New in the v3 API
, that lists features that the v3 API does support and that the v2 API did not support. The same features were previously and are still listed in other tabs in the guide. For example, the new feature explaining how to update a channel's in-video promotional campaign data is also listed under the
Channels (profiles)
tab.
-
The
YouTube Data API (v3) migration guide
has been updated to note that the v3 API will support the following v2 API feature:
-
The
YouTube Data API (v3) migration guide
has been updated to note that the following v2 API features will not be supported in the v3 API:
-
Retrieve video recommendations
– The v3 API does not retrieve a list that only contains videos recommended for the current API user. However, you can use the v3 API to find recommended videos by calling the
activities.list
method and setting the
home
parameter value to
true
.
In the API response, a resource corresponds to a recommended video if the
snippet.type
property's value is
recommendation
. In that case, the
contentDetails.recommendation.reason
and
contentDetails.recommendation.seedResourceId
properties will contain information about why the video was recommended. Note that there is no guarantee that the response will contain any particular number of recommended videos.
Retrieve channel suggestions
-
Retrieve new subscription videos
– The v3 API does not retrieve a list that only contains videos that have recently been uploaded to channels that the API user subscribes to. However, you can use the v3 API to find new subscription videos by calling the
activities.list
method and setting the
home
parameter value to
true
.
In the API response, a resource corresponds to a new subscription video if the
snippet.type
property's value is
upload
. Note that there is no guarantee that the response will contain any particular number of new subscription videos.
-
RSS feed support
-
Push notifications for feed updates
– The v2 API supported push notifications, using either the Simple Update Protocol (SUP) or
PubSubHubbub
, to monitor user activity feeds for YouTube users. Notifications were provided for new channel subscriptions and when videos were rated, shared, marked as favorites, commented on, or uploaded.
The v3 API will support push notifications using the
PubSubHubbub protocol
, but the notifications will only cover video uploads and updates to video titles or video descriptions.
-
Channel location
– The v2 API used the
<yt:location>
tag to identify the user's location as entered in the channel's YouTube public profile. While some developers used this field to associate a channel with a particular country, the field's data could not consistently be used for that purpose.
-
Set or retrieve developer tags
– The v2 API supported the ability to associate keywords, or developer tags, with a video at the time that the video was uploaded. Developer tags would not be displayed to YouTube users, but video owners could retrieve videos that matched a specific developer tag.
The v3 API will provide a similar, but not identical, feature. Specifically, a developer will be able to search for videos uploaded by the developer's own application. For this feature, each uploaded video is automatically tagged with the project number that is associated with the developer's application in the
Google Developers Console
. The developer then uses the same project number to search for videos.
-
List videos by publication date, viewcount, or rating
– In the v2 API, the
orderby
parameter let you sort videos in a playlist by position, duration, publication date, title, and several other values. In the v3 API, playlist items are typically sorted by position in ascending order and other sorting options are not available.
There are a few exceptions. A new upload, favorite video, liked video, or recently watched video is automatically added as the first item (
snippet.position
=
0
) for the following types of playlists. So, each of these lists is effectively sorted in order of newest to oldest item based on the times that items were added to the list.
- user uploads
- favorite videos
- liked videos
- watch history
Note, however, that a new item added to the "Watch later" playlist is added as the last item in that list, so that list is effectively sorted from oldest to newest item.
-
Batch processing
– The v3 API supports one of the batch processing use cases that the v2 API had supported. The v3 API's
channels.list
,
channelSections.list
,
guideCategories.list
,
playlistItems.list
,
playlists.list
,
subscriptions.list
,
videoCategories.list
, and
videos.list
methods all support an
id
parameter, which can be used to specify a comma-delimited list of IDs (video IDs, channel IDs, etc.). Using those methods, you can retrieve a list of multiple resources with a single request.
With these changes, the guide now identifies all functionality that was supported in the old (v2) API that will be deprecated in the current API version (v3).
March 4, 2015
This update contains the following changes:
-
The
channelSections.delete
and
channelSections.update
methods now support the
onBehalfOfContentOwner
parameter, which is already supported for several other methods.
-
The following properties and their child properties have been deprecated:
brandingSettings.image.backgroundImageUrl
brandingSettings.image.largeBrandedBannerImageImapScript
brandingSettings.image.largeBrandedBannerImageUrl
brandingSettings.image.smallBrandedBannerImageImapScript
brandingSettings.image.smallBrandedBannerImageUrl
Note:
None of these properties had been subject to the API Deprecation Policy.
-
The
video
resource's new
contentDetails.contentRating.contentDetails.contentRating.djctqRatingReasons
property identifies the reasons that explain why the video received its DJCQT (Brazil) rating.
-
The API now supports the following errors:
Error type
|
Error detail
|
Description
|
notFound (404)
|
channelNotFound
|
The
channels.update
method returns this error if the request's
id
parameter specifies a channel that cannot be found.
|
badRequest (400)
|
manualSortRequiredinvalidValue
|
The
playlistItems.insert
and
playlistItems.update
methods return this error if the request attempts to set the playlist item's position, but the playlist does not use manual sorting. For example, playlist items might be sorted by date or popularity. You can address this error by removing the
snippet.position
element from the resource sent in the request body. If you want the playlist item to have a specific position in the list, you need to first update the playlist's ordering setting to
Manual
. THis setting can be adjusted in the
YouTube Video Manager
.
|
forbidden (403)
|
channelClosed
|
The
playlists.list
method returns this error if the request's
channelId
parameter specifies a channel that has been closed.
|
forbidden (403)
|
channelSuspended
|
The
playlists.list
method returns this error if the request's
channelId
parameter specifies a channel that has been suspended.
|
forbidden (403)
|
playlistForbidden
|
The
playlists.list
method returns this error if the request's
id
parameter does not support the request or the request is not properly authorized.
|
notFound (404)
|
channelNotFound
|
The
playlists.list
method returns this error if the request's
channelId
parameter specifies a channel that cannot be found.
|
notFound (404)
|
playlistNotFound
|
The
playlists.list
method returns this error if the request's
id
parameter specifies a playlist that cannot be found.
|
notFound (404)
|
videoNotFound
|
The
videos.list
method returns this error if the request's
id
parameter specifies a video that cannot be found.
|
badRequest (400)
|
invalidRating
|
The
videos.rate
method returns this error if the request contains an unexpected value for the
rating
parameter.
|
March 2, 2015
This update contains the following changes:
-
The
search.list
method now supports the
relevanceLanguage
parameter, which lets you request results that are most relevant to a particular language.
The
YouTube Data API (v3) migration guide
has also been updated to explain how to use this new parameter. The parameter addresses a feature gap that previously existed between the current API version (v3) and the previous version (v2), which has already been deprecated.
-
The
YouTube Data API (v3) migration guide
has also been updated to indicate the deprecation of the
special feeds and metadata fields
that the v2 API provided for describing movies, trailers, television shows, television seasons, and television episodes.
January 14, 2015
This update contains the following changes:
-
The
YouTube Data API (v3) migration guide
has been updated to explain how to use the v3 API to upload videos using JavaScript. (See the
Upload a video
section for details.) This functionality is comparable to the
browser-based uploading
functionality that the v2 API supports. Note that this change to the migration guide does not reflect an actual API change but rather the availability of new sample code for uploading videos with client-side JavaScript.
Given the support for uploading videos with the JavaScript client library and CORS, the migration guide no longer lists browser-based uploading as a feature that may be deprecated in the v3 API.
-
The documentation for the
videos.insert
method has been updated to include the new JavaScript code sample described above. The list of
JavaScript code samples
for the YouTube Data API (v3) has also been updated.
November 11, 2014
This update contains the following changes:
-
The quota cost for a call to the
search.list
method has changed to 100 units.
Important:
In many cases, you can use other API methods to retrieve information at a lower quota cost. For example, consider these two ways of finding videos uploaded to the
GoogleDevelopers
channel.
-
Quota cost: 100 units
Call the
search.list
method and search for
GoogleDevelopers
.
-
Quota cost: 6 units
Call the
channels.list
method to find the right channel ID. Set the
forUsername
parameter to
GoogleDevelopers
and the
part
parameter to
contentDetails
. In the API response, the
contentDetails.relatedPlaylists.uploads
property specifies the playlist ID for the channel's uploaded videos.
Then call the
playlistItems.list
method and set the
playlistId
parameter to the captured ID and the
part
parameter to
snippet
.
October 8, 2014
This update contains the following changes:
-
The
channel
resource contains two new properties:
-
The
status.longUploadsStatus
property indicates whether the channel is eligible to upload videos that are more than 15 minutes long. This property is only returned if the channel owner authorized the API request. Valid property values are:
allowed
– The channel can upload videos more than 15 minutes long.
eligible
– The channel is eligible to upload videos more than 15 minutes long but must first enable the feature.
disallowed
– The channel is not able or eligible to upload videos more than 15 minutes long.
See the property definition for more information about these values. The
YouTube Help Center
also provides more detailed information about this feature.
-
The
invideoPromotion.useSmartTiming
property indicates whether the channel's promotional campaign uses "smart timing." This feature attempts to show promotions at a point in the video when they are more likely to be clicked and less likely to disrupt the viewing experience. This feature also picks up a single promotion to show on each video.
-
The definitions of the
video
resource's
snippet.title
and
snippet.categoryId
properties have both been updated to clarify the way that API handles calls to the
videos.update
method. If you call that method to update the
snippet
part of a
video
resource, you must set a value for both of those properties.
If you try to update the
snippet
part of a
video
resource and do not set a value for both of those properties, the API returns an
invalidRequest
error. That error's description has also been updated.
-
The
video
resource's
contentDetails.contentRating.oflcRating
property, which identifies a video's rating from New Zealand's Office of Film and Literature Classification, now supports two new ratings:
oflcRp13
and
oflcRp16
. These correspond to the
RP13
and
RP16
ratings, respectively.
-
The
channelBanners.insert
method now supports the following error:
Error type
|
Error detail
|
Description
|
badRequest
|
bannerAlbumFull
|
The channel owner's YouTube Channel Art album has too many images. The channel owner should go to
http://photos.google.com
, navigate to the albums page, and remove some from images from that album.
|
September 12, 2014
This update contains the following changes:
August 13, 2014
This update contains the following changes:
August 12, 2014
This update contains the following changes:
-
A new guide, titled
Migrating Your Application to YouTube Data API (v3)
, explains how to use the YouTube Data API (v3) to perform functionality available in the YouTube Data API (v2). The older API was officially deprecated as of March 4, 2014. The guide intends to help you migrate applications still using the v2 API to the most recent API version.
July 8, 2014
This update contains the following changes:
June 18, 2014
This update contains the following changes:
-
The description of each API method has been updated to include the quota cost incurred by a call to that method. Similarly, the definitions of
part
parameters have been updated to specify the quota cost of each part that can be retrieved in an API call. For example, a call to the
subscriptions.insert
method has a quota cost of approximately 50 units. The
subscription
resource also contains three parts (
snippet
,
contentDetails
, and
subscriberSnippet
), and each of those has a cost of two units.
Please remember that quota costs can change without warning.
-
The
video
resource now supports 43 new content rating systems, which identify the ratings that videos received from various national rating agencies. The newly supported rating systems are from
Argentina
,
Austria
,
Belgium
,
Bulgaria
, Chile (
television
), Chile (
film
),
Czech Republic
,
Colombia
,
Denmark
,
Egypt
,
Estonia
,
Finland
,
France
,
Greece
,
Hong Kong
,
Iceland
,
Indonesia
,
Ireland
,
Israel
,
Italy
,
Kenya
,
Latvia
,
Luxembourg
,
Malaysia
,
Maldives
,
Malta
,
Netherlands
,
Nigeria
,
Norway
,
Peru
,
Philippines
,
Portugal
,
Romania
,
Singapore
,
Slovakia
,
South Africa
,
Sweden
,
Switzerland
,
Taiwan
,
Thailand
, and
Venezuela
.
May 28, 2014
This update contains the following changes:
-
The
search.list
method now supports the
location
and
locationRadius
parameters, which let you search for videos associated with a geographic location. A request must specify a value for both parameters to retrieve results based on location, and the API will return an error if a request includes only one of the two parameters.
-
The
location
parameter specifies the latitude/longitude coordinates at the center of the circular geographic area.
-
The
locationRadius
parameter specifies the maximum distance that the location associated with a video can be from the center of the area for the video to still be included in search results.
May 13, 2014
This update contains the following changes:
-
The
channel
resource's
invideoPromotion.items[]
property has been updated to note that you can typically only set one promoted item for your channel. If you try to insert too many promoted items, the API will return a
tooManyPromotedItems
error, which has an HTTP
400
status code.
-
The
channelSection
resource now can contain information about a few new types of featured content. The
channelSection
resource's
snippet.type
property now supports the following values:
postedPlaylists
- playlists that the channel's owner posted to the channel's activity feed
postedVideos
- videos that the channel's owner posted to the channel's activity feed
subscriptions
- channels that the channel owner has subscribed to
-
The
video
resource's new
contentDetails.contentRating.ifcoRating
property identifies the rating that a video received from the Irish Film Classification Office.
-
The definition of the
watermark
resource's
position.cornerPosition
property has been updated to note that the watermark always appear in the upper right corner of the player.
-
The definition of the
q
parameter for the
search.list
method has been updated to note that the query term can use the Boolean NOT (
-
) operator to exclude videos associated with a particular search term. The value can also use the Boolean OR (
|
) operator to find videos associated with one of several search terms.
-
The definition of the
pageInfo.totalResults
property that is returned in an API response to a
search.list
call has been updated to note that the value is an approximation and may not represent an exact value. In addition, the maximum value is 1,000,000. You should not use this value to create pagination links. Instead, use the
nextPageToken
and
prevPageToken
property values to determine whether to show pagination links.
-
The
watermarks.set
and
watermarks.unset
methods have been updated to reflect that the API returns an HTTP
204
response code for successful requests to those methods.
May 2, 2014
This update contains the following changes:
-
The new
i18nLanguage
resource identifies an application language that the YouTube website supports. The application language can also be referred to as a UI language. For the YouTube website, an application language could be automatically selected based on Google Account settings, browser language, or IP location, and a user could also manually select the desired UI language from the YouTube site footer.
The API supports a method to
list
supported application languages. Supported languages can be used as the value of the
hl
parameter when calling API methods like
videoCategories.list
and
guideCategories.list
.
-
The new
i18nRegion
resource identifies a geographic area that a YouTube user can select as the preferred content region. The content region can also be referred to as a content locale. For the YouTube website, a content region could be automatically selected based on heuristics like the YouTube domain or the user's IP location, and a user could also manually select the desired content region from the YouTube site footer.
The API supports a method to
list
supported content regions. Supported region codes can be used as the value of the
regionCode
parameter when calling API methods like
search.list
,
videos.list
,
activities.list
, and
videoCategories.list
.
April 7, 2014
This update contains the following changes:
-
The new
channelSection
resource contains information about a set of videos that a channel has chosen to feature. For example, a section could feature a channel's latest uploads, most popular uploads, or videos from one or more playlists.
The API supports methods to
list
,
insert
,
update
, or
delete
channel sections. You can retrieve a list of channel sections for the authenticated user's channel, by specifying a particular channel ID, or by specifying a list of unique channel section IDs.
The
error documentation
has also been updated to describe the error messages that the API supports specifically for these new methods.
-
The definition of the
video
resource's
fileDetails
object has been updated to explain that that object will only be returned if the video's
processingDetails.fileDetailsAvailability
property has a value of
available
.
Similarly, the definition of the
video
resource's
suggestions
object has been updated to explain that that object will only be returned if the video's
processingDetails.tagSuggestionsAvailability
property or its
processingDetails.editorSuggestionsAvailability
property has a value of
available
.
-
The documentation for the
videos.insert
and
videos.update
methods has been updated to reflect that the
status.publishAt
property can be set when calling those methods.
-
The definition of the
channel
resource's
invideoPromotion
object has been updated to explain that the object can only be retrieved by the channel's owner.
-
The parameter list for the
videos.rate
method has been updated to reflect that that method does not actually support the
onBehalfOfContentOwner
parameter. This was a documentation error as
videos.rate
requests that set this parameter return a
500
error.
March 31, 2014
This update contains the following changes:
March 13, 2014
This update contains the following changes:
-
The API now supports the
contentOwnerDetails
part for
channel
resources. The new part contains channel data that is relevant for YouTube partners linked with the channel, including the ID of the content owner linked to the channel and the date and time when the content owner and channel were linked. Note that this new part is
not subject to the deprecation policy
.
-
The documentation now lists the maximum supported character length for the following properties:
Resource
|
Property
|
Maximum length
|
channel
|
invideoPromotion.items[].customMessage
|
40 characters
|
video
|
snippet.title
|
100 characters
|
video
|
snippet.description
|
5000 bytes
|
video
|
snippet.tags
|
500 characters. Note that the property value is a list and that commas between items in the list count toward the limit.
|
-
The
channel
resource's
brandingSettings.watch.featuredPlaylistId
property has been deprecated. The API will return an error if you attempt to set its value.
-
The following
video
resource properties have been added to the list of values that can be set when
inserting
or
updating
a video:
-
The
error documentation
now specifies the HTTP response code for each error type.
-
The API now supports the following errors:
Error type
|
Error detail
|
Description
|
badRequest (400)
|
invalidCriteria
|
The
channels.list
method returns this error if the request specifies filter parameters that cannot be used in conjunction with each other.
|
badRequest (400)
|
channelTitleUpdateForbidden
|
The
channels.update
method returns this error if you attempt to update a channel's
brandingSettings
part and change the value of the
brandingSettings.channel.title
property. (Note that the API does not return the error if you omit the property.)
|
badRequest (400)
|
invalidRecentlyUploadedBy
|
The
channels.update
method returns this error if the
invideoPromotion.items[].id.recentlyUploadedBy
property specifies an invalid channel ID.
|
badRequest (400)
|
invalidTimingOffset
|
The
channels.update
method returns this error if the
invideoPromotion
part specifies an invalid timing offset.
|
badRequest (400)
|
tooManyPromotedItems
|
The
channels.update
method returns this error if the
invideoPromotion
part specifies more than the allowed number of promoted items.
|
forbidden (403)
|
promotedVideoNotAllowed
|
The
channels.update
method returns this error if the
invideoPromotion.items[].id.videoId
property specifies a video ID that either cannot be found or cannot be used as a promoted item.
|
forbidden (403)
|
websiteLinkNotAllowed
|
The
channels.update
method returns this error if the
invideoPromotion.items[].id.websiteUrl
property specifies a URL that is not allowed.
|
required (400)
|
requiredTimingType
|
The
channels.update
method returns this error if a request does not specify default timing settings for when YouTube should display a promoted item.
|
required (400)
|
requiredTiming
|
The
channels.update
method must specify an
invideoPromotion.items[].timing
object for each promoted item.
|
required (400)
|
requiredWebsiteUrl
|
The
channels.update
method must specify an
invideoPromotion.items[].id.websiteUrl
property for each promoted item.
|
badRequest (400)
|
invalidPublishAt
|
The
videos.insert
method returns this error if the request metadata specifies an invalid scheduled publishing time.
|
March 4, 2014
This update contains the following changes:
December 5, 2013
This update contains the following changes:
-
The
search.list
method's documentation has been updated to properly reflect that you do not need to specify a value for exactly one filter parameter when submitting a search request. Rather, you can set a value for zero filter parameters or for one filter parameter.
-
The definitions for the
search.list
method's parameters have been updated to note that you must set the
type
parameter's value to
video
if you also specify a value for any of the following parameters:
eventType
videoCaption
videoCategoryId
videoDefinition
videoDimension
videoDuration
videoEmbeddable
videoLicense
videoSyndicated
videoType
-
The minimum size of uploaded channel banner images has been reduced to 2048px by 1152px. (Previously, the minimum size was 2120px by 1192px.) In addition, note that the
channel
resource documentation specifies the maximum sizes of all of the banner images served from the API. For example, the maximum size of the
brandingSettings.image.bannerTvImageUrl
image for television applications is 2120px by 1192px, but the actual image may be 2048px by 1152px. The
YouTube Help Center
provides additional guidance for optimizing channel art for display on different types of devices.
-
Several
channel
resource property definitions have been updated to reflect the following information:
- The
brandingSettings.channel.description
property's value has a maximum length of 1000 characters.
- The
brandingSettings.channel.featuredChannelsTitle
property has a maximum length of 30 characters.
- The
brandingSettings.channel.featuredChannelsUrls[]
property can now list up to 100 channels.
- The
brandingSettings.channel.unsubscribedTrailer
property value, if set, must specify the YouTube video ID of a public or unlisted video that is owned by the channel owner.
-
The
channels.update
method now supports updates to the
invideoPromotion.items[].promotedByContentOwner
property. That property indicates whether the content owner's name will be shown when displaying the promotion. It can only be set if the API request that sets the property value is being made on the content owner's behalf using the
onBehalfOfContentOwner
parameter.
-
The
playlistItems.list
and
playlistItems.insert
methods now support the
onBehalfOfContentOwner
parameter, which is already supported for several other methods.
-
The
contentDetails.contentRating.acbRating
property can now specify a rating from either the Australian Classification Board (ACB) for movies or from the Australian Communications and Media Authority (ACMA) for children's television programming.
-
The new
contentDetails.contentRating.catvRating
and
contentDetails.contentRating.catvfrRating
properties identify the ratings that a video received under the Canadian TV Classification System and the French-language Régie du cinema rating system, which is used in Québec, respectively.
-
The
videoCategory
resource's new
snippet.assignable
property indicates whether updated videos or newly uploaded videos can be associated with that video category.
-
Code samples have been added for the following methods:
October 24, 2013
This update contains the following changes:
-
The API includes two additional features designed to help find and feature live broadcast content:
The new
snippet.liveBroadcastContent
property in search results indicates whether a video or channel resource has live broadcast content. Valid property values are
upcoming
,
active
, and
none
.
-
The
video
resource's new
snippet.liveBroadcastContent
property indicates whether the video is an upcoming or active live broadcast. The list below explains the property's possible values:
upcoming
? The video is a live broadcast that has not yet started.
active
? The video is an ongoing live broadcast.
none
? The video is not an upcoming or active live broadcast. This will be the property value for completed broadcasts that are still viewable on YouTube.
-
The
video
resource's new
liveStreamingDetails
property is an object that contains metadata about a live video broadcast. To retrieve this metadata, include
liveStreamingDetails
in the
part
parameter value's list of resource parts. The metadata includes the following new properties:
To retrieve this metadata, include
liveStreamingDetails
in the
part
parameter value when calling the
videos.list
,
videos.insert
, or
videos.update
method.
Note that two other features for identifying live broadcast content were released on October 1, 2013 ? the
search.list
method's
eventType
parameter and the search result's
snippet.liveBroadcastContent
property.
-
The
videos.insert
method now supports the
notifySubscribers
parameter, which indicates whether YouTube should send a notification about the new video to users who subscribe to the video's channel. The parameter's default value is
True
, which indicates that subscribers will be notified of newly uploaded videos. However, a channel owner who is uploading many videos might prefer to set the value to
False
to avoid sending a notification about each new video to the channel's subscribers.
-
The list of properties that can be modified when calling the
channels.update
method has been updated to include the
invideoPromotion.items[].customMessage
and
invideoPromotion.items[].websiteUrl
properties. In addition, the list has been modified to identify the
brandingSettings
properties that are modifiable. These
brandingSettings
properties were already modifiable, so the documentation change does not reflect a change to the API's existing functionality.
-
The
playlists.insert
,
playlists.update
, and
playlists.delete
methods now support the
onBehalfOfContentOwner
parameter, which is already supported for several other methods.
-
The
playlists.insert
method now supports the
onBehalfOfContentOwnerChannel
parameter, which is already supported for several other methods.
-
The
video
resource's
contentDetails.contentRating.tvpgRating
property now supports a value of
pg14
, which corresponds to a
TV-14
rating.
-
The definition of the
snippet.liveBroadcastContent
property, which is part of search results, has been corrected to reflect that
live
is a valid property value, but
active
is not a valid property value.
-
The
video
resource's
contentDetails.contentRating.mibacRating
property now supports two additional ratings:
mibacVap
(VAP) ? Children should be accompanied by an adult.
mibacVm6
(V.M.6) ? Restricted to 6 and over.
mibacVm12
(V.M.12) ? Restricted to 12 and over.
-
The
channel
resource's new
invideoPromotion.items[].promotedByContentOwner
property indicates whether the content owner's name will be shown when displaying the promotion. This field can only be set if the API request that sets the value is being made on the content owner's behalf. See the
onBehalfOfContentOwner
parameter for more information.
October 1, 2013
This update contains the following changes:
-
The
channel
resource's new
auditDetails
object contains channel data that a multichannel network (MCN) would evaluate while determining whether to accept or reject a particular channel. Note that any API request that retrieves this resource part must provide an authorization token that contains the
https://www.googleapis.com/auth/youtubepartner-channel-audit
scope. In addition, any token that uses that scope must be revoked when the MCN decides to accept or reject the channel or within two weeks of the date that the token was issued.
-
The
channel
resource's
invideoPromotion.items[].id.type
property now supports a value of
recentUpload
, which indicates that the promoted item is the most recently uploaded video from a specified channel.
By default, the channel is the same as the one for which the in-video promotion data is set. However, you can promote the most recently uploaded video from another channel by setting the value of the new
invideoPromotion.items[].id.recentlyUploadedBy
property to the channel ID for that channel.
-
The
channel
resource contains three new properties –
brandingSettings.image.bannerTvLowImageUrl
,
brandingSettings.image.bannerTvMediumImageUrl
,
brandingSettings.image.bannerTvHighImageUrl
– that specify the URLs for the banner images that display on channel pages in television applications.
-
The new
snippet.liveBroadcastContent
property in search results indicates whether a video or channel resource has live broadcast content. Valid property values are
upcoming
,
active
, and
none
.
- For a
video
resource, a value of
upcoming
indicates that the video is a live broadcast that has not yet started, while a value of
active
indicates that the video is an ongoing live broadcast.
- For a
channel
resource, a value of
upcoming
indicates that the channel has a scheduled broadcast that has not yet started, while a value of
acive
indicates that the channel has an ongoing live broadcast.
-
In the
watermark
resource, the
targetChannelId
property has changed from an object to a string. Instead of containing a child property that specifies the YouTube channel ID of the channel that the watermark image links to, the
targetChannelId
property now specifies that value itself. Accordingly, the resource's
targetChannelId.value
property has been removed.
-
The
thumbnails.set
method now supports the
onBehalfOfContentOwner
parameter, which is already supported for several other methods.
-
The
search.list
method now supports the
eventType
parameter, which restricts a search to only return either active, upcoming, or completed broadcast events.
-
The new
contentDetails.contentRating.mibacRating
property identifies the rating that a video received from Italy's Ministero dei Beni e delle Attivita Culturali e del Turismo.
-
The API now supports the following errors:
Error type
|
Error detail
|
Description
|
badRequest
|
invalidImage
|
The
thumbnails.set
method returns this error if the provided image content is invalid.
|
forbidden
|
videoRatingDisabled
|
The
videos.rate
method returns this error if the owner of the video that is being rated has disabled ratings for that video.
|
August 27, 2013
This update contains the following changes:
-
The new
watermark
resource identifies an image that displays during playbacks of a specified channel's videos. You can also specify a target channel to which the image will link as well as timing details that determine when the watermark appears during video playbacks and the length of time it is visible.
The
watermarks.set
method uploads and sets a channel's watermark image. The
watermarks.unset
method deletes a channel's watermark image.
The error documentation describes the error messages that the API supports specifically for the
watermarks.set
and
watermarks.unset
methods.
-
The
channel
resource's new
statistics.hiddenSubscriberCount
property contains a boolean value that indicates whether the channel's number of subscribers is hidden. As such, the property's value is
false
if the channel's subscriber count is publicly visible.
-
The
playlists.list
method now supports the
onBehalfOfContentOwner
and
onBehalfOfContentOwnerChannel
parameters. Both parameters are already supported for several other methods.
-
The
videos.list
method now supports the
regionCode
parameter, which identifies the content region for which a chart should be retrieved. This parameter can only be used in conjunction with the
chart
parameter. The parameter value is an ISO 3166-1 alpha-2 country code.
-
The
error documentation
describes the following new common request error, which could occur for multiple API methods:
Error type
|
Error detail
|
Description
|
forbidden
|
insufficientPermissions
|
The scopes associated with the OAuth 2.0 token provided for the request are insufficient for accessing the requested data.
|
August 15, 2013
This update contains the following changes:
-
The
channel
resource's
invideoPromotion
object has the following new and updated properties:
-
The API now supports the ability to specify a website as a promoted item. To do so, set the
invideoPromotion.items[].id.type
property value to
website
and use the new
invideoPromotion.items[].id.websiteUrl
property to specify the URL. Also use the new
invideoPromotion.items[].customMessage
property to define a custom message to display for the promotion.
Links can be to associated websites, merchant sites, or social networking sites. See the YouTube Help Center instructions for
associated websites
and
merchant sites
for more information about enabling links for your content.
By adding promotional links, you agree that those links will not be used to redirect traffic to unauthorized sites and that those links will comply with YouTube's
AdWords policies
,
YouTube ad policies
,
YouTube Community Guidelines
and
YouTube Terms of Service
.
-
The properties related to the timing settings for displaying promoted items during video playback have been restructured:
-
The
invideoPromotion.timing
object has been moved to
invideoPromotion.items[].timing
. This object now enables you to customize the timing data for each promoted item in the
invideoPromotion.items[]
list.
-
The new
invideoPromotion.defaultTiming
object specifies default timing settings for your promotion. Those settings define when a promoted item will display during playback of one of your channel's videos. You can override the default timing for any given promoted item using the
invideoPromotion.items[].timing
object.
-
The new
invideoPromotion.items[].timing.durationMs
property specifies the amount of time, in milliseconds, that the promotion should display. The
invideoPromotion.defaultTiming
object also contains a
durationMs
field that specifies the default amount of time that the promoted item will display.
-
The
invideoPromotion.items[].type
and
invideoPromotion.items[].videoId
properties both have been moved into the
invideoPromotion.items[].id
object.
-
The
subscriptions.list
method now supports the
onBehalfOfContentOwner
and
onBehalfOfContentOwnerChannel
parameters. Both parameters are already supported for several other methods.
-
In the API response to a
thumbnails.set
request, the
kind
property value has changed from
youtube#thumbnailListResponse
to
youtube#thumbnailSetResponse
.
-
Code samples have been added for the following methods:
Note that the Python example for the
playlistItems.insert
method was also removed since the functionality it demonstrated is now handled by the
videos.rate
method.
-
The
error documentation
describes the following new request context error, which could occur for any API method that supports the
mine
request parameter:
Error type
|
Error detail
|
Description
|
badRequest
|
invalidMine
|
The
mine
parameter cannot be used in requests where the authenticated user is a YouTube partner. You should either remove the
mine
parameter, authenticate as a YouTube user by removing the
onBehalfOfContentOwner
parameter, or act as one of the partner's channels by providing the
onBehalfOfContentOwnerChannel
parameter if available for the called method.
|
August 8, 2013
This update contains the following changes:
July 30, 2013
This update contains the following changes:
-
In a
channelBanner
resource, the value of the
kind
property's value has changed from
youtube#channelBannerInsertResponse
to
youtube#channelBannerResource
. This resource is returned in response to a
channelBanners.insert
request.
-
The
channel
resource's new
brandingSettings.channel.profileColor
property specifies a prominent color that complements the channel's content. The property value is a pound sign (
#
) followed by a six-character hexadecimal string, such as
#2793e6
.
-
The API now supports the ability to specify whether a subscription is for all of a channel's activities or just for new uploads. The
subscription
resource's new
contentDetails.activityType
property identifies the types of activities that the subscriber will be notified about. Valid property values are
all
and
uploads
.
-
The
videos.list
method supports new parameters for retrieving a chart of the most popular videos on YouTube:
- The
chart
parameter identifies the chart that you want to retrieve. Currently, the only supported value is
mostPopular
. Note that the
chart
parameter is a filter parameter, which means it cannot be used in the same request as other filter parameters (
id
and
myRating
).
- The
videoCategoryId
parameter identifies the
video category
for which the chart should be retrieved. This parameter can only be used in conjunction with the
chart
parameter. By default, charts are not restricted to a particular category.
-
The
video
resource's new
topicDetails.relevantTopicIds[]
property provides a list of Freebase topic IDs that are relevant to the video or its content. The subjects of these topics may be mentioned in or appear in the video.
-
The
video
resource's
recordingDetails.location.elevation
property has been renamed to
recordingDetails.location.altitude
, and its
fileDetails.recordingLocation.location.elevation
property has been renamed to
fileDetails.recordingLocation.location.altitude
.
-
The
video
resource's
contentDetails.contentRating
object specifies the ratings that a video received under various rating schemes, including MPAA ratings, TVPG ratings, and so forth. For each rating system, the API now supports a rating value that indicates that the video has not been rated. Note that for
MPAA ratings
, an "unrated" rating is frequently used to identify uncut versions of films for which the cut version of the film did receive an official rating.
-
The
video
resource's new
contentDetails.contentRating.ytRating
property identifies age-restricted content. The property value will be
ytAgeRestricted
if YouTube has identified the video as containing content that is inappropriate for users less than 18 years old. If the property is absent or if the property value is empty, then the content has not been identified as age-restricted.
-
The
channels.list
method's
mySubscribers
parameter has been deprecated. Use the
subscriptions.list
method and its
mySubscribers
parameter to retrieve a list of subscribers to the authenticated user's channel.
-
The
channelBanners.insert
,
channels.update
,
videos.getRating
, and
videos.rate
methods all now support the
onBehalfOfContentOwner
parameter. That parameter indicates that the authenticated user is acting on behalf of the content owner specified in the parameter value.
-
The
channels.update
method's documentation has been updated to reflect the fact that that method can be used to update the
channel
resource's
brandingSettings
object and its child properties. The documentation also now lists the updated list of properties that you can set for the
channel
resource's
invideoPromotion
object.
-
The
error documentation
describes the following new errors:
Error type
|
Error detail
|
Description
|
forbidden
|
accountDelegationForbidden
|
This error is not specific to a particular API method. It indicates that the authenticated user is not authorized to act on behalf of the specified Google account.
|
forbidden
|
authenticatedUserAccountClosed
|
This error is not specific to a particular API method. It indicates that the authenticated user's YouTube account is closed. If the user is acting on behalf of another Google Account, then this error would indicate that that other account is closed.
|
forbidden
|
authenticatedUserAccountSuspended
|
This error is not specific to a particular API method. It indicates that the authenticated user's YouTube account is suspended. If the user is acting on behalf of another Google Account, then this error would indicate that that other account is suspended.
|
forbidden
|
authenticatedUserNotChannel
|
This error is not specific to a particular API method. It indicates that the API server cannot identify the channel associated with the API request. If the request is authorized and uses the
onBehalfOfContentOwner
parameter, you should also set the
onBehalfOfContentOwnerChannel
parameter.
|
forbidden
|
cmsUserAccountNotFound
|
This error is not specific to a particular API method. The CMS user is not allowed to act on behalf of the specified content owner.
|
notFound
|
contentOwnerAccountNotFound
|
This error is not specific to a particular API method. The specified content owner account was not found.
|
badRequest
|
invalidPart
|
This error is not specific to a particular API method. The request's
part
parameter specifies parts that cannot be written at the same time.
|
badRequest
|
videoChartNotFound
|
The
videos.list
method returns this error when the request specifies an unsupported or unavailable video chart.
|
notFound
|
videoNotFound
|
The
videos.update
method returns this error to indicate that the video you are trying to update cannot be found. Check the value of the
id
property in the request body to ensure it is correct.
|
June 10, 2013
This update contains the following changes:
-
The
channels.list
method's new
forUsername
parameter enables you to retrieve information about a channel by specifying its YouTube username.
-
The
activities.list
method now supports the
regionCode
parameter, which instructs the API to return results relevant to the specified country. YouTube uses this value when the authorized user's previous activity on YouTube does not provide enough information to generate the activity feed.
-
Playlist resources now contain the
snippet.tags
property. The property will be only be returned to authorized users who are retrieving data about their own playlists. Authorized users can also set playlist tags when calling either the
playlists.insert
or
playlists.update
methods.
-
The
onBehalfOfContentOwner
parameter, which was previously supported for the
channels.list
and
search.list
methods, is now also supported for the
videos.insert
,
videos.update
, and
videos.delete
methods. Note that when this parameter is used in a call to the
videos.insert
method, the request must also specify a value for the new
onBehalfOfContentOwnerChannel
parameter, which identifies the channel to which the video will be added. The channel must be linked to the content owner that the
onBehalfOfContentOwner
parameter specifies.
The 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. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
This parameter is intended for content partners that own and manage many different YouTube channels. The parameter enables those partners to authenticate once and get access to all of their video and channel data, without having to provide authentication credentials for each individual channel.
Specifically in regard to this release, the parameter now enables a content partner to insert, update, or delete videos in any of the YouTube channels that the partner owns.
-
The
error documentation
describes the following new errors:
Error type
|
Error detail
|
Description
|
forbidden
|
insufficientCapabilities
|
This error is not specific to a particular API method. It indicates that the CMS user calling the API does not have sufficient permissions to perform the requested operation. This error is associated with the use of the
onBehalfOfContentOwner
parameter, which is supported for several API methods.
|
unauthorized
|
authorizationRequired
|
The
activities.list
method returns this error when the request uses the
home
parameter but is not properly authorized.
|
-
In the
channels
resource, the
invideoPromotion.channelId
property has been removed because the channel ID is already specified using the resource's
id
property.
-
The new
Working with Channel IDs
guide explains how the API uses channel IDs. The guide may be especially useful for developers migrating from the previous version of the API and who have applications that either request content for the
default
user or that rely on the notion that every YouTube channel has a unique username, which is no longer the case.
May 22, 2013
This update contains the following changes:
May 14, 2013
This update contains the following changes:
-
Standalone pages now list code samples for
Java
,
.NET
,
PHP
, and
Ruby
.
-
The page that lists
Python
code samples now includes examples for adding a subscription, creating a playlist, and updating a video.
May 10, 2013
This update contains the following changes:
May 8, 2013
This update contains the following changes:
-
Channel resources now support the
inVideoPromotion
object, which encapsulates information about a promotional campaign associated with the channel. A channel can use an in-video promotional campaign to display thumbnail images for a promoted video within the video player during playbacks of the channel's videos.
You can retrieve this data by including
invideoPromotion
in the
part
parameter value in a
channels.list
request.
-
The new
channels.update
method can be used to update a channel's in-video promotional campaign data. Note that the method only supports updates to the
invideoPromotion
part of the
channel
resource and does not yet support updates to other parts of that resource.
May 2, 2013
This update contains the following changes:
-
Channel resources now support the
status.isLinked
property, which indicates whether the channel data identifies a user that is already linked to either a YouTube username or a Google+ account. A user that has one of these links already has a public YouTube identity, which is a prerequisite for several actions, such as uploading videos.
-
Subscription resources now support the
subscriberSnippet
part. That object encapsulates contains snippet data for the subscriber's channel.
-
The API now supports the
videos.getRating
method, which retrieves the ratings that the authenticated user gave to a list of one or more videos.
-
The
videos.list
method's new
myRating
parameter enables you to retrieve a list of videos that the authenticated user rated with a
like
or
dislike
rating.
The
myRating
parameter and the
id
parameter are both now considered filter parameters, which means that an API request must specify exactly one of the parameters. (Previously, the
id
parameter was a required parameter for this method.)
The method returns a
forbidden
error for requests that attempt to retrieve video rating information but are not properly authorized to do so.
-
With the introduction of the
myRating
parameter, the
videos.list
method has also been updated to support pagination. Note, however, that paging parameters are only supported for requests using the
myRating
parameter. (Paging parameters and information are not supported for requests that use the
id
parameter.)
-
The
maxResults
parameter specifies the maximum number of videos that the API can return in the result set, and the
pageToken
parameter identifies a specific page in the result set that you want to retrieve.
-
The
youtube#videoListResponse
resource, which is returned in response to a
videos.list
request, now contains the
pageInfo
object, which contains details like the total number of results and the number of results included in the current result set. The
youtube#videoListResponse
resource can also include
nextPageToken
and
prevPageToken
properties, each of which provides a token that could be used to retrieve a specific page in the result set.
-
The
videos.insert
method supports the following new parameters:
autoLevels
– Set this parameter value to
true
to instruct YouTube to automatically enhance the video's lighting and color.
stabilize
– Set this parameter value to
true
to instruct YouTube to adjust the video by removing shakiness resulting from camera motions.
-
The
channelTitle
property has been added to the
snippet
for the following resources:
playlistItem
– The property specifies the name of the channel that added the playlist item.
playlist
– The property specifies the name of the channel that created the playlist.
subscription
– The property specifies the name of the channel that is subscribed to.
-
Code samples have been added for the following methods:
-
The
subscriptions.list
method's new
mySubscribers
parameter enables you to retrieve a list of the currently authenticated user's subscribers. This parameter can only be used in a properly authorized request.
Note:
This functionality is intended to replace the
mySubscribers
parameter currently supported for the
channels.list
method. That parameter will be deprecated.
-
In a
video
resource, the property value
unspecified
is no longer a possible value for any of the following properties:
-
API requests that contain an unexpected parameter now return a
badRequest
error, and the reported reason for the error is
unexpectedParameter
.
-
The error that the
playlistItems.insert
method returns when the playlist already contains the maximum number of allowed items has been updated. The error is now reported as a
forbidden
error, and the error reason is
playlistContainsMaximumNumberOfVideos
.
April 19, 2013
This update contains the following changes:
-
The new
videos.rate
method lets a user set a
like
or
dislike
rating on a video or remove a rating from a video.
The
error documentation
has also been updated to list the errors that the API might return in response to a
videos.rate
method call.
-
Thumbnail images are now identified in the API documentation as a
separate resource
, and the new
thumbnails.set
method enables you to upload a custom video thumbnail to YouTube and set it for a video.
The
error documentation
has also been updated to list the errors that the API might return in response to a
thumbnails.set
method call.
Note that this change does not really affect existing resources that return thumbnail images. Thumbnail images are returned in those resources in the same way that they were previously, though the documentation does now list the names of the different thumbnail sizes that the API might return.
-
The
channel
resource's new
brandingSettings
part identifies settings, text, and images for the channel's channel page and video watch pages.
-
The
playlistItem
resource contains the following new properties:
-
The
video
resource contains the following new properties:
-
The
status.publicStatsViewable
property indicates whether extended video statistics on the watch page are publicly viewable. By default, those statistics are viewable, and statistics like a video's viewcount and ratings will still be publicly visible even if this property's value is set to
false
. You can set this property's value when calling the
videos.insert
or
videos.update
method.
-
The
contentDetails.contentRating
object encapsulates ratings that the video received under various rating schemes. The list below identifies the supported rating systems and provides a link to the property associated with each rating system. The property definitions identify the supported rating values for each system.
-
The
playlistItems.update
method's documentation has been updated to reflect the fact that the
snippet.resourceId
property must be specified in the resource sent as the request body.
-
The
search.list
method now supports the following functionality:
-
The new
forMine
parameter restricts a search to only retrieve the authenticated user's videos.
-
The
order
parameter now supports the ability to sort results alphabetically by title (
order=title
) or by video count in descending order (
order=videoCount
).
-
The new
safeSearch
parameter indicates whether search results should include restricted content.
-
The
videos.insert
method supports several new errors, which are listed in the table below:
Error type
|
Error detail
|
Description
|
badRequest
|
invalidCategoryId
|
The
snippet.categoryId
property specifies an invalid category ID. Use the
videoCategories.list
method to retrieve supported categories.
|
badRequest
|
invalidRecordingDetails
|
The
metadata specifies invalid recording details.
|
badRequest
|
invalidVideoGameRating
|
The request metadata specifies an invalid video game rating.
|
badRequest
|
invalidVideoMetadata
|
The request metadata is invalid.
|
-
The
onBehalfOfContentOwner
parameter has been removed from the list of supported parameters for the
videos.update
and
videos.delete
methods.
March 12, 2013
This update contains the following changes:
-
The
channelTitle
property has been added to the
snippet
for the following resources:
activity
– The property specifies the name of the channel responsible for the activity.
search
– The property specifies the name of the channel associated with the resource that the search result identifies.
video
– The property specifies the name of the channel that uploaded the video.
-
The
search.list
method supports the following new parameters:
-
The
channelType
parameter lets you restrict a search for channels to retrieve all channels or to retrieve only shows.
-
The
videoType
parameter lets you restrict a search for videos to retrieve all videos or to retrieve only movies or only episodes of shows.
-
The definition of the
video
resource's
recordingDetails
part has been updated to note that the object will only be returned for a video if the video's geolocation data or recording time has been set.
-
The
playlistItems.update
method now returns an
invalidSnippet
error, which is returned if the API request does not specify a valid snippet.
-
Several API methods support new parameters that are intended exclusively for YouTube content partners. YouTube content partners include movie and television studios, record labels, and other content creators that make their content available on YouTube.
-
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. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
This parameter is intended for content partners that own and manage many different YouTube channels. The parameter enables those partners to authenticate once and get access to all of their video and channel data, without having to provide authentication credentials for each individual channel.
The
channels.list
,
search.list
,
videos.delete
,
videos.list
, and
videos.update
methods all support this parameter.
-
The
managedByMe
parameter, which is supported by the
channels.list
method, instructs the API to return all channels owned by the content owner that the
onBehalfOfContentOwner
parameter specifies.
-
The
forContentOwner
parameter, which is supported by the
search.list
method, instructs the API to restrict search results to only include resources that are owned by the content owner that the
onBehalfOfContentOwner
parameter specifies.
February 25, 2013
This update contains the following changes:
-
The API supports several new parts and properties for
video
resources:
-
The new
fileDetails
,
processingDetails
, and
suggestions
parts provide information to video owners about their uploaded videos. This data is very useful in applications that enable video uploads and includes the following:
- processing status and progress
- errors or other issues encountered while processing a video
- availability of thumbnail images
- suggestions for improving video or metadata quality
- details about the original file uploaded to YouTube
All of these parts can only be retrieved by the video owner. The list below briefly describes the new parts, and the
video
resource documentation defines all of the properties that each part contains.
-
The
fileDetails
object contains information about the video file that was uploaded to YouTube, including the file's resolution, duration, audio and video codecs, stream bitrates, and more.
-
The
processingProgress
object contains information about YouTube's progress in processing the uploaded video file. The object's properties identify the current processing status and estimate the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video.
This object is designed to be polled so that the video uploader can track the progress that YouTube has made in processing the uploaded video file.
-
The
suggestions
object contains suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video.
-
The
contentDetails
part contains four new properties. These properties can be retrieved with unauthenticated requests.
dimension
– Indicates whether the video is available in 2D or 3D.
definition
– Indicates whether the video is available in standard or high definition.
caption
– Indicates whether captions are available for the video.
licensedContent
– Indicates whether the video contains content that has been claimed by a YouTube content partner.
-
The
status
part contains two new properties. Video owners can set values for both properties when inserting or updating a video. These properties can also be retrieved with unauthenticated requests.
embeddable
– Indicates whether the video can be embedded on another website.
license
– Specifies the video's license. Valid values are
creativeCommon
and
youtube
.
-
The definition of the
part
parameter has been updated for the
videos.list
,
videos.insert
, and
videos.update
methods to list the newly added parts described above as well as the
recordingDetails
part, which had been inadvertently omitted.
-
The
channel
resource's new
contentDetails.googlePlusUserId
property specifies the Google+ profile ID associated with the channel. This value can be used to generate a link to the Google+ profile.
-
Each thumbnail image object now specifies the image's width and height. Thumbnail images are currently returned in
activity
,
channel
,
playlist
,
playlistItem
,
search result
,
subscription
, and
video
resources.
-
The
playlistItems.list
now supports the
videoId
parameter, which can be used in conjunction with the
playlistId
parameter to only retrieve the playlist item that represents the specified video.
The API returns a
notFound
error if the video that the parameter identifies cannot be found in the playlist.
-
The
error documentation
describes a new
forbidden
error, which indicates that a request is not properly authorized for the requested action.
-
The
channel
resource's
snippet.channelId
property has been removed. The resource's
id
property provides the same value.
January 30, 2013
This update contains the following changes:
January 16, 2013
This update contains the following changes:
-
Code samples are now available for the methods and languages shown in the list below:
-
An
activity
resource can now report a
channelItem
action, which occurs when YouTube adds a video to an
automatically generated YouTube channel
. (YouTube algorithmically identifies topics that have a significant presence on the YouTube website and automatically generates channels for those topics.)
-
The following
search.list
parameters have been updated:
- The
q
parameter is no longer designated as a filter, which means ....
- The
relatedToVideo
parameter has been renamed
relatedToVideoId
.
- The
published
parameter has been replaced with two new parameters,
publishedAfter
and
publishedBefore
, which are described below.
-
The
search.list
method supports the following new parameters:
Parameter name
|
Value
|
Description
|
channelId
|
string
|
Return resources created by the specified channel.
|
publishedAfter
|
datetime
|
Return resources created after the specified time.
|
publishedBefore
|
datetime
|
Return resources created before the specified time.
|
regionCode
|
string
|
Return resources for the specified country.
|
videoCategoryId
|
string
|
Filter video search results to only include videos associated with the specified
video category
.
|
videoEmbeddable
|
string
|
Filter video search results to only include videos that can be played in an embedded player on a web page. Set the parameter value to
true
to only retrieve embeddable videos.
|
videoSyndicated
|
string
|
Filter video search results to only include videos that can be played outside of YouTube.com. Set the parameter value to
true
to only retrieve syndicated videos.
|
-
Several API resources support new properties. The table below identifies the resources and their new properties:
Resource
|
Property name
|
Value
|
Description
|
activity
|
contentDetails.playlistItem.playlistItemId
|
string
|
The playlist item ID that YouTube assigned to uniquely identify the item in the playlist.
|
activity
|
contentDetails.channelItem
|
object
|
An object that contains information about a resource that was added to a channel. This property is only present if the
snippet.type
is
channelItem
.
|
activity
|
contentDetails.channelItem.resourceId
|
object
|
An object that identifies the resource that was added to the channel. Like other
resourceId
properties, it contains a
kind
property that specifies the resource type, such as video or playlist. It also contains exactly one of several properties –
videoId
,
playlistId
, etc. – that specifies the ID that uniquely identifies that resource.
|
channel
|
status
|
object
|
This object encapsulates information about the channel's privacy status.
|
channel
|
status.privacyStatus
|
string
|
The channel's privacy status. Valid values are
private
and
public
.
|
playlist
|
contentDetails
|
object
|
This object contains metadata about the playlist's content.
|
playlist
|
contentDetails.itemCount
|
unsigned integer
|
The number of videos in the playlist.
|
playlist
|
player
|
object
|
This object contains information that you would use to play the playlist in an embedded player.
|
playlist
|
player.embedHtml
|
string
|
An
<iframe>
tag that embeds a video player that plays the playlist.
|
video
|
recordingDetails
|
object
|
This object encapsulates information that identifies or describes the place and time that the video was recorded.
|
video
|
recordingDetails.location
|
object
|
This object contains geolocation information associated with the video.
|
video
|
recordingDetails.location.latitude
|
double
|
Latitude in degrees.
|
video
|
recordingDetails.location.longitude
|
double
|
Longitude in degrees.
|
video
|
recordingDetails.location.elevation
|
double
|
Altitude above the Earth, in meters.
|
video
|
recordingDetails.locationDescription
|
string
|
A text description of the location where the video was recorded.
|
video
|
recordingDetails.recordingDate
|
datetime
|
The date and time when the video was recorded. The value is specified in
ISO 8601
(
YYYY-MM-DDThh:mm:ss.sZ
) format.
|
-
The documentation for several API methods now identifies properties that must be specified in the request body or that are updated based on values in the request body. The table below lists those methods as well as the required or modifiable properties.
Note:
Documentation for other methods may already list required and modifiable properties.
-
The API no longer reports a
playlistAlreadyExists
error if you try to
create
or
update
a playlist that would have the same title as a playlist that already exists in the same channel.
-
Several API methods support new error types. The table below identifies the method and the newly supported errors:
Method
|
Error type
|
Error detail
|
Description
|
guideCategories.list
|
notFound
|
notFound
|
The guide category identified by the
id
parameter cannot be found. Use the
guideCategories.list
method to retrieve a list of valid values.
|
playlistItems.delete
|
forbidden
|
playlistItemsNotAccessible
|
The request is not properly authorized to delete the specified playlist item.
|
videoCategories.list
|
notFound
|
videoCategoryNotFound
|
The video category identified by the
id
parameter cannot be found. Use the
videoCategories.list
method to retrieve a list of valid values.
|