Understanding the YouTube DDEX feed
The articles listed to the right describe the YouTube Music DDEX feed format. The intended audience is YouTube music partners who want to create Art Tracks for their sound recordings.
The YouTube Music DDEX feed format conforms to Version 3.4 of the DDEX Electronic Release Notification (ERN) standard. It enables you to provide YouTube with releases (both new and “back catalog”), metadata updates, and the terms and conditions under which your sound recordings can be made available to YouTube users.
The articles describe specific requirements for the YouTube Music DDEX feed. For a general introduction to DDEX, see theMusic Metadata Style Guide from the Music Business Association. For details about the DDEX ERN 3.4 standard, seeddex.net.
Every DDEX ERN message includes four top-level elements:
<MessageHeader>
provides information about the message itself: a unique identification number, the sender and recipient, and a timestamp.<ResourceList>
contains the details about the sound recordings and associated artwork.<ReleaseList>
defines the releases that can be made from the resources in this message.<DealList>
defines the key commercial information for each release, such as which territories the release can be made available in, usage rights, and start date for each release.
<ReleaseId>
element.Preparing to upload DDEX files
To configure your account for DDEX uploads:
- Set up your account.Before YouTube can accept DDEX files from you, your partner representative needs to configure your account to accept DDEX files.
You need to provide your partner representative with your DDEX Party ID. If you don’t have a DDEX Party ID, you can apply for one at http://ddex.net/.
If you don’t already upload batches of content to YouTube, you’ll need to contact your partner representative to set up an SFTP or Aspera dropbox for you.
We recommend using a separate dropbox for DDEX ingestion apart from the one you may use for ContentID.
- Validate and upload test batches.To submit a test upload batch, set the
<MessageControlType>
in the message header toTestMessage
and copy the DDEX file to your dropbox. See Uploading content for details. When you’ve uploaded all of the files for the test, create a file whose name starts with the string “BatchComplete”, followed by any other characters and the file extension .xml. The presence of this file tells YouTube that the batch is ready.YouTube does not upload test messages, but only validates them. You don’t need to include the media files when you upload aTestMessage
for validation.Submit test batches for all cases that your service supports:
A full product delivery of a album release including the DDEX file, audio files, art files, and deal terms.
- Set
<ReleaseType>
to “Album”. <ReleaseResourceReferenceList>
should reference all of the delivered audio and album art resources.
A full product delivery of a single release including the DDEX file, audio files, art files, and deal terms.
- Set
<ReleaseType>
to “Single”.
A full product delivery of a multi-disc release including the DDEX file, audio files, art files, and deal terms.
- Set
<ReleaseType>
to “Album”. - The main release should contain multiple
<ResourceGroup>
s, each with a<SequenceNumber>
, corresponding to the multiple discs.
A full update, with new audio or image files as well as the updated DDEX file.
- Update both the message ID and timestamp.
- Provide additional metadata updates as necessary.
A metadata only update, with the media files not included and not referenced in the DDEX file.
YouTube supports only complete metadata updates. You must include all track metadata, including values that haven’t changed.- Delete the
<TechnicalSoundRecordingDetails>
and<TechnicalImageDetails>
section for each resource, since the files are not included.A common mistake is to remove the entire<Image>
block rather than just the<TechnicalImageDetails>
section within, and removing all references to it. This has the incorrect effect of removing the album art from the album entirely.
Two-phased delivery of a release. The first delivery includes the DDEX file, audio files, and art files, without the deal terms. The second delivery provides the deal terms.
- The first delivery includes the media files; the second delivery does not.
Send an update which contains the new track data and which adds the track to the appropriate
<Release>
.- Add new
<SoundRecording>
,<Release>
, and<ReleaseDeal>
composites for the new track. - Add the track to the main album
<Release>
, both under<ReleaseResourceReferenceList>
and in the<ResourceGroup>
defining the track sequence on the album. - Redeliver all of the tracks, not just the new track.
When the test messages validate without errors, change their
<MessageControlType>
toLiveMessage
, upload the associated media files, and repeat the upload process. - Set
- Review the test batches.After uploading the test batches, work with your partner representative to review the resulting assets. If the results are not what you expected, make any necessary adjustments and repeat the test.
- Complete end-to-end testing.Once your test batches look correct, deliver around 200 releases for end-to-end testing.
Message Header
The <MessageHeader>
provides information about the message itself: a unique identification number, the sender and recipient, and a timestamp.
DDEX Party IDs
The header identifies both the sender (you) and the recipient (YouTube) by their unique DDEX Party ID (DPid).
<MessageHeader>
<MessageThreadId>1</MessageThreadId>
<MessageId>9543BD3607862A82E04400144FEAB9A6</MessageId>
<MessageSender>
<PartyId>PADPIDAZZZZXXXXXXU</PartyId>
<PartyName>
<FullName>ABC Label</FullName>
</PartyName>
</MessageSender>
<MessageRecipient>
<PartyId>PADPIDA2013020802I</PartyId>
<PartyName>
<FullName>YouTube</FullName>
<PartyName>
</MessageRecipient>
<MessageCreatedDateTime>2011-02-03T09:57:14Z</MessageCreatedDateTime>
<MessageControlType>LiveMessage</MessageControlType>
</MessageHeader>
If you are delivering sound recordings for a third party, use the <SentOnBehalfOf>
element to provide the DPid of the third party. The third party must be a registered YouTube partner, and must already be linked to your YouTube Content Manager account (by your partner representative). All assets created will be linked to the third party’s account.
<MessageHeader>
<MessageThreadId>1</MessageThreadId>
<MessageId>9543BD3607862A82E04400144FEAB9A6</MessageId>
<MessageSender>
<PartyId>PADPIDAZZZZXXXXXXU</PartyId>
<PartyName>
<FullName>XYZ aggregator</FullName>
</PartyName>
</MessageSender>
<SentOnBehalfOf>
<PartyId>PADPIDAZZZZZZZZZZU</PartyId>
<PartyName>
<FullName>ACME label</FullName>
</PartyName>
</SentOnBehalfOf>
<MessageRecipient>
<PartyId>PADPIDA2013020802I</PartyId>
<PartyName>
<FullName>YouTube</FullName>
<PartyName>
</MessageRecipient>
<MessageCreatedDateTime>2011-02-03T09:57:14Z</MessageCreatedDateTime>
</MessageHeader>
Live Messages and Test Messages
The <MessageControlType>
element specifies whether YouTube should process the current DDEX message (LiveMessage
) or should only validate it (TestMessage
). The best practice is to submit a series of test messages before sending live messages; for more information, see Preparing to upload DDEX files.
TestMessage
for validation.Resource List
The <ResourceList>
contains the details about the sound recordings and associated artwork that make up the delivery. Resource references A1, A2, A3 and so on define the tracks included in an album-level release. The track metadata includes its ISRC code, title, artist, and label. The <ResourceList>
can include up to 1000 <SoundRecording>
elements.
The final resource reference is the album artwork. On a 10-track 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.
<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 requires every <SoundRecording>
element to include its 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:
<ProprietaryId Namespace="DPID:your_DPid">Your_track_ID</ProprietaryId>
Both your DDEX Party ID (your_DPid) and the proprietary ID for the track (your_track_ID) are required. YouTube stores the proprietary ID value in the custom_id field of the sound recording asset for this ISRC. For example, the code below results in a sound recording asset with a custom_id value of 1234:
<SoundRecordingId>
<ISRC>USRE10400888</ISRC>
<ProprietaryId Namespace="DPID:PADPIDAZZZZXXXXXXU">1234</ProprietaryId>
</SoundRecordingId>
<ProprietaryID>
element for any of those resources, YouTube ignores it.YouTube does not use every possible DDEX metadata element. The example below shows the elements that YouTube uses; if you include other elements, YouTube ignores them.
Release List
The <ReleaseList>
defines the releases that can be made from the resources in this message. For example, a message containing 10 sound recordings can normally be released as a 10-track album and as 10 individual tracks (assuming the relevant rights). Each available release is represented by a <Release>
element with a unique release reference. In this example, the album release is represented by a <Release>
with a release reference R0, and each individual track by a<Release>
with release reference R1, R2, and so on through R10.
<ReleaseList>
. If the message includes multiple versions of the metadata for a release, YouTube uses only the version that appears first in the message.<Release>
(with a <ReleaseType>
ofTrackRelease
) for each track.Each <Release>
element lists the resources included in the release, identifying each resource using its<ResourceReference>
from the <ResourceList>
. The <Release>
also defines the sequence of tracks, artist and title information, keywords, publishing and copyright credits, and the release date. YouTube uses some of this metadata to create the Art Tracks for the sound recording resources; see Creating Art Tracks from DDEX files for details.
Art Track ownership
YouTube determines the ownership for Art Tracks based on the <OriginalReleaseDate>
. If you specify an<OriginalReleaseDate>
for <TerritoryCode>Worldwide</TerritoryCode>
, YouTube uses that date; if you only specify an <OriginalReleaseDate>
for specific territories, YouTube uses the earliest release date across territories. If you don’t include any <OriginalReleaseDate>
, YouTube uses December 31 of the year specified in the<PLine>
element for the track, or the <PLine>
for the album if the track doesn’t have one.
The example below shows the album-level release for a 10 track album, plus the release for one of the individual tracks.
Deal List
The <DealList>
defines the key commercial information for each release, such as which territories the release can be made available in, usage rights, and the start date for each release. Each <ReleaseDeal>
element defines the deals for a release from the <ReleaseList>
, which is referenced by its <ReleaseReference>
.
Since YouTube streams tracks one at a time, it only processes deals for individual tracks; that is, for releases whose<ReleaseType>
is TrackRelease
. The <DealTerms>
for the track must grant YouTube rights for subscription and advertisement-supported streaming; that is, the terms must include two <CommercialModelType>
elements (SubscriptionModel
and AdvertisementSupportedModel
) with the <UseType>
of Stream
or OnDemandStream
. YouTube ignores any deals for other release types and any other deal terms.
If the <DealTerms>
don’t specify a start date for the validity period, the deal becomes valid immediately. If the<DealTerms>
don’t specify an end date, the deal is valid indefinitely.
Takedowns
To issue a takedown notification for a track, send YouTube a DDEX message with a <TakeDown>
element in the<DealTerms>
for the affected track.
Example
<DealList>
<ReleaseDeal>
<DealReleaseReference>R1</DealReleaseReference>
<Deal>
<DealTerms>
<TakeDown>True</TakeDown>
<TerritoryCode>US</TerritoryCode>
<ValidityPeriod>
<StartDate>2010-05-18</StartDate>
</ValidityPeriod>
</DealTerms>
</Deal>
</ReleaseDeal>
</DealList>
DDEX reference resources
This spreadsheet lists every DDEX data element we accept in the feed as well as allowed values.
The message samples demonstrate how to communicate a new album release and a take down notification.
<ReleaseId>
element.For more information on Multi Channel Network’s and YouTube how to videos please check back weekly or subscribe here.