Skip to main content

Resource Models

The Resource models represent different types of digital assets in DDEX messages, including sound recordings, music videos, images, and other media files.

Core Types​

SoundRecording​

Represents audio recordings and their metadata:

interface SoundRecording {
resourceId: string;
title: string;
duration?: Duration;
contributors?: Contributor[];
technicalDetails?: TechnicalSoundRecordingDetails;
rightsController?: Party[];
}

Image​

Represents visual assets like album artwork:

interface Image {
resourceId: string;
type: ImageType;
technicalDetails?: TechnicalImageDetails;
width?: number;
height?: number;
}

MusicVideo​

Represents video content:

interface MusicVideo {
resourceId: string;
title: string;
duration?: Duration;
technicalDetails?: TechnicalVideoDetails;
}

Technical Details​

Each resource type includes technical metadata specific to that format:

  • Audio: Sample rate, bit depth, codec information
  • Image: Dimensions, color space, format
  • Video: Frame rate, resolution, codec, aspect ratio

Relationships​

Resources are linked to:

  • Releases through resource references
  • Deals through usage rights
  • Parties through rights and contributor relationships

Usage Examples​

Accessing Resource Data​

const result = await parser.parse(xmlContent);

// Access sound recordings
const recordings = result.flat.resources.soundRecordings;
recordings.forEach(recording => {
console.log(recording.title, recording.duration);
});

// Access images
const images = result.flat.resources.images;
const artwork = images.find(img => img.type === 'FrontCoverImage');

Building with Resources​

const buildRequest = {
resources: {
soundRecordings: [{
resourceId: 'A123456789',
title: 'Example Track',
duration: 'PT3M45S',
technicalDetails: {
audioCodec: 'MP3',
bitrate: 320000,
sampleRate: 44100
}
}]
}
};

See Also​