Understand YouTube rights management
The YouTube system for managing your intellectual property consists of three major components:
- The YouTube rights management system identifies the owners and administrators of your intellectual property and defines the policies used to enforce your rights
- Content ID automatically scans YouTube videos for content that matches your intellectual property and applies the defined rights policy to the matching video
- YouTube videos are the (optional) public representation of your intellectual property, available to users on youtube.com
When you upload a piece of intellectual property to YouTube, you need to create a representation of it in each of these components separately. In other words, a single piece of intellectual property has up to three representations in the YouTube system:
- An asset is the representation of your intellectual property in the rights management system. You specify ownership and rights information as part of the asset.
- A reference is the representation of your intellectual property for Content ID matching. You provide a digital media file that Content ID compares to uploaded video content.
- A video is the representation of your intellectual property on youtube.com. The video’s metadata describes the content and specifies how it appears on youtube.com. The video uses the same media file as a reference.
The asset is the heart of the system, the object with which the other objects are associated. You must create an asset for every piece of intellectual property; references and videos are optional.
You link references to assets by defining a relationship between the reference file and the asset. An asset can have more than one reference associated with it. For example, a movie asset could have separate references with 16:9 and 4:3 aspect ratios.
You link videos to assets by claiming the video on behalf of the asset. You claim videos that you upload, and may also claim other users’ videos when they include content that matches your asset.
When using the YouTube Content and Rights Administration feed to upload your intellectual property, you create assets, references, videos, and the links between them. You also create other supporting objects, such as:
- Ownership objects provide information about the owner(s) of an asset or group of assets, such as the percentage of the asset that is owned and the territories where the asset is owned. You use ownership objects to declare who owns the rights to your assets.
- Rights policy objects define the conditions and rules for monetizing claimed videos. For example, you could define a policy that displays advertisements to viewers in the United States but only tracks viewers in the rest of the world. You associate policies with assets.
See Structuring the content feed file for more information about uploading your content.
Structuring the content feed file
The YouTube content feed format provides a means of creating or updating your content and policies in the YouTube rights administration system. It is an XML-based format.
The content feed XML file provides instructions for a YouTube upload. In most cases, you upload the XML file along with the digital media files for a new or existing asset. A content feed XML file can provide data for up to 100 assets (and a maximum size of 1 Mb), although we recommend creating separate XML files for each asset.
A YouTube content feed consists of a top-level <feed> element that contains one or more of the child elements listed below. You use the <relationship> tag to associate two or more items in the feed; for example, you define a relationship between an <asset> and a <file> to create a reference. Each of the feed components listed below is used in one or more different types of relationships; see Defining relationships for details.
- An <asset> tag contains metadata that identifies and describes an asset.
- A <file> tag contains the location of a file to use as a reference and, possibly, a video as well. You create a reference by defining a relationship between a <file> and an <asset>; see Creating references for details.
- A <reference> tag updates a previously created reference.
- A <video> tag creates or updates a YouTube video. A video is associated with exactly one reference file, but a reference file is not always associated with a video.
- A <claim> tag links an uploaded video to an asset that the video matches. It also identifies a rights administrator who controls the asset and the policy that the administrator wants to enforce for the asset. Finally, the claim indicates whether the administrator is claiming the audio, visual, or audiovisual portion of the video’s content.
- An <ownership> tag contains information about the owner(s) of an asset or group of assets. This tag also contains other ownership data, such as the percentage of the asset that is owned and the territories where the asset is owned. For compositions, each <owner> tag identifies the name of a publisher administering rights for the composition in the United States.
- A <rights_admin> tag is required to set a policy for an asset. It indicates whether an associated policy applies to partner-uploaded assets or the user-uploaded videos that match those assets.
- A <rights_policy> tag contains rules that explain how a rights holder administers an asset. Rules are comprised of match conditions and watch conditions that specify the circumstances under which a rights owner wants its content to be available on YouTube or blocked from appearing on YouTube.
- The <audioswap> tag is used to identify files that will be included in the AudioSwap program. This tag, which is only used if you are including sound recordings in YouTube’s AudioSwap program, only needs to appear once in each feed.
- A <video_breaks> tag contains a list of times when mid-roll, in-stream ads could run during a specific video. You must specify video breaks for a video if you want to run mid-roll ads for a video.If you are using YouTube’s partner ad serving feature, which lets you use a third-party ad server to forecast, sell, traffic and report on in-stream ads, the <video_breaks> tag will also identify the third-party platform and provide ad targeting information for each ad break.
- A <content_rating> tag contains information that can be used to categorize the content of a video in the absence of an official rating, such as a Motion Picture Association of America (MPAA) rating. If an episode or movie asset does have an official rating, you can use the <rating> tag, which is a subtag of <asset>, to specify that rating.
- An <ad_policy> tag contains settings that identify the types of ads that can be shown during a video or on a channel or video watch page. You can apply the settings to one or more videos.
- A <playlist> tag contains information about a playlist that you want to create, update, or delete. There are several ways to update a playlist, including changing the playlist’s name, adding videos to the playlist, and removing videos from the playlist.
- A <channel> tag sets the custom layout for a channel’s Browse view, which organizes channel content into customized sections that display videos from particular playlists or based on channel usage.
- A <relationship> tag creates an association between two or more items in the feed. Each of the feed components listed above is used in one or more different types of relationships.
Define relationships
A relationship associates an entity, such as an asset, a reference file, or a policy, with one or more related entities. The asset model diagram below helps to illustrate the function of content feed relationships.
The diagram shows how an asset is a combination of asset metadata, ownership data, reference material and embedded assets. In your content feed, however, these items appear as separate objects defined with separate tags: an <asset> tag contains asset metadata, an <ownership> tag contains ownership data, and a <file> tag identifies reference material. You use a relationship to tie these objects together.
There are two types of relationship:
- A “contains” relationship specifies that one asset in the relationship embeds the other item in the relationship. For example, a music video, television episode, or movie may contain a sound recording asset, and a sound recording contains a composition asset. A “contains” relationship is always a relationship between assets.
- An “associate” relationship creates a link between different types of objects. For example, this type of relationship allows you to unify asset metadata (<asset>), reference file(s) (<file>) and ownership data (<ownership>) into a single entity.
The default relationship type is the more flexible “associate”. For that reason, many of the sample relationships in this document omit the type attribute.
Defining “contains” relationships
You can define a “contains” relationship from the perspective of the parent asset or the child asset. If a particular asset is embedded in multiple parents, such as a composition used in multiple sound recordings, you can use <relationshiptype=”contained_by”> and specify the multiple parent assets as related items. The resulting parent-child relationship is the same regardless of which option you use in your feed.
To add child asset(s) to a parent asset:
- Use the tag <relationship type=”contains”>.
- Use exactly one <item> tag to identify the asset that embeds (contains) one or more other assets.
- Use one <related_item> tag to identify each embedded (or contained) asset.
To embed a child asset into multiple parent assets:
- Use the tag <relationship type=”contained_by”>.
- Use exactly one <item> tag to identify the asset that is contained within one or more other assets.
- Use one <related_item> tag to identify each asset that embeds the asset identified in the <item> tag.
If your feed includes information for new movie and trailer assets, the feed must define a “contains” relationship that identifies the movie that the trailer promotes. (The trailer contains content from the movie.) The example below shows a relationship that links a trailer and a movie.
<relationship type="contains"> <item path="/feed/asset[@tag='foo' and @type='trailer']"/> <related_item path="/feed/asset[@tag='foo']and @type='movie']"/> </relationship>
To link a new trailer with an existing movie, you must define an “associate” relationship between the video objects rather than a “contains” relationship between the assets.
<relationship> <item path="/feed/video[@tag='foo' and @type='trailer']"/> <related_item path="/external/video[@id='VIDEO_ID_1']"/> </relationship>
The relationship in the example below specifies that a television season contains a number of episodes. This example contains one item (the season asset) and several related items (the episode assets).
<relationship type="contains"> <item path="/feed/asset[title='Season Two']"/> <related_item path="/feed/asset[episode='23']"/> <related_item path="/feed/asset[episode='24']"/> <related_item path="/feed/asset[episode='25']"/> </relationship>
In the examples below, two different sound recordings contain the same composition. The examples show two alternative ways to define the relationship between the recordings and the composition.
The first example uses two relationships to link the composition to each sound recordings. Each relationship contains one item and one related item.
<relationship type="contains"> <item path="/feed/asset[isrc='USZZ99900001']"/> <related_item path="/external/asset[iswc='T3452468001']"/> </relationship> <relationship type="contains"> <item path="/feed/asset[isrc='USZZ32857251']"/> <related_item path="/external/asset[iswc='T3452468001']"/> </relationship>
The second example defines the relationship from the perspective of the composition (“contained_by”). It uses one relationship with two related items.
<relationship type="contained_by"> <item path="/feed/asset[iswc='T3452468001']"/> <related_item path="/external/asset[isrc='USZZ99900001']"/> <related_item path="/external/asset[isrc='USZZ32857251']"/> </relationship>
Defining “associate” relationships
An “associate” relationship links objects of different types. The effect of the relationship depends on the nature of the objects being related, as detailed in the table below.
To associate objects of different types:
- Use the tag <relationship type=”associate”>, or just <relationship>. without a type argument.
- Use one or more <item> tags to identify the object(s) that will then be associated with the related item(s).
- Use one <related_item> tag to identify each associated object.
Note that if a relationship specifies multiple <item>s, YouTube will view those items as a single entity for the purpose of the relationship. The pseudo-example below shows a <relationship> tag that defines two relationships, “AB1” and “AB2”:
<relationship type="associate"> <item path="A"/> <item path="B"/> <related_item path="1"/> <related_item path="2"/> </relationship>
The table below identifies the different kinds of “associate” relationships that your feed can define.
Type of entity (or entities) identified by <item> tag(s) | Type of entity identified by <related_item> tag(s) | Effect of relationship |
---|---|---|
<asset> | <file> | Each file identified as a related item is reference material for the asset. |
<asset> <reference_exclusions> |
<file> | The file identified as a related item is reference material for the asset. The time intervals identified in the <reference_exclusions> tag are not considered when determining Content ID matches for the reference. |
<reference_exclusions> | <reference> | The time intervals identified in the <reference_exclusions> tag are not considered when determining Content ID matches for the reference. |
<asset> | <video> | Use the content for the specified video to create a reference for the asset. Note: The video must have been uploaded to a YouTube user account that is linked to your content owner. |
<file> | <asset> <audioswap> |
Note: This option is only valid for sound recording assets.The file is reference material for the sound recording asset identified as a related item, and the sound recording is also included in YouTube’s AudioSwap program. |
<ownership> | <asset> | The ownership data applies to each asset identified as a related item. |
<rights_admin> <rights_policy> |
<asset> | The two <item> tags identify the administrator who administers rights for the asset as well as the policy that the administrator is applying for each asset identified as a related item.
|
<video> | <file> | The reference file content will be the content used for the related YouTube video.Replacing a video’s existing content: If the reference file is being associated with an existing video (that already has video content), and the file content depicts the same video, then the file content will replace the existing video content. As such, you can remove imperfections in the previous version of the video or switch to a nearly identical video that has a different resolution, aspect ratio, sound quality, etc. |
<video type=”trailer”> | <videotype=”movie”> | Associates a trailer with the movie that it promotes. |
<caption> <file> |
<video> | A caption track will be associated with the video. The <caption> tag contains the metadata for the caption track, and the <file> tag identifies the caption track itself. |
<caption> | <video> | A caption certification will be associated with the video. The <caption> tag contains a certification reason that explains why captions are unavailable for the video. |
<content_rating> | <video> | The YouTube Content Rating will be assigned to each video identified as a related item in the relationship. YouTube Content Ratings allow partners to identify the presence (or absence) of explicit language, violence and other potentially objectionable content in their videos. See YouTube content ratings for more information. |
<video_breaks> | <video> | The video breaks identify the times when mid-roll ads could run for the related video. If you are providing ad targeting information for a third-party ad server, then the <video_breaks> tag will also provide this targeting information for the video’s ad breaks. |
<ad_policy> | <video> | The ad policy applies to each video specified as a related item. |
<claim> <rights_admin> <rights_policy> <asset> |
<video> | The rights administrator claims each video specified as a related item. The video is specified as a match for the asset, and YouTube applies the rights policy. The claim indicates whether the administrator is claiming the audio, video or audiovisual portion of the video. |
Using XPath
Content feeds use XPath syntax to identify the items and related items in a relationship. You can specify an XPath that identifies an element or a group of elements in the current XML feed, or identify previously created entities – assets, references, etc. – stored in YouTube’s database.
Please keep the following rules in mind when constructing XPaths:
- YouTube may process XPaths that refer to stored entities before creating new items specified in a feed. As such, your feed should not use an XPath that refers to a stored entity if that entity is actually being created in the same feed.For example, if your feed creates a new asset, you should not use an external XPath that identifies that asset using its custom ID and asset type since that path could be processed before the new asset is actually created. Instead, use a path that identifies the asset as an item within the feed using either a tag attribute value, field values, or ordinal syntax.
- By assigning unique custom IDs to assets and specifying unique tag attribute values for entities specified in a feed, you can ensure that your XPaths will identify specific, individual items.
- YouTube supports much more of the XPath syntax for paths that identify items within a feed than for paths that identify stored entities.
The following instructions explain the supported syntax for XPaths in your feeds.
- Identifying items within a feedYouTube provides extensive XPath support for identifying items within a feed. The XPath for an item in a feed begins with /feed. The examples below demonstrate some of these different techniques:
- The tag attribute lets you assign values to uniquely identify each item in your feed. The XPaths in a relationship can then use the tag attribute values to identify the items that are included in that relationship. All child elements of <feed> can use the tag attribute, including <asset>, <file>, <ownership>, and so on.In the sample feed below, the provider uses the same tag attribute value to identify an asset, a reference file, and a YouTube video. This practice assumes that each asset has exactly one reference file, which the provider makes available as a YouTube video. (Each file must have a unique filename.)
<asset tag="foo.mpg"> ... </asset> <file tag="foo.mpg" type="video"> <filename>foo.mpg</filename> </file> <video tag="foo.mpg"> ... </video> <relationship> <item path="/feed/asset[@tag='foo.mpg']" /> <related_item path="/feed/file[@tag='foo.mpg']" /> </relationship> <relationship> <item path="/feed/file[@tag='foo.mpg']" /> <related_item path="/feed/video[@tag='foo.mpg']" /> </relationship>
- Field values let you identify items in a feed based on XML field values that may, or may not, be unique. The feed snippet below shows sample relationships that use field values to identify the relationship components:
<relationship> <item path="/feed/rights_admin[@type='match']" /> <item path="/external/rights_policy[@name='Block everywhere']" /> <related_item path="/feed/asset[@type='episode'][season='2'][show_custom_id='BC']" /> </relationship> <relationship> <item path="/feed/rights_admin[@type='match']" /> <item path="/external/rights_policy[@name='Monetize everywhere']" /> <related_item path="/feed/asset[@type='episode'][season='1'][show_custom_id='BC']" /> </relationship>
These relationships specify the following information:
- The first relationship sets the match policy to “Block everywhere” for all episodes in season 2 of a particular show.
- The second relationship sets the match policy to “Monetize everywhere” for all episodes in season 1 of the same show.
- Ordinal syntax lets you identify an item based on its position in the feed. The relationships in the XML snippet below associate the first <asset> element in the feed with the first and second <file> elements in the feed. It also associates the first <file> element with the first <video> element, and the second <file> element with the second <video> element.
<relationship> <item path="/feed/asset[1]" /> <related_item path="/feed/file[1]" /> <related_item path="/feed/file[2]" /> </relationship> <relationship> <item path="/feed/file[1]" /> <related_item path="/feed/video[1]" /> </relationship> <relationship> <item path="/feed/file[2]" /> <related_item path="/feed/video[2]" /> </relationship>
This practice may be useful if your code selects all of the information for an asset, including its metadata, reference files and YouTube video information, and then writes that information in the XML feed before proceeding to the next asset. The pseudo-code below demonstrates how this feed generation might work:
var assetCount = 0; var fileCount = 0; var videoCount = 0; var query = "select metadata_fields, files, video_data from DB for assets"; for asset in query->results { assetCount++; add asset metadata (<asset>) to feed; for file in asset's reference_files { fileCount++; add file information (<file>) to feed; add relationship to feed where asset XPath = "/file/asset[assetCount]" and file XPath = "/feed/file[fileCount]" if you are creating a YouTube video from the file { videoCount++; add video data (<video>) to feed add relationship to feed where file XPath = "/file/asset[fileCount]" and video XPath = "/feed/file[videoCount]" } } }
- The tag attribute lets you assign values to uniquely identify each item in your feed. The XPaths in a relationship can then use the tag attribute values to identify the items that are included in that relationship. All child elements of <feed> can use the tag attribute, including <asset>, <file>, <ownership>, and so on.In the sample feed below, the provider uses the same tag attribute value to identify an asset, a reference file, and a YouTube video. This practice assumes that each asset has exactly one reference file, which the provider makes available as a YouTube video. (Each file must have a unique filename.)
- Identifying other items in YouTube’s databaseYouTube feeds also let you identify entities that are stored in YouTube’s database. The following list identifies several use cases for identifying external entities:
- Specify that an existing asset embeds a newly defined asset.
- Update the metadata for an existing asset.
- Associate an additional reference file with an existing asset.
- Use a saved policy for a claim or as the default match or usage policy for a reference.
An XPath in your XML feed that identifies a stored entity – asset, saved policy, etc. – will begin with /external. The following list identifies the XPaths that your feed can use to identify stored entities:
- Assets
- /external/asset[@id=’ASSET_ID’] – YouTube assigns an asset ID to uniquely identify every asset. If a feed creates an asset, YouTube will provide the new asset ID in the status report for the feed.
- /external/asset[@custom_id=’CUSTOM_ID_FOR_ASSET’][@type=’ASSET_TYPE’] – This XPath identifies an asset using the custom ID that you provided for the asset as well as the asset type. You should only use this method to identify assets if your custom IDs uniquely identify your assets.
- References
- /external/reference[@id=’REFERENCE_ID’] – YouTube assigns a reference ID to uniquely identify every reference. If a feed creates a reference, YouTube will provide the new reference ID in the status report for the feed.
- Videos
- /external/video[@id=’VIDEO_ID’] – YouTube assigns a video ID to uniquely identify every YouTube video. If a feed creates a video, YouTube will provide the new video ID in the status report for the feed.
- Rights administrators
- /external/rights_admin[owner=’True’] – This XPath indicates that the rights administration rules used in a claim or relationship mirror the ownership rules specified for the asset identified in the claim or relationship.
- /external/rights_admin[owner=’True’][type=’RIGHTS_ADMIN_TYPE’] – This XPath indicates that, for either partner-uploaded or user-uploaded videos, the rights administration rules used in a claim or relationship mirror the ownership rules specified for the asset identified in the claim or relationship.
- Rights policy
- /external/rights_policy[name=’SAVED_POLICY_NAME’] – This XPath identifies a saved policy by the name that you have given to the policy. If you plan to identify saved policies in your XML feed, please ensure that your policies have unique names.
XML samples for external XPaths
The examples below demonstrate some common use cases for external XPaths:
- Using a saved policy as a default usage or match policyIn this example, the <relationship> tag identifies an asset that is being associated with a rights administrator and a saved policy, which is identified with an external XPath.
<relationship> <item path="/feed/rights_admin[1]"/> <item path="/external/rights_policy[@name='Monetize Everywhere']"/> <related_item path="/feed/asset[@tag='foo.mpg']"/> </relationship>
- Creating a claim with a saved policyIn this example, the <claim> tag identifies a video being claimed, the asset that matches the video, the administrator for the asset and the policy that the administrator is applying. The policy is a saved policy identified with an external XPath.
<claim type="audiovisual" asset="/feed/asset[@tag='foo.mpg']" video="/feed/video[@tag='foo.mpg']" rights_admin="/feed/rights_admin[@type='match']" rights_policy="/external/rights_policy[@name='Monetize Everywhere']"/>
For more information on Multi Channel Network’s and YouTube how to videos please check back weekly or subscribe here.