AI-generated Key Takeaways
- 
          The YouTube Content ID API is exclusively for YouTube content partners, not for general developers or users. 
- 
          Significant updates to the API have been made, such as the videoAdvertisingOption.adFormats[]field now solely supportingthird_party, and the deprecation of various advertising option fields, all reflecting in the latest update as of November 10, 2023.
- 
          Multiple resource and method updates have been implemented, including enhancements to claim searching, asset data retrieval, metadata handling, and ownership management. 
- 
          The API now uses 22-character IDs for content owners instead of Partner Codes and has introduced asset labels for better asset categorization. 
- 
          The API documentation provides comprehensive details on error handling, with numerous new error types added across various methods to help with troubleshooting. 
Note: The YouTube Content ID API is intended for use by YouTube content partners and is not accessible to all developers or to all YouTube users. If you do not see the YouTube Content ID API as one of the services listed in the Google API Console, see the YouTube Help Center to learn more about the YouTube Partner Program.
This page lists YouTube Content ID API changes and documentation updates.
March 26, 2025
Starting March 31, 2025, YouTube will change how views for Shorts are counted. In the past, for Shorts, a view was counted after a Short was played for a certain number of seconds. Now, views will count the number of times your Short starts to play or replay, with no minimum watch time requirement. Learn more
By June 30, 2025, the Content ID API will be updated in the following ways as per this change:
- claimSearch.list.sortwill have its sort orders updated:- DAILY_ENGAGED_VIEWSwill be added for daily view counts based on the previous view counting methodology.
- LIFETIME_ENGAGED_VIEWSwill be added to lifetime view counts based on the previous view counting methodology.
 
- assetSearch.list.sortwill have its sort orders updated:- DAILY_ENGAGED_VIEWSwill be added for daily view counts based on the previous view counting methodology.
 
By September 30, 2025, the Content ID API will be updated in the following ways as per this change:
- assetSearch.list.sortsort order- VIEWSwill be deprecated.
- claimSearch.list.sortsort order- VIEW_COUNTwill be deprecated.
- claimSearch.claimSnippet.videoViewswill be updated to reflect the updated view count methodology for views for Shorts.
- claimSearch.claimSnippet.engagedViewswill be added for view counts based on the previous view counting methodology
January 14, 2025
    The videoAdvertisingOption resource's
    autoGeneratedBreaks[]
    field has been updated as now we allow  ad_breaks and
    autoGeneratedBreaks to be provided at the same time. If
    autoGeneratedBreaks is set to true on a video with adBreaks defined,
    our systems will identify places to show ads in addition to your manually placed ad slots. See
    support article for more
    details.
  
November 10, 2023
    The videoAdvertisingOption resource's adFormats[] field has been updated so that third_party is the only valid value for that field. The following ad formats are no longer supported: instream_trueview, instream_standard, display, preroll, postroll. See support article for more details.
  
June 1, 2023
Note: This is a deprecation announcement.
This update includes the following changes:
- 
    Updates to existing resources and methods - 
        The videoAdvertisingOptionresource'sbreakPosition[]field has been marked as deprecated and will be removed in 2024.
 ThevideoAdvertisingOptions.updateandvideoAdvertisingOptions.patchmethods already ignore the field.
- The videoAdvertisingOptionresource's deprecatedadBreaks[].slot[]field has been removed.
- The assetresource's deprecatedcategoryandshowCustomIdfields have been removed.
- The new claimresource'stimeStatusLastModifiedfield reports the time a claim was last modified.
- The new claimSearch.listmethod'sisVideoShortsEligibleparameter can be used to filter claimed videos by their YouTube Shorts eligibility.
 
- 
        The 
- 
    New resources and methods - 
        The API now supports listing YouTube Music resources:
        - musicReleaseresources can be listed with the- musicReleases.listmethod.
- musicTrackresources can be listed with the- musicTracks.listmethod.
- musicChangeRequestresources can be listed with the- musicChangeRequests.listmethod.
 
 
- 
        The API now supports listing YouTube Music resources:
        
December 20, 2022
The definition of the assetSearch.list method's
ownershipRestriction
query parameter has been updated to clarify that if that parameter's value is
none,
the metadataSearchFields
parameter value must also use at least one ID filter.
This documentation change does not reflect a change in API behavior.
November 9, 2022
The documentation for the
  asset.get and
  asset.list methods has been
  updated to clarify how multiple values are supported for:
September 28, 2022
Licensability information has been added to the asset resource.
July 18, 2022
The documentation for the claimSearch.list method's
  inactiveReasons
  has been updated to reflect improvements for consistency with YouTube Studio:
- Studio had previously removed support for Audio SwapandSong Erase. The corresponding API values,audio_removedandsong_erased, were silently ignored and have now been undocumented.
- channel_whitelistedhas been replaced with- channel_allowlisted. The previous value is no longer documented but is still supported.
- The values closed_disabled_monetization,closed_manually,closed_no_adsense,closed_own_video_match,reference_removed,replaced, andvideo_modifiedare now supported.
June 14, 2022
The assetSearch resource
  documentation has been updated to reflect the two new
  properties: isrcs[] and
  iswcs[]. The new
  isrcs[] and iswcs[] property values each contain an array of string
  values with each value specifying an ISRC or ISWC, as appropriate, that maps to the asset
  identified by the search result.
The new properties are recommended over the isrc and iswc properties
   already included in assetSearch resources because the new properties provide more
  accurate data. Whereas the new properties potentially list an array of string values, the
  isrc and iswc properties each identify only one ISRC or ISWC code
  associated with the search result.
  
May 12, 2022
The links to client libraries were updated to point to the standard Google APIs client libraries. Pre-generated bindings for PHP were updated.
May 3, 2022
The claimSearch.list method's status parameter now supports more filters based on potential claim details.
May 2, 2022
The documentation for the assetSearch.list method's Response has been updated to reflect improvements for consistency with AIP-158:
- The description of pageInfo.totalResultsexplicitly mentions that the value is an estimate and not the actual value
- Fields pageInfo.resultsPerPageandpageInfo.startIndexhave been removed
April 25, 2022
The documentation for the assetLabels.list resource has been updated to clarify the meaning of labelPrefix and q request parameters, and to document that the request / response support pagination.
December 8, 2021
The documentation for the claimSearch.list resource has been updated to properly reflect the two use cases this method covers:
- Search by ID (asset, reference or video) or query string
- Search by claim creation date, modification date, or status
Each use case supports a different set of query parameters. The claimSearch.list method's documentation has been updated to explain which parameters are supported for each use case.
November 17, 2021
This update includes the following changes:
- The claims.updatemethod now supports the ability to update an inactive or potential claim's status toactive. The definition of theclaimresource'sstatusproperty provides more details.
- The documentation for the claimandclaimSearchresources has been updated to reflect the addition of the newstudioInfoobject, which contains links to YouTube Studio pages related to the claim.
- The list of values supported for the claimSearch.listmethod'soriginparameter has changed. The parameter now supports four additional values:batchTool,inProductShorts,melodyMatch, andyouTubeAdmin. In addition, thedropboxUploadandwebUploadvalues are no longer supported.
February 26, 2021
The documentation for the claimSearch.list method's videoId parameter has been updated to note that the parameter value now accepts a maximum of 10 comma-separated video IDs. The API will return a badRequest error — 400 HTTP response code —  if the value contains more than 10 video IDs.
December 6, 2018
Note: This is a deprecation announcement.
The API documentation has been updated to remove references to the contentOwnerAdvertisingOptions resource and its methods. These methods were very minimally used, and API users that did use them have been contacted separately prior to this announcement.
March 21, 2018
This update contains the following changes:
- 
    The metadataMine.artistproperty must now be set any time you insert, update, or patch a music video or sound recording asset. The API now returns an error if the property is not set for those resource types. In addition, note that themetadataMine.artistproperty is only supported for music video and sound recording artists.
July 24, 2017
This update contains the following changes:
- 
    The new packageresource represents a group of files delivered via the web, SFTP, or another delivery mechanism. The API's supports two methods for this resource:- The package.insertmethod validates and uploads a metadata-only package containing exactly one metadata file.
- The package.getmethod retrieves information about a previously uploaded package.
 
- The 
- 
    For the validator.validatemethod, the definition of theuploaderNameproperty has been updated to note that the value does not identify the content partner uploading the data but rather a value likeweb-googleoryt-googlethat identifies the specific uploader account that the content owner is using.
- 
    The referenceresource'sstatusproperty no longer uses the valueduplicate_on_holdto indicate that a reference is a duplicate of another reference. Instead, if a reference is a duplicate, the value of thestatusproperty is now set toinactive, and the value of thestatusReasonproperty isREASON_DUPLICATE_FOR_OWNERS.However, as before, the resource's duplicateLeaderproperty is only populated if the reference is a duplicate. If it is set, then that property's value identifies the duplicated reference.
April 17, 2017
This update contains the following changes:
- 
    The new assetShareresource which is only relevant to composition assets, identifies a relationship between two representations of an asset resource. These representations reflect a new publishing data model designed to provide more transparency into and control over how your rights are associated with sound recording assets.In the new model, each sound recording maps to exactly one, unique asset, which is called a composition view. That asset's metadata represents the canonical set of information that YouTube displays about the composition rights associated with a given recording, and it may synthesize information from multiple data providers. In addition, each owner of the composition has its own composition share asset. The composition share represents the information that a particular publisher provided for a composition asset. The composition share can be associated with many sound recordings. The assetShareresource identifies a relationship between a composition view and a composition share. The newassetShares.listmethod lets you do either of the following:- Provide the ID of a composition view and retrieve the corresponding composition share owned by the partner authorizing the request, if such a share exists.
- Provide the ID of a composition share owned by the content partner and retrieve a list of all of the composition views to which that share is linked.
 
- 
    The new Managing composition assets guide explains how different API methods handle requests depending on whether the asset IDs submitted to those methods identify composition views or composition shares. 
- 
    The contentOwnerAdvertisingOptionsresource's newclaimedVideoOptions.autoGeneratedBreaksproperty indicates whether YouTube should automatically generate ad breaks in claimed videos that are more than 10 minutes long. While the property affects all of the content owner's videos that are more than 10 minutes long, if a video has multiple claims, the first partner that claims a video sets the default behavior for this property in relation to that video.
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. 
May 31, 2016
This update contains the following changes:
- 
    New resources and methods - 
        The new validator.validatemethod lets you determine whether a metadata file contains validation errors that would prevent YouTube from processing it successfully. If the file contains errors, the API response'serrorsproperty contains a list of validation errors, identifying the severity, cause, and location of each error.
 
- 
        
- 
    New and updated errors - 
        The assets.patchandassets.updatemethods now support the following error. As a reminder, a method can support multiple errors that have the same error type. Please refer to the error documentation for each method or to the errors page for a complete list of possible errors.Errors invalidValue (400)parameters.assetId
 The request failed because the asset being updated has been merged with another asset. Resubmit the request using that asset's ID, which is returned in the error message, as the value of theassetIdparameter.
 
- 
        
March 28, 2016
This update contains the following changes:
- 
    Updates to existing resources and methods - 
        The claimresource's newmatchInfo.matchSegments[]property contains a list in which each item describes a segment of the claimed video that matches part of the reference video. A claim can have multiple match segments. For example, if the audio and video content of an uploaded video match that of a reference video, there would be two match segments. One segment would describe the audio match and the other would describe the video match.For each match segment, the API returns the duration and type (audio or video) of the matched content. The API also identifies the time offsets at which each match segment begins and ends in both the claimed video and the reference video. 
- 
        The contentOwnerAdvertisingOptionsresource'sclaimedVideoOptions.newVideoDefaults[]property value can now be updated when you call thecontentOwnerAdvertisingOptions.patchorcontentOwnerAdvertisingOptions.updatemethods.
- 
        The contentOwnerAdvertisingOptionsresource's read-onlyallowedOptions.autoGeneratedBreaksproperty has been deprecated.
 
- 
        
- 
    New and updated errors - 
        The API's claims.updatemethod now supports the following error. As a reminder, a method can support multiple errors that have the same error type. Please refer to the error documentation for each method or to the errors page for a complete list of possible errors.Errors badRequest (400)alreadyClaimed
 The claim is a duplicate of another existing claim and cannot be updated.
- 
        The assets.listmethod occassionally times out and returns a500HTTP response code (Internal Server Error), notably when the request retrieves data for many assets and the value of thefetchMatchPolicyparameter iseffective. If yourassets.listrequest specifies multiple asset IDs and returns a500error, try resubmitting the request for a single asset or a smaller number of assets.
- 
        The references.inserterror documentation has been updated to note that if the request uploads a corrupted reference file, that issue is not identified until the reference itself is processed. So, even if thereferences.insertrequest returns a successful response, the reference might not be processed successfully. We recommend that, after inserting a reference, you poll using thereferences.listmethod to confirm that the reference is activated as expected.
 
- 
        
February 3, 2016
This update contains the following changes:
- 
    Updates to existing resources and methods - 
        The API now supports product listing ads. Product listing ads highlight products that are related to or are featured in a video's content. These ads are sponsored cards that display during the video. The cards are added automatically by the ad system. Viewers see a teaser for the card for a few seconds and can also click the icon in the top right corner of the video to browse the video's cards. As a result of this change, product_listingcan now be included in the following properties' values:Resource/API method Property contentOwnerAdvertisingOptionsallowedOptions.licAdFormats[]contentOwnerAdvertisingOptionsallowedOptions.ugcAdFormats[]contentOwnerAdvertisingOptionsclaimedVideoOptions.newVideoDefaults[]videoAdvertisingOptionsadFormats[]videoAdvertisingOptions.getEnabledAdscountriesRestriction[].adFormats[]
- 
        The assetSearch.listmethod's newcreatedBeforeandcreatedAfterinstruct the API to only return assets created before and/or after a certain date.
- 
        In the API response to an assetSearch.listrequest, thetypeproperty now supports the valueart_track_video. The YouTube Help Center provides more information about art track videos.
- 
        The claimSearch.listmethod supports the following new parameters:Parameters referenceIdThis filter parameter specifies the YouTube reference ID of the reference for which you are retrieving claims. inactiveReasonsThis optional parameter lets you restrict the API response to only include inactive claims based on specified reasons why the claims became inactive. The parameter definition lists the types of inactive claims for which you can search. partnerUploadedThis optional Boolean parameter lets you specify that the API response should only include either partner-uploaded or non-partner-uploaded claims. 
- 
        The referenceresource's newreferences#originationobject contains information that describes the source of the reference.
- 
        The references.insertmethod now supports the ability to upload references generated using YouTube's gfp_gen software. If you provide a pre-generated fingerprint, set thefpDirectproperty value totruein the uploadedreferenceresource.Note that with this change, the API no longer returns an error if you try to set the fpDirectproperty when uploading a reference.
 
- 
        
- 
    New and updated errors The documentation now lists errors returned by the whitelistresource's methods.In addition, the following table identifies new errors that the API supports and the methods that could return each error. Note that a method may return multiple errors that have the same error type. Please refer to the error documentation for each method or to the errors page for more information. Errors badRequest (400)inappropriateCampaignTarget
 Thecampaigns.insertandcampaigns.updatemethods return this error if a campaign attempts to feature a video that may be inappropriate for some users. To address the error, please choose different content to feature.badRequest (400)canNotCreatePartnerUploadedClaimOnCompositionOrSoundRecordingAssets 
 Theclaims.insertmethod returns this error if you try to create a partner-uploaded claim with a composition or sound recording asset.badRequest (400)existingSoundRecordingOrMusicVideoClaim
 Theclaims.insertmethod returns this error if a claim already exists for recorded music on the specified video. Direct composition claims cannot be added via the API.badRequest (400)asset_id
 Thereferences.insertmethod returns this error if the request attempted to create a reference through a file but the request did not specify an assetId.badRequest (400)canNotBeActivated
 Thereferences.updatemethod returns this error if the reference cannot be activated, possibly due to the reference's status or to ownership conditions.badRequest (400)videoNotClaimed
 ThevideoAdvertisingOptions.getmethod returns this error if you have not claimed the video for which you you are trying to retrieve advertising options, thereby making the requested information unavailable to you.
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.
April 21, 2015
This update contains the following changes:
- 
    The new campaignresource represents a specific content owner campaign, which allows the content owner to use annotations to promote content on claimed, user-uploaded videos. For example, a content owner could create a campaign that adds links to a movie's watch page for any claimed, user-uploaded videos that contain scenes from that movie.The API supports methods to get,list,insert,update,patch, anddeletecampaignresources.
- 
    The API supports several new errors for the new campaigns.get,campaigns.insert,campaigns.update, andcampaigns.deletemethods.
March 30, 2015
This update contains the following changes:
- 
    Updates to existing resources and methods - 
        The assetSearch.listmethod's newisrcsparameter lets you specify a list of up to 50 ISRCs. The API response will include assets associated with those ISRCs.
- 
        The claimHistoryresource'sevent[].reasonproperty supports the following new values. Each reason explains why a particular event related to the claim occurred:- closed_audio_claim_on_visual_reference
- closed_partner_exclusion
- closed_reference_conflict
 
- 
        The claimSearch.listmethod's newsortparameter specifies the method that will be used to order resources in the API response. By default, resources are sorted in reverse chronological order (from newest to oldest) based on the dates they were created. You can also sort resources from highest to lowest number of views for the claimed content.Note that if the claimSearch.listrequest also sets thestatusparameter value to eitherappealed,disputed,pending,potential, orroutedForReview, then results are sorted by the time that the claim review period expires.
- 
        The ownership.updateandownership.patchmethods now correctly list all of the properties that can be updated when calling these methods. This change represents a correction to the API documentation and does not identify a change to API functionality.
- 
        The fetchMatchPolicyparameters for theassets.getandassets.listmethods now listeffectiveas a supported value. The value instructs the API server to retrieve the match policy that YouTube applies for the asset.
- 
        The idparameters for theassets.list,claims.list,contentOwners.list,policies.list,publishers.list, andreferences.listmethods all now note that their parameter values can contain a maximum of 50 comma-separated IDs.
 
- 
        
- 
    New and updated errors The table below identifies new errors that the API supports and the methods that could return each error. Note that a method may return multiple errors that have the same error type. Please refer to the error documentation for each method or to the errors page for more information. Error type Error detail Description badRequest (400)tooManyIsrcsThe assetSearch.listmethod returns this error if theisrcsparameter specifies more than 50 ISRCs.badRequest (400)videoIsPrivateThe claims.insertmethod returns this error if you try to claim a private video. You can only claim a video if its privacy status ispublicorunlisted.notModified (304)blockOutsideOwnershipUnchangedThe claims.updatemethod returns this error if theblockOutsideOwnershipflag on the claim was not successfully modified. There are several reasons why this error might occur. A common example is because the specified modification has no effect on the claimed video.
November 7, 2014
This update contains the following changes:
- 
    Updates to existing resources and methods - 
        The claimSearch.listmethod'sstatusparameter now supports a value ofroutedForReview. This value restricts results to claims that require manual review based on a rule in an asset's match policy.
- 
        The claimHistoryresource'sevent[].reasonproperty supports the following new values. Each reason explains why a particular event related to the claim occurred:- closed_invalid_reference_segment
- closed_noadsense
- suspended_monetization_on_channel
- video_content_modified
 
- 
        The claimresource'sorigin.sourceproperty, which identifies the source of a claim, now supports the valuemelodyMatch. A melody match claim indicates that the claimed video shares a musical composition with a reference.
- 
        The references.insertmethod's documentation has been updated to properly reflect that the API uses two different endpoints for that method. This does not represent a change in API functionality, but rather a correction to the existing documentation.- 
            If the request is uploading a new reference file, the correct endpoint is: POST https://www.googleapis.com/upload/youtube/partner/v1/references 
- 
            If the request is creating a reference using a claimed video as the reference content, the correct endpoint is: POST https://www.googleapis.com/youtube/partner/v1/references 
 
- 
            
 
- 
        
- 
    New and updated errors The table below identifies new errors that the API supports and the methods that could return each error. Note that a method may return multiple errors that have the same error type. Please refer to the error documentation for each method or to the errors page for more information. Error type Error detail Description badRequest (400)invalidLabelNameThe assets.insert,assets.update, andassetLabels.insertmethods return this error if an asset label's name is invalid. Label names must be between two and 30 characters. They may not contain angled brackets, commas, colons, ampersands, or the vertical pipe character (|).badRequest (400)ownerHaveMaximumNumberOfLabelsThe assets.insert,assets.update, andassetLabels.insertmethods return this error if a content owner has already defined 2500 unique asset labels, which is the maximum number currently allowed.badRequest (400)tooManyLabelsOnOneAssetThe assets.insertandassets.updatemethods return this error if an asset is already associated with 30 asset labels, which is the maximum number currently allowed.badRequest (400)channelMonetizationSuspendedThe claims.insertandclaims.updatemethods return this error if a video's channel is suspended for partner claims.badRequest (400)channelNotActiveThe claims.updatemethod returns this error if a video's channel is not active.
- 
    The assets.insertandassets.updatemethods no longer return abadRequesterror for some assets if the resource in the request body does not contain themetadataMine.contentTypeproperty.
September 23, 2014
This update contains the following changes:
- 
    Content Owner ID changes The content owner ID changes announced in the revision history on July 9, 2014, have gone into effect. As a result of this change, the API now returns a generated, unique ID to identify the content owner associated with either the authenticated user or a resource managed through the API. Previously, the API returned a human-readable name as the ID, such as "qrs_network." This change affects the following API functionality and will likely impact partners who have hard-coded Partner Codes in their applications. - The API now returns the new ID as the value of resource properties that previously returned the Partner Code, such as the contentOwnerresource'sidproperty.
- All of the API's methods support the onBehalfOfContentOwnerparameter, which identifies the content owner on whose behalf the API request is being made. Following the change, the parameter should be set to the new ID instead of the Partner Code. To prevent code breakages, the parameter will accept either value during a transition period.
- Following the change, the contentOwners.listmethod'scontentOwnerIdparameter should specify the new ID instead of the Partner Code.
 
- The API now returns the new ID as the value of resource properties that previously returned the Partner Code, such as the 
- 
    Updates to existing resources and methods - 
        The assetSearch.listmethod's newmetadataSearchFieldsparameter lets you specify asset metadata fields that you want to search as well as the values that you want to search for in those fields. The parameter value is a comma-separated list of field and value pairs; within a pair, the field and value are separated by a colon.
- 
        The claimresource's newappliedPolicyobject specifies the policy that YouTube actually applies for the claim. The object's value is apolicyresource. That resource contains policy information for the countries where the content owner that submitted the request owns the claimed asset.The applied policy can differ from the policy that the content owner defined in two ways: - 
            It accounts for policies set by other owners who have partial ownership of the claimed asset in some of the same territories as the content owner that submitted the API request. 
- 
            It accounts for YouTube administrative policies that apply in territories where the content owner owns the claimed asset. 
 
- 
            
- 
        The claimHistoryresource's newuploaderChannelIdproperty identifies the channel ID of the channel to which the claimed video was uploaded.
 
- 
        
September 8, 2014
This update contains the following changes:
- 
    New resources and methods - 
        The new assetLabelresource identifies a text label that can be assigned to an asset. Asset labels let you place assets into custom categories, making it easier to organize your asset library. You can search for assets based on their labels, which can also simplify use cases that require you to update specific groups of assets.- The assetLabels.listmethod lets you retrieve a list of a content owner's labels.
- The assetLabels.insertmethod lets you create a new asset label. You can also create new labels by calling theassets.updatemethod and updating the labels for an asset. The API server will automatically create a newassetLabelresource for any previously undefined label.
 
- The 
 
- 
        
- 
    Updates to existing resources and methods - 
        The assetresource'slabel[]property has been updated to note that you can call theassets.updatemethod to update an asset's labels. However, you cannot set an asset's labels when calling theassets.insertmethod.The new Using Asset Labels guide explains how to create and retrieve asset labels as well as how to update an asset's labels or search for assets associated with particular labels. 
 
- 
        
- 
    New and updated errors The API supports several new errors for the new assetLabels.listandassetLabels.insertmethods.
July 9, 2014
This update contains the following changes:
- 
    Content Owner ID changes Historically, the API has used a human-readable Partner Code, such as "qrs_network", to uniquely identify the content owner associated with either the authenticated user or a resource managed through the API. In Q3 2014, the API will switch to instead use a unique 22-character ID to identify content owners. The change affects the following API functionality and will likely impact partners who have hard-coded Partner Codes in their applications. - The API will return the 22-character ID as the value of resource properties that previously returned the Partner Code, such as the contentOwnerresource'sidproperty.
- All of the API's methods support the onBehalfOfContentOwnerparameter, which identifies the content owner on whose behalf the API request is being made. Following the change, the parameter should be set to the 22-character ID instead of the Partner Code. To prevent code breakages, the parameter will accept either value during a transition period.
- Following the change, the contentOwners.listmethod'scontentOwnerIdparameter should specify the 22-character ID instead of the Partner Code.
 
- The API will return the 22-character ID as the value of resource properties that previously returned the Partner Code, such as the 
- 
    Updates to existing resources and methods - 
        An assetresource now supports thelabelproperty, which specifies a list of asset labels associated with the asset. You can apply a label to multiple assets to group them. You can use the labels as search filters to perform bulk updates, to download reports, or to filter YouTube Analytics.
- 
        The assetSearch.listmethod now supports the following optional parameters:- labels: Restricts results to only include assets that are associated with the specified labels. By default, the API returns assets that match all of the specified labels. However, you can use the- includeAnyProvidedLabelparameter to instruct the API to return assets that match any of the specified labels.
- includeAnyProvidedLabel: Used in conjunction with the- labelsparameter, this parameter instructs the API return assets that are associated with any of the labels specified in the- labelsparameter value.
 
- 
        A claimHistoryresource now contains the following new properties:- The event[].source.userEmailproperty provides the email address of the user who initiated the event.
- The event[].typeDetails.disputeNotesproperty contains dispute notes for adispute_createevent.
 
- The 
- 
        The claimSearch.listmethod now supports the following optional parameters:- createdAfter: Restricts results to only include claims created after the specified date.
- createdBefore: Restricts results to only include claims created before the specified date.
- includeThirdPartyClaims: Used in conjunction with the- videoIdparameter, this parameter indicates whether to include third-party claims in the API results.
 
 
- 
        
- 
    More detailed error information The error documentation now specifies the HTTP response code for each error type. 
- 
    New and updated errors The table below identifies new errors that the API supports and the methods that could return each error. Note that a method may return multiple errors that have the same error type. For example, a requirederror is returned if you try to insert anassetresource that is missing a required metadata field. In fact, there may be more than one required metadata field, each of which will return an error with a slightly different message.Please refer to the error documentation for each method or to the errors page for more information. Method Errors assetSearch.list- invalidValue– The API does not support the ability to search for show or season assets. Change the value of the- typeparameter to a supported value.
 assets.insert- conflict– Too many assets with the same identifier (e.g. custom ID, ISRC, etc.) already exist.
- conflict– Too many copies of the specified asset already exist.
- invalidValue– The user calling the API does not have permission to create assets of the specified type.
 assets.patchassets.update- badRequest– The API does not support the asset type conversion you have attempted.
 claimSearch.list- badRequest– The- includeThirdPartyClaimsparameter may only be used in conjunction with the- videoIdfilter.
 ownership.patchownership.update- badRequest– You cannot update ownership of an art track asset.
 references.patchreferences.update- badRequest– The reference is in an invalid state for the operation you are attempting.
 
February 3, 2014
This update contains the following changes:
- 
    Updates to existing resources and methods - 
        An assetresource can now have atypevalue ofart_track_video.
- 
        A claimSearchresource now includes the following new properties:- The originobject contains information that describes the manner in which the claim was created.
- The thirdPartyClaimproperty contains a Boolean value that indicates whether the claim was made by a content owner other than the one associated with the user performing the search.
 
- The 
- 
        The claimSearch.listmethod now supports the following optional parameters:- contentType: Restricts results to only include either audio-only claims, video-only claims, or audiovisual claims.
- origin: Specifies one or more claim origins, such as- descriptiveSearchor- videoMatch, for which you want to find claims.
- status: Restricts results to only include claims that have the specified status.
 
- 
        The claimresource'sstatusproperty now supports the following additional values:appealed,disputed,potential,takedown, andunknown.
- 
        The claimresource's newblockOutsideOwnershipproperty indicates whether the claimed video should be blocked in territories where it is not explicitly owned. By default, a claimed video would still be viewable in countries where ownership data had not been defined for the asset associated with the claim.
- 
        The contentOwnerAdvertisingOptionresource's newallowedOptions.autoGeneratedBreaksproperty indicates whether the partner can opt to show midroll, in-stream ads at break times automatically determined by YouTube.
- 
        The contentOwners.listmethod can now be called with an authorization token that specifies thehttps://www.googleapis.com/auth/youtubepartner-content-owner-readonlyscope.
- 
        The policyresource's newtimeUpdatedproperty specifies the time when the policy was last updated.
- 
        The policies.listmethod now supports an optionalsortparameter, which can be used to specify that results should be sorted in ascending or descending order of the time they were last updated.
- 
        The referenceConflictresource's newexpiryTimeproperty specifies the time when the review period for the reference conflict will end, causing the conflict to expire.
- 
        The videoAdvertisingOptionresource's newautoGeneratedBreaksproperty indicates whether the video should show midroll, in-stream ads at break times automatically determined by YouTube.
 
- 
        
- 
    New and updated errors The table below identifies new errors that the API supports and the methods that could return each error. Note that a method may return multiple errors that have the same error type. For example, a requirederror is returned if you try to insert anassetresource that is missing a required metadata field. In fact, there may be more than one required metadata field, each of which will return an error with a slightly different message.Please refer to the error documentation for each method or to the errors page for more information. Method Errors assets.insertassets.update- badRequest– The API does not support write operations on art track assets.
 claimSearch.list- invalidValue– The- pageTokenparameter in the request specifies an invalid page token.
 claims.insert- badRequest– The claim you are trying to create is invalid because the video's channel is not active.
- badRequest– The video you are trying to claim is exempt from a takedown policy. For inquiry, please contact copyright@youtube.com
- badRequest– Your request cannot be processed because you cannot create a third-party claim on the specified video.
- conflict– YouTube cannot create the requested claim because the video has countered a takedown notice.
- conflict– YouTube cannot create the requested claim because the video has an active takedown claim.
 references.insert- badRequest– The claimed video that you are trying to use was deleted or rejected, or its processing failed.
 
- 
    The contentOwnerNotProvidedandinternalErrorerrors, which are not specific to a particular API method, are no longer listed on every method page. Their descriptions can still be found in the General errors section of the API's error documentation.
September 12, 2013
This update contains the following changes:
- 
    New resources and methods - 
        The new referenceConflictresource identifies a conflict between two reference files and lists the matches that existed between those files when the conflict was identified. ThereferenceConflicts.listmethod lets you retrieve a list of unresolved reference conflicts associated with the authorized content owner. ThereferenceConflicts.getmethod enables you to retrieve a reference conflict by specifying its unique reference conflict ID.
 Updates to existing resources and methods - 
        The API now supports the ability to retrieve the effective match policy for an asset. This change parallels the changes released July 16, 2013, which included support for retrieving the canonical set of metadata and ownership data for an asset. To retrieve the effective match policy for an asset, set the fetchMatchPolicyparameter value toeffectivewhen calling either theassets.getorassets.listmethods. In the API response, thematchPolicyEffectiveobject in each returnedassetresource contains the effective match policy for that asset.
- 
        The assetresource's newownershipConflictsobject contains information about the asset's ownership conflicts. The object's structure is similar to the structure of anownershipresource, which identifies each different type of rights that an asset owner can hold. (For most asset types, owners can just have general asset ownership, but for composition assets, owners can itemize their ownership of performance rights, synchronization rights, or mechanical rights.)Similarly, the ownershipConflictsobject contains separate lists that identify conflicts for general ownership rights, performance rights, synchronization rights, and mechanical rights. For each conflict, the data identifies the territories where the conflict occurs, the owners who have provided conflicting ownership data, and the percentage of the asset that each conflicting owner claims to own.
- 
        The assets.getandassets.getmethods now support the newfetchOwnershipConflictsparameter. The parameter has a boolean value that indicates whether the API request should retrieve ownership conflicts for the assets in the API response. The default value isfalse, which means that ownership conflicts are not returned.
- 
        The definition of the assetSearch.listmethod'sqparameter has been updated to identify the metadata fields that YouTube searches.
- 
        The documentation of the request body for a references.insertmethod now indicates that you must set the value of thecontentTypeproperty. This change updates the documentation to properly reflect actual API functionality but does not represent a change in API functionality.
 
- 
        
- 
    New and updated errors - 
        The API supports a new forbiddenerror, which is not specific to a certain method, that indicates that the requested operation cannot be authorized by a service account.
- 
        The assets.insertmethod now identifies metadata errors as occurring in properties in themetadataMineobject rather than in themetadataobject, which was deprecated as of the API update on July 16, 2013.
- 
        The errors page has been updated so that for each resource that supports updateandpatchmethods, the page contains one table that lists errors returned by those two methods. Previously, the page listed the errors for each method separately, though the lists were always the same.
 
- 
        
July 16, 2013
This update contains the following changes:
- 
    New resources and methods - 
        The new claimHistory.getmethod lets you identify and retrieve information about a specific claim. The returnedclaimHistoryresource contains a list of events related to the claim, such as the claim being created, updated, disputed, or closed.
- 
        The new claimSearch.listmethod lets you search for claims that meet any or all of the following criteria:- The claims are associated with a specific asset.
- The claims are associated with a specific video.
- The claims match a query string provided in the request.
 Each claimSnippetresource in the API response contains details about a claim, including that claim's unique claim ID, its status, its type (audio,video, oraudiovisual), and the asset and video associated with the claim. The resource also specifies the number of views for the claimed video and the claimed video's title.
 
- 
        
- 
    Updates to existing resources and methods - 
        The documentation now lists the supported values for properties that have a set of enumerated values. Such properties include the assetresource'stypeproperty and theclaimresource'sstatusproperty.
- 
        For the assets.getandassets.listmethods, the API now supports comma-separated values for thefetchMetadataandfetchOwnershiprequest parameters, enabling you to retrieve multiple sets of metadata or ownership data.The list below explains the corresponding changes to the assetresource's structure as well as the impacts of those changes on API methods thatget,list,insert,update, orpatchassetresources.- 
            The metadataobject has been deprecated and replaced by themetadataMineandmetadataEffectiveobjects. The new objects allow anassetresource to include both the set of metadata provided by the content owner making the API request as well as the canonical set of metadata that YouTube has determined is the most accurate, complete set of metadata for the asset.
- 
            Similarly, the ownershipobject has been replaced with theownershipMineandownershipEffectiveobjects.
- 
            The matchPolicyobject has been replaced with thematchPolicyMineobject. (The API does not currently support the ability to retrieve the effective match policy for an asset.)
 Note: To ensure backward compatibility, if only one metadata version, one set of ownership data, or one match policy is requested for an asset, the API response will include the deprecated object as well as the newly supported object. For example, if a request sets the fetchMetadataparameter tomine, the API response will contain ametadataobject and ametadataMineobject, both of which will contain the same data. (The ability to setfetchMetadata=minewas supported prior to the feature update enabling you to retrieve multiple metadata versions.)
 However, if thefetchMetadataparameter is set tomine,effective, the API response will containmetadataMineandmetadataEffectiveobjects, but it will not contain ametadataobject. (The ability to setfetchMetadata=mine,effectivewas not supported prior to this feature update, so there is no need to return themetadataobject for backward compatibility.) The same principle also applies to thefetchOwnershipandfetchMatchPolicyparameters.
 Similarly, for backward compatibility, a request toinsert,update, orpatchanassetresource can include either themetadataMineobject or themetadataobject. The same principle applies to setting anassetresource's ownership data or match policy.
- 
            
- 
        The claims.listmethod'sassetId,q, andvideoIdparameters have been deprecated. To search for claims using any of these criteria, use the claimSearch.list method, which supports all of those parameters.
- 
        In an ownershipresource, the values of thegeneral[].ratio,performance[].ratio,synchronization[].ratio, andmechanical[].ratioproperties all now have a content format ofdoubleinstead ofinteger.
- 
        The definition of the policyresource'srules[].actionproperty now lists valid values for that property:block,monetize,takedown, andtrack. However, note that you cannot use the API to apply a takedown policy to a claim.
- 
        The referenceresource's newclaimIdproperty is present if the reference was created by associating an asset with an existing YouTube video that was uploaded to a YouTube channel linked to your CMS account. In that case, this field contains the ID of the claim that represents the resulting association between the asset and the video.
- 
        The referenceresource's newexcludedIntervals[]property specifies a list of time intervals during the reference that YouTube should ignore when trying to match the reference. Each interval specifies a start and end time measured in seconds from the start of the video.
- 
        The API no longer requires the statusproperty to be set in thereferenceresource that is sent in the body of areferences.updateorreferences.patchrequest.
- 
        The documentation has been corrected to properly describe the API response format for the videoAdvertisingOptions.getEnabledAdsmethod. The response, which is ayoutubePartner#videoAdvertisingOptionGetEnabledAdsresource, contains the following information:- 
            id– The ID that YouTube uses to uniquely identify the claimed video associated with the settings.
- 
            adBreaks– A list of objects in which each object contains information about a point before, during, or after the video playback when ads are allowed to run. Each object may also specify other attributes of the ad break, such as the ad slots that occur during the break and the types of ads that are allowed to run during each slot.
- 
            adsOnEmbeds– A boolean field that indicates whether YouTube can show ads when the video is played in an embedded player.
- 
            countriesRestriction– A list of objects in which each object identifies a list of territories and the ad formats that are used during playbacks of the video in those territories.
 
- 
            
 
- 
        
- 
    New and updated errors - 
        The table below identifies new errors that the API supports and the methods that could return each error. It also identifies errors that have changed. Note that a method may return multiple errors that have the same error type. For example, a requirederror is returned if you try to insert anassetresource that is missing a required metadata field. In fact, there may be more than one required metadata field, each of which will return an error with a slightly different message.Please refer to the error documentation for each method or to the errors page for more information. Method Errors assets.insertassets.updateassets.patch- invalidValueand- requirederrors previously associated with child properties of the- metadataobject are now associated with the same child properties in the- metadataMineobject.
 claimHistory.get- notFound– The claim for which you are trying to retrieve history cannot be found.
- required– The request does not specify a value for the- claimIdparameter.
 claimSearch.listclaims.list- badRequest– The request specifies invalid criteria. At most, one of the following filter parameters may be specified:- q,- assetId,- videoId.
 claims.insert- badRequest– The claim you are trying to create is invalid because the requested content owner is not an owner of the asset associated with the claim.
- badRequest– The content owner that you are acting on behalf of does not have permission to create policies with the specified action.
- invalidValue– The content owner that you are acting on behalf of does not have permission to claim user-uploaded videos via the API.
 contentOwners.list- badRequest– The request specifies invalid criteria. Exactly one of the following filter parameters must be specified:- fetchMine,- id. (Previously, the error listed a different set of filter parameters –- has_conflicts_with,- restrict_to_user,- name_prefix, and- id.)
 ownership.updateownership.patch- badRequest– A request that updates the ownership data of a composition asset must specify granular ownership data &ndahs;- mechanical,- performance,- synchronization, and/or- lyricrights – rather than- generalownership rights. The- lyricrights type is newly supported.
 policies.insertpolicies.updatepolicies.patch- invalidValue– The request contains an invalid policy rule because the API does not support the creation or modification of policies that specify a- takedownaction. This error, which reports a reason of- invalidPolicyTakedownAction, replaces the deprecated- invalidPolicyConditionalTakedownerror.
 references.insert- badRequest– The request must either send a media file or specify a value for the- claimIdrequest parameter. However, a request may not send a media file and specify a value for the- claimIdrequest parameter.
- badRequest– A reference for the same content has already been created from a different claim on the same YouTube video.
- badRequest– The API does not support the ability to set a value for the- fpDirectproperty when creating a reference.
- internalError– There is a problem with the uploaded media file.
- invalidValue– The value of the- contentType,- assetId, or- claimIdrequest parameter is invalid. The error identifies the invalid value.
- notFound– The asset or claim that you specified cannot be found. Please check the- assetIdand- claimIdparameter values in your request.
- required– The request must specify a value for the- contentTypeparameter.
 references.insertreferences.updatereferences.patch- invalidValue– The- excludedIntervalsspecified for the reference are not valid. Note that you cannot specify exclusion intervals when deactivating a reference.
 
 
- 
        
May 10, 2013
This update contains the following changes:
- 
    YouTube no longer identifies experimental API features and services. Instead, we now provide a list of YouTube APIs that are subject to the deprecation policy. 
April 8, 2013
This update contains the following changes:
- 
    The API has been renamed to the YouTube Content ID API. 
- 
    Several properties have changed in the assetMatchPolicyresource:- The kindproperty value has changed fromyoutubePartner#policytoyoutubePartner#assetMatchPolicy.
- The new policyIdproperty contains a value that uniquely identifies a saved policy resource.
- The rules[].subactionproperty value is now a list of strings rather than a string.
- The rules[].conditions.contentMatchTypeproperty value is now a list of strings rather than a string.
- The id,name, anddescriptionproperties have been removed.
 
- The 
- 
    The documentation for the assetMatchPolicy.updatemethod has been updated to reflect the fact that you can set values for either thepolicyIdproperty or therules[]object when calling the method.
- 
    The claimsresource now supports several new properties:Property name Value Description timeCreateddatetimeThe date and time that the claim was created. matchInfoobjectThe matchInfoobject contains information about the matching content that generated the claim. This information is only included in aclaimresource if the claim was automatically generated because an uploaded video matched an existing reference file.matchInfo.referenceIdstringThe unique ID that YouTube uses to identify the reference referencethat generated the match.matchInfo.longestMatchobjectThe longestMatchobject contains information about the longest match between the reference and the uploaded video.matchInfo.longestMatch.durationSecsunsigned longThe duration of the match, in seconds. matchInfo.longestMatch.userVideoOffsetunsigned longThe time offset when the match begins, measured in seconds from the beginning of the uploaded video. matchInfo.longestMatch.referenceOffsetunsigned longThe time offset when the match begins, measured in seconds from the beginning of the reference. matchInfo.totalMatchobjectThe totalMatchobject contains information about the total amount of the uploaded video that matched the reference and about the total amount of the reference that matched the uploaded video. These values may differ if the matching content runs in a loop in either the uploaded video or the reference. For example, if an uploaded video includes a 10-second clip from a reference, but the clip is repeated six times, then the total matching content in the uploaded video is 60 seconds, but the total matching content in the reference is only 10 seconds.matchInfo.totalMatch.userVideoDurationSecsunsigned longThe total length, in seconds, of the uploaded video's content that matches the reference. matchInfo.totalMatch.referenceDurationSecsunsigned longThe total length, in seconds, of the reference content that matches the uploaded video. originobjectThe originobject contains information that describes the source of the claim.origin.sourcestringThe source of the claim. 
- 
    The policyproperty in theclaimsresource has been updated to note that the value cannot be updated for an AudioSwap claim.
- 
    The metadataHistoryresource'stimeProvidedMsproperty has been renamed to timeProvided.
- 
    The ownershipHistoryresource'stimeProvidedMsproperty has been renamed to timeProvided.
- 
    The definition of the ownershipHistory.listmethod has been updated to note that the method only retrieves the most recent ownership data for each content owner. However, if the content owner has submitted ownership data through multiple data sources (API, content feeds, etc.), the list will contain the most recent data for each content owner and data source.
- 
    Several properties have changed in the policyresource:- The ruleproperty has been renamed to rules.
- The rules[].subactionproperty value is now a list of strings rather than a string.
- The rules[].conditions.contentMatchTypeproperty value is now a list of strings rather than a string.
 
- The 
- 
    The documentation for the policies.insertandpolicies.updatemethods has been updated to reflect the fact that you can set values for therules[]object when calling those methods.
- 
    Several API methods support new error types. The table below identifies the method and briefly identifies the types of newly supported errors. In many cases, there may be multiple errors for a given type. For example, a requirederror is returned if you try to insert anassetresource that is missing a required metadata field. In fact, there may be more than one required metadata field, each of which will return an error with a slightly different message.Please refer to the error documentation for each method or to the errors page for more information. Method Errors assets.insert- invalidValue– An asset metadata field contains an invalid value.
- required– A required asset metadata field is missing.
 assets.updateassets.patch- forbidden– The asset being updated is not owned by the partner attempting to complete the update.
- invalidValue– An asset metadata field contains an invalid value.
- notFound– The asset is being associated with a season asset or show asset that cannot be found.
- required– A required asset metadata field is missing.
 claims.insert- badRequest– The request attempts to claim a video, but the claim is not allowed.
 ownership.updateownership.patch- badRequest– The request defines total ownership greater than 100 percent within a territory.
 policies.insertpolicies.patchpolicies.update- conflictingPolicyRules– The policy contains conflicting policy rules.
 
- 
    The new errors page lists errors that the API can return. The page includes general errors, which might occur for multiple different API methods, as well as method-specific errors. 
January 18, 2013
This update contains the following changes:
- 
    The newly documented videoAdvertisingOptions.getEnabledAdsmethod lets you retrieve details about the types of ads that are allowed for a specified partner- or user-uploaded video.
- 
    The definition of the assetSearch.listmethod'sownershipRestrictionparameter has been updated to note that the default parameter value ismine, which indicates that the API should only retrieve assets owned by the current user.
- 
    The assets.listmethod's documentation reflects the following changes:- 
        The idparameter is now required.
- 
        The newly supported fetchMatchPolicyparameter lets you indicate whether the API request should also retrieve the match policy that you have set for the asset.
- 
        The newly supported fetchOwnershipparameter lets you indicate whether the API request should also retrieve ownership data for the asset.
- 
        The list of assets that the API returns no longer contains pagination data. As a result, the nextPageTokenproperty and thepageInfoobject have both been removed from the API response. ThepageInfoobject contained thetotalResults,resultsPerPage, andstartIndexproperties.
 
- 
        
- 
    The claimsresource documentation has been updated to note that you must specify a policy when creating a claim. (YouTube does not currently apply your default usage policy if an inserted claim does not specify a policy, though the documentation previously indicated that that did happen.)
- 
    The policyresource'shasUnpublishedDraftproperty has been deprecated.
- 
    The policies.listmethod's newly supportedidparameter lets you identify the saved policies that the API request should retrieve. Only policies belonging to the currently authenticated content owner can be retrieved.
- 
    The definition of the releaseClaimsparameter for both thereferences.patchandreferences.updatemethod has been updated to note that the parameter only works when the claim's status is being updated toinactive. In that case, you can also set thereleaseClaimsparameter's value totrueto release all match claims produced by the reference.
- 
    The references.patchandreferences.updatemethods have both been updated to note that you must specify the reference's status when performing either of these operations.
- 
    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.listnotFoundUnavailableThe asset for which you are trying to retrieve the match policy cannot be found. claims.getnotFoundUnavailableThe claim that you are trying to retrieve cannot be found. ownership.patchinvalidValueUnavailableThe ownership data that you provided contains an invalid value. ownership.updateinvalidValueUnavailableThe ownership data that you provided contains an invalid value.