Resource List

The features described in this article are available only to partners who use YouTube's Content Manager to manage their copyrighted content.

The <ResourceList> contains the details about the primary resources (sound recordings or videos) and secondary resources (associated artwork) that make up the delivery. On a 10-track Audio Album for example, resource references A1 through A10 are the sound recordings and A11 is the album artwork. YouTube uses the album artwork as a key visual element in the generated Art Tracks for recordings from this album. Single Resource Release feeds should not contain any artwork, in accordance with the DDEX profile.

YouTube does not support per-territory metadata in the <ResourceList>. If the message includes multiple versions of the metadata for a track, YouTube uses only the version that appears first in the message.

YouTube's proprietary elements

Expand the section below for a quick look at YouTube's proprietary elements. Use the corresponding sections throughout this page for more detailed info and examples.

YouTube's proprietary elements

The following elements are part of the YouTube proprietary namespace:

Sound recordings

<SoundRecordingId>
      [...]
      <!--- Sets the custom ID on the Sound Recording asset -->
      <ProprietaryId
      Namespace="YOUTUBE:SR_CUSTOM_ID">sound_recording_id_1234</ProprietaryId>

      <!--- Identifies the Sound Recording asset to be updated by Asset ID -->
      <ProprietaryId 
      Namespace="YOUTUBE:SR_ASSET_ID">A222222222222222</ProprietaryId>

      <!--- Adds an asset label to the Sound Recording asset -->
      <ProprietaryId
      Namespace="YOUTUBE:SR_ASSET_LABEL">sr_asset_label</ProprietaryId>
      [...]
</SoundRecordingId>

Art tracks

<SoundRecordingId>
      [...]
      <!--- Sets the custom ID on the Art Track asset -->
      <ProprietaryId
      Namespace="YOUTUBE:AT_CUSTOM_ID">art_track_id_1234</ProprietaryId>

      <!--- Adds one asset label to the Art Track asset -->
      <ProprietaryId
      Namespace="YOUTUBE:AT_ASSET_LABEL">at_asset_label</ProprietaryId>
      [...]
</SoundRecordingId>

Music videos

<VideoId>
      [...]
      <!--- Sets the custom ID on the Music Video asset -->
      <ProprietaryId
      Namespace="YOUTUBE:MV_CUSTOM_ID">music_video_id_1234</ProprietaryId>

      <!--- Identifies the Music Video asset to be updated by Asset ID -->
      <ProprietaryId 
      Namespace="YOUTUBE:MV_ASSET_ID">A333333333333333</ProprietaryId>

      <!--- Adds one asset label to the Music Video asset -->
      <ProprietaryId     
      Namespace="YOUTUBE:MV_ASSET_LABEL">mv_asset_label1</ProprietaryId>

      <!--- Updates a specific Music Video asset -->
      <ProprietaryId  Namespace="YOUTUBE:VIDEO_ID">9bZkp7q19f0</ProprietaryId>

      <!-- Specifies the channel to upload the video in  -->
      <ProprietaryId Namespace="YOUTUBE:CHANNEL_ID">MyChannel</ProprietaryId>
      [...]
</VideoId>

Web videos

<VideoId>
      [...]
      <!--- Sets the custom ID on the Web Video asset -->
      <ProprietaryId
      Namespace="YOUTUBE:WEB_CUSTOM_ID">web_video_id_1234</ProprietaryId>

      <!--- Identifies the Web asset to be updated by Asset ID -->
      <ProprietaryId Namespace="YOUTUBE:Web_ASSET_ID">A222222222222222
      </ProprietaryId>

      <!--- Adds one asset label to the Web Video asset -->
      <ProprietaryId     
      Namespace="YOUTUBE:WEB_ASSET_LABEL">web_asset_label1</ProprietaryId>

      <!--- Updates a specific Web Video asset -->
      <ProprietaryId  Namespace="YOUTUBE:VIDEO_ID">9bZkp7q19f0</ProprietaryId>

      <!-- Specifies the channel to upload the video in  -->
      <ProprietaryId Namespace="YOUTUBE:CHANNEL_ID">MyChannel</ProprietaryId>
      [...]
</VideoId>

Playlists

<CollectionId>
      [...]
      <ProprietaryId Namespace="YOUTUBE:PLAYLIST_ID">PLONRDPtQh-FLMXFMM-
      SJHySwjpidVXmzw</ProprietaryId>
      [...]
</CollectionId>

Sound recording resources

Sound recording IDs

YouTube requires every <SoundRecording> element to include a valid ISRC code. If you also track recordings using a proprietary ID code, you can include the <ProprietaryId> element as a sibling to the <ISRC> element inside the <SoundRecordingId>. The format of the <ProprietaryId> element is:

<SoundRecordingId>
      <ISRC>USRE10400888</ISRC>
      <ProprietaryId Namespace="DPID:your_DPid">custom_id_1234</ProprietaryId>
</SoundRecordingId>

Both your DDEX Party ID (Namespace) and the proprietary ID for the track are required. YouTube stores the proprietary ID value in the custom_id field of the sound recording asset (for Content ID deliveries) and the Art Track asset (for YouTube Premium deliveries). For example, the XML above results in an asset with ISRC USRE10400888 and a  custom_id value of custom_id_1234.

To add different custom_id values to the Sound Recording and Art Track asset, you can use the dedicated "YOUTUBE:SR_CUSTOM_ID" and "YOUTUBE:AT_CUSTOM_ID" namespaces:

<SoundRecordingId>
      <ISRC>USRE10400888</ISRC>
      <!--- Sets the custom ID on the Sound Recording asset -->
      <ProprietaryId
      Namespace="YOUTUBE:SR_CUSTOM_ID">sound_recording_id_1234</ProprietaryId>
      <!--- Sets the custom ID on the Art Track asset -->
      <ProprietaryId
      Namespace="YOUTUBE:AT_CUSTOM_ID">art_track_id_1234</ProprietaryId>
</SoundRecordingId>

If you are sending an update to an existing Sound Recording asset, you can identify the asset by asset ID by using the dedicated “YOUTUBE:SR_ASSET_ID” namespace:

<SoundRecordingId>
      <ISRC>USRE10400888</ISRC>
      <!--- Identifies the Sound Recording asset to be updated by Asset ID -->
      <ProprietaryId 
      Namespace="YOUTUBE:SR_ASSET_ID">A111111111111111</ProprietaryId>
</SoundRecordingId>

To add asset labels to the Sound Recording and Art Track assets, you can use the dedicated ”YOUTUBE:SR_ASSET_LABEL” and ”YOUTUBE:AT_ASSET_LABEL” namespaces:

<SoundRecordingId>
      <ISRC>USRE10400888</ISRC>
      <!--- Adds two asset labels to the Sound Recording asset -->
      <ProprietaryId
      Namespace="YOUTUBE:SR_ASSET_LABEL">sr_asset_label1</ProprietaryId>
      <ProprietaryId
      Namespace="YOUTUBE:SR_ASSET_LABEL">sr_asset_label2</ProprietaryId>
      <!--- Adds one asset label to the Art Track asset -->
      <ProprietaryId
      Namespace="YOUTUBE:AT_ASSET_LABEL">at_asset_label</ProprietaryId>
</SoundRecordingId>

Sound recording metadata

For guidelines on how to populate the Sound Recording metadata, please refer to the Music Metadata Style Guide from the Music Business Association. The metadata from the <SoundRecording> tag is used for:

  • Content ID deliveries: metadata stored on the Sound Recording asset.
  • YouTube Premium deliveries: Art Track creation and metadata stored on the Art Track asset.

Sound recording ownership

Sound Recording ownership is obtained from the <RightsController> tag under the <SoundRecording> element. As per the DDEX standard, the <RightsController> tag indicates where you own exclusive rights for the recording. This is separate from the Deals provided, but you should only provide Content ID deals for territories in which you own exclusive rights.
To add ownership to a SoundRecording asset, you must send either a Single Resource Release feed, or an Audio Album feed that has YouTube_ContentID as a MessageRecipient.

Sound Recording ownership is applied using the <RightsController> tag under the <SoundRecording> element. The <PartyId> must match that of the <MessageSender> tag (or the <SentOnBehalfOf> tag, if provided).

The XML example below specifies that ABC Label owns the Sound Recording in South Africa:

<ResourceList>
    <SoundRecording>
        [...]
        <ResourceReference>A1</ResourceReference>
        [...]
        <SoundRecordingDetailsByTerritory>
            <!--Specifies the territory/territories in which ownership should
            be applied. -->
            <TerritoryCode>ZA</TerritoryCode>
            [...]
            <!-- This section sets the ownership of the Sound Recording. -->
            <RightsController>
                <PartyName>
                    <FullName>ABC Label</FullName>
                </PartyName>
                ​<PartyId>PADPIDAZZZZXXXXXXU</PartyId>
                <RightsControllerRole>RightsController</RightsControllerRole>
                <RightSharePercentage>100.00</RightSharePercentage>
            </RightsController>
        [...]
        </SoundRecordingDetailsByTerritory>
    [...]
    </SoundRecording>
</ResourceList>

Art Track ownership

Art Tracks are created based on licensed (non-exclusive) streaming rights. Therefore, Art Track assets are never used for Content ID and the ownership on the Art Track asset will be inferred from the Deal. The <RightsController> element is ignored in feeds that only create Art Tracks.

 Music video resources

Video type

The type of video can be specified using <VideoType>.  The allowed Music Video types are:

  • LongFormMusicalWorkVideo
  • ShortFormMusicalWorkVideo

Music video IDs

YouTube requires every Music Video <Video> element to include a valid ISRC code. This ISRC code must be different from the one used for the sound recording as per IFPI guidelines. If you also track video resources using a proprietary ID code, you can include the <ProprietaryId> element as a sibling to the <ISRC> element inside the <VideoId>. The format of the <ProprietaryId> element is:

<VideoId>
      <ISRC>USRE10400889</ISRC>
      <ProprietaryId Namespace="DPID:your_DPid">custom_id_1234</ProprietaryId>
</VideoId>

YouTube stores the proprietary ID value in the custom_id field of the music video asset (for Content ID deliveries). For example, the XML above results a Music Video asset with ISRC USRE10400889 and a custom_id value of custom_id_1234.

To add a custom_id value to the Music Video asset, you can use the dedicated "YOUTUBE:MV_CUSTOM_ID" namespace:

<VideoId>
      <ISRC>USRE10400889</ISRC>
      <!--- Sets the custom ID on the Music Video asset -->
      <ProprietaryId
      Namespace="YOUTUBE:MV_CUSTOM_ID">music_video_id_1234</ProprietaryId>
</VideoId>

If you are sending an update to an existing Music Video asset, you can identify the asset by asset ID by using the dedicated “YOUTUBE:MV_ASSET_ID” namespace:

<VideoId>
      <ISRC>USRE10400889</ISRC>
      <!--- Identifies the Music Video asset to be updated by Asset ID -->
      <ProprietaryId 
      Namespace="YOUTUBE:MV_ASSET_ID">A222222222222222</ProprietaryId>
</VideoId>

To add asset labels to the Music Video asset, you can use the dedicated "YOUTUBE:MV_ASSET_LABEL" namespace:

<VideoId>
      <ISRC>USRE10400889</ISRC>
      <!--- Adds two asset labels to the Music Video asset →
      <ProprietaryId     
      Namespace="YOUTUBE:MV_ASSET_LABEL">mv_asset_label1</ProprietaryId>
      <ProprietaryId  
      Namespace="YOUTUBE:MV_ASSET_LABEL">mv_asset_label2</ProprietaryId>
</VideoId>

To specify the channel into which the video should be uploaded, you can use the dedicated "YOUTUBE:CHANNEL_ID" namespace:

<VideoId>
     <ISRC>USRE10400889</ISRC>
     <!-- Specifies the channel to upload the video in  -->
     <ProprietaryId Namespace="YOUTUBE:CHANNEL_ID">MyChannel</ProprietaryId>
</VideoId>

If no channel is specified in the feed, then the video will be uploaded in the default channel configured in your uploader account.

To update a previously uploaded video, you can use the dedicated "YOUTUBE:VIDEO_ID" namespace:

<VideoId>
      <ISRC>USRE10400889</ISRC>
      <ProprietaryId  Namespace="YOUTUBE:VIDEO_ID">9bZkp7q19f0</ProprietaryId>
</VideoId>

Music video metadata

For guidelines on how to populate Music Video metadata in DDEX, please refer to the Music Metadata Style Guide from the Music Business Association. The following elements from the <Video> tag are used to populate video and metadata on YouTube:

Video: Title <VideoDetailsByTerritory>
    [...]
    <Title TitleType="DisplayTitle">
        <TitleText>A little bit of Foo</TitleText>
    </Title>
    [...]
</VideoDetailsByTerritory>
Video: Tags/Keywords <VideoDetailsByTerritory>
    [...]
    <Keywords>Keyword1</Keywords>
    <Keywords>Keyword2</Keywords>
    [...]
</VideoDetailsByTerritory>
Asset: Song <Video>
   [...]
    <ReferenceTitle>
        <TitleText>A little bit of Foo</TitleText>
    </ReferenceTitle>
   [...]
</Video>

 
Asset: Label Name <VideoDetailsByTerritory>
    [...]
    <LabelName>Test Label</LabelName>
    [...]
</VideoDetailsByTerritory>
Asset: Artists

<VideoDetailsByTerritory>
    [...]
   <DisplayArtist SequenceNumber="1">
        <PartyName>
            <FullName>Jonny and the Føøbars</FullName>
        </PartyName>
        <ArtistRole>MainArtist</ArtistRole>
    </DisplayArtist>

    <DisplayArtist SequenceNumber="2">
        <PartyName>
            <FullName>Some Other Artist</FullName>
        </PartyName>
        <ArtistRole>MainArtist</ArtistRole>
    </DisplayArtist>
    [...]
</VideoDetailsByTerritory>

Asset: Genre <VideoDetailsByTerritory>
    [...]
    <Genre>
        <GenreText>Hip Hop</GenreText>
    </Genre>
    [...]
</VideoDetailsByTerritory>

 

The video description is populated from the <Release>, not the <Video>. See the Release List section for more information.

Music video ownership

Music Video asset ownership is obtained from the <RightsController> tag under the <Video> element. As per the DDEX standard, the <RightsController> tag indicates where you own exclusive rights for the video. This is separate from the Deals provided, but you should only provide Content ID deals for territories in which you own exclusive rights.

Music Video asset ownership is applied using the <RightsController> tag under the <Video> element. The <PartyId> must match that of the <MessageSender> tag (or the <SentOnBehalfOf> tag, if provided).

The XML example below specifies that ABC Label owns the Music Video asset in South Africa:

<ResourceList>
    <Video>
        [...]
        <ResourceReference>A1</ResourceReference>
        [...]
        <VideoDetailsByTerritory>
            <!--Specifies the territory/territories in which ownership should be applied. -->
            <TerritoryCode>ZA</TerritoryCode>
            [...]
            <!-- This section sets the ownership of the Music Video asset. -->
            <RightsController>
                <PartyName>
                    <FullName>ABC Label</FullName>
                </PartyName>
                <PartyId>PADPIDAZZZZXXXXXXU</PartyId>
                <RightsControllerRole>RightsController</RightsControllerRole>
                <RightSharePercentage>100.00</RightSharePercentage>
            </RightsController>
        [...]
        </VideoDetailsByTerritory>
    [...]
    </Video>
</ResourceList>

Web video resources

Video type

The type of video can be specified using <VideoType>. The allowed web video types are:

  • LongFormNonMusicalWorkVideo
  • ShortFormNonMusicalWorkVideo

Web video IDs

If you track video resources using a proprietary ID code, you can include the <ProprietaryId> element as a sibling to the <ISRC> element inside the <VideoId>. The format of the <ProprietaryId> element is:

<VideoId>
      <ProprietaryId Namespace="DPID:your_DPid">custom_id_1234</ProprietaryId>
</VideoId>

YouTube stores the proprietary ID value in the custom_id field of the web video asset (for Content ID deliveries). For example, the XML above results a Web asset with a custom_id value of custom_id_1234.

To add a custom_id value to the Web asset, you can use the dedicated "YOUTUBE:WEB_CUSTOM_ID" namespace:

<VideoId>
      <!--- Sets the custom ID on the Web asset -->
      <ProprietaryId Namespace="YOUTUBE:WEB_CUSTOM_ID">web_video_id_1234</ProprietaryId>
</VideoId>

If you are sending an update to an existing Web asset, you can identify the asset by asset ID by using the dedicated “YOUTUBE:WEB_ASSET_ID” namespace:

<VideoId>
      <!--- Identifies the Web asset to be updated by Asset ID -->
      <ProprietaryId Namespace="YOUTUBE:Web_ASSET_ID">A222222222222222</ProprietaryId>
</VideoId>

To add asset labels to the Web asset, you can use the dedicated "YOUTUBE:WEB_ASSET_LABEL" namespace:

<VideoId>
      <!--- Adds two asset labels to the Web asset →
      <ProprietaryId     
      Namespace="YOUTUBE:WEB_ASSET_LABEL">web_asset_label1</ProprietaryId>
      <ProprietaryId  
      Namespace="YOUTUBE:WEB_ASSET_LABEL">web_asset_label2</ProprietaryId>
</VideoId>

To specify the channel into which the video should be uploaded, you can use the dedicated "YOUTUBE:CHANNEL_ID" namespace:

<VideoId>
     <!-- Specifies the channel to upload the video in  -->
     <ProprietaryId Namespace="YOUTUBE:CHANNEL_ID">MyChannel</ProprietaryId>
</VideoId>

If no channel is specified in the feed, then the video will be uploaded in the default channel configured in your uploader account.

To update a previously uploaded video, you can use the dedicated "YOUTUBE:VIDEO_ID" namespace:

<VideoId>
      <ProprietaryId  Namespace="YOUTUBE:VIDEO_ID">9bZkp7q19f0</ProprietaryId>
</VideoId>

Web video metadata

The following elements from the <Video> tag are used to populate video and metadata on YouTube:

Video: Title <VideoDetailsByTerritory>
    [...]
    <Title TitleType="DisplayTitle">
        <TitleText>A little bit of Foo</TitleText>
    </Title>
    [...]
</VideoDetailsByTerritory>
Video: Tags/Keywords <VideoDetailsByTerritory>
    [...]
    <Keywords>Keyword1</Keywords>
    <Keywords>Keyword2</Keywords>
    [...]
</VideoDetailsByTerritory>

 

The video description is populated from the <Release>, not the <Video>. See the Release List section for more information.

Web video ownership

Web asset ownership is obtained from the <RightsController> tag under the <Video> element. As per the DDEX standard, the <RightsController> tag indicates where you own exclusive rights for the video. This is separate from the Deals provided, but you should only provide Content ID deals for territories in which you own exclusive rights.

Web asset ownership is applied using the <RightsController> tag under the <Video> element. The <PartyId> must match that of the <MessageSender> tag (or the <SentOnBehalfOf> tag, if provided).

The XML example below specifies that ABC Label owns the Web asset in South Africa:

<ResourceList>
    <Video>
        [...]
        <ResourceReference>A1</ResourceReference>
        [...]
        <VideoDetailsByTerritory>
            <!--Specifies the territory/territories in which ownership should be applied. -->
            <TerritoryCode>ZA</TerritoryCode>
            [...]
            <!-- This section sets the ownership of the Web asset. -->
            <RightsController>
                <PartyName>
                    <FullName>ABC Label</FullName>
                </PartyName>
                <PartyId>PADPIDAZZZZXXXXXXU</PartyId>
                <RightsControllerRole>RightsController</RightsControllerRole>
                <RightSharePercentage>100.00</RightSharePercentage>
            </RightsController>
        [...]
        </VideoDetailsByTerritory>
    [...]
    </Video>
</ResourceList>

Set your video's audience 

Set your video's audience

Regardless of your location, you’re legally required to comply with the Children’s Online Privacy Protection Act and/or other laws. You’re required to tell us that your videos are made for kids if you make kids content. 

Set a video as made for kids or not

To upload a non-Art Track video (i.e. Music Video or Web Video) as made for kids or not made for kids, use the <AvRating> element with either MadeForKids or NotMadeForKids following this format:

<VideoDetailsByTerritory>
    <TerritoryCode>Worldwide</TerritoryCode>
    [...]
        <AvRating>
            <RatingText>MadeForKids</RatingText>
            <RatingAgency Namespace="YOUTUBE">UserDefined</RatingAgency>
        </AvRating>
    [...]
</VideoDetailsByTerritory>

The field is either optional or required, depending on the channel default you’ve chosen for the channel the video will be uploaded to.

Optional made for kids flag 

The made for kids flag is optional if the channel default for the channel you are uploading your video to is set to either:
  • “Yes, set this channel as made for kids. I always upload content that’s made for kids.” 
  • “No, set this channel as not made for kids. I never upload content that’s made for kids.”
Note: We’ll also use machine learning to help us identify videos that are clearly directed to young audiences. We trust you to set your audience accurately, but we may override your audience setting choice in cases of error or abuse. However, do not rely on our systems to set your audience for you because our systems may not identify content that the FTC or other authorities consider to be made for kids. If you need help determining whether or not your content is made for kids, check out this Help Center article or consult legal counsel.

If you've already set your audience for your video and YouTube detects error or abuse, you will see your video marked as “Made for kids - Set by YouTube". You won't be able to change your audience setting. If you disagree, you can use the “Send Feedback” button.

Required made for kids flag 

The made for kids flag is required if the channel default for the channel you are uploading your video to is set to:
  • “I want to review this setting for every video.” 
Note: We’ll also use machine learning to help us identify videos that are clearly directed to young audiences. We trust you to set your audience accurately, but we may override your audience setting choice in cases of error or abuse. However, do not rely on our systems to set your audience for you because our systems may not identify content that the FTC or other authorities consider to be made for kids. If you need help determining whether or not your content is made for kids, check out this Help Center article or consult legal counsel.

If you've already set your audience for your video and YouTube detects error or abuse, you will see your video marked as “Made for kids - Set by YouTube". You won't be able to change your audience setting. If you disagree, you can use the “Send Feedback” button.

Was this helpful?
How can we improve it?