Interface SourceDescription

Describes the configuration of a player's source.

interface SourceDescription {
    ads?: AdDescription[];
    analytics?: AnalyticsDescription[];
    contentProtection?: DRMConfiguration;
    hlsDateRange?: boolean;
    metadata?: MetadataDescription;
    poster?: string;
    sources?: Sources;
    textTracks?: TextTrackDescription[];
    timeServer?: string;
}

Hierarchy (view full)

Properties

List of AdDescriptions to be queued for playback.

analytics?: AnalyticsDescription[]

List of AnalyticsDescriptions to configure source-related properties for analytics connectors.

contentProtection?: DRMConfiguration

Content protection configuration.

hlsDateRange?: boolean

Whether the player should parse and expose date ranges from HLS playlists.

Default Value

false

Describes the metadata of a source.

poster?: string

The poster of the media source.

Remarks


- An empty string ('') clears the current poster.

sources?: Sources

One or more media resources for playback.

Remarks


- Multiple media sources should be used to increase platform compatibility. See examples below for important use cases.
- The player will try each source in the provided order.

Example

In this example, the player will first try to play the DASH source. This might fail if the browser does not support the Widevine or PlayReady CDM, for example on Safari. In that case, the player will try to play the HLS source instead.

[{
src: 'dash-source-with-drm.mpd'
contentProtection: {
widevine: {
licenseAcquisitionURL: 'https://license.company.com/wv'
},
playready: {
licenseAcquisitionURL: 'https://license.company.com/pr'
}
}
},{
src: 'hls-source-with-drm.m3u8',
contentProtection: {
fairplay: {
certificateURL: 'https://license.company.com/fp'
}
}
}]

Example

In this example, the player will first try to play the DASH source. This might fail if the browser does not support the Media Source Extensions API. In that case, the player will try to play the MP4 source instead, though without features such as adaptive bitrate switching.

[{
src: 'source.mpd'
},{
src: 'source.mp4'
}]
textTracks?: TextTrackDescription[]

List of text tracks to be side-loaded with the media source.

Remarks


- A source change will reset side-loaded text tracks.

timeServer?: string

The URL of a time server used by the player to synchronise the time in DASH sources.

Remarks


- The time server should return time in ISO-8601 format.
- Overrides the time server provided the DASH manifest's <UTCTiming>.
- All sources will use the time server. Alternatively, for one source use BaseSource.timeServer.