DRM Pre-Integration API

THEOplayer pre-integrates with the best-of-class DRM providers. Setting the integration attribute on your DRMConfiguration allows you to quickly set up an integration with one of our DRM partners of your choice. Depending on your preferred vendor from the list below, the integration attribute should have a specific value.

KeyOS

KeyOSDRMConfiguration

Setting a DRMConfiguration's integration flag to 'keyos' makes it a KeyOSDRMConfiguration. This interface is an extension of the regular DRMConfiguration but has the following extra and extended attributes:

Method Type Optional Description
customdata string no/yes This attribute is required if it is not specified in the separate KeyOSLicenseAcquisitionDescriptions for Widevine and Playready. Otherwise it is optional.
The value of this attribute should be the value of the customdata header that you want to send with license requests to the KeyOS license server. In most cases this will be the base64 encoded KeyOS authentication XML.
integration string no The value should be 'keyos'.
playready KeyOSLicenseAcquisitionDescription yes An optional KeyOSLicenseAcquisitionDescription for Playready.
widevine KeyOSLicenseAcquisitionDescription yes An optional KeyOSLicenseAcquisitionDescription for Widevine.

KeyOSLicenseAcquisitionDescription

KeyOSLicenseAcquisitionDescription is an extension of a regular LicenseAcquisitionDescription. Similar to a regular LicenseAcquisitionDescription it allows you to specify attributes like the licenseAcquisitionURL, headers, queryParameters, ... that should be used specifically for requests to the license servers for the intended DRM scheme (e.g. Widevine or Playready). It has the following extra and extended attributes:

Method Type Optional Description
customdata string no/yes This attribute is required if it is not specified on the parent KeyOSDRMDescription. Otherwise it is optional.
The value of this attribute should be the value of the customData header that you want to send with license requests to the KeyOS license server for a specific DRM scheme. In most cases this will be the base64 encoded KeyOS authentication XML.
licenseAcquisitionURL string yes If provided, the player will send license requests for the intended DRM scheme to the provided licenseAcquisitionURL. If not provided, the player will use the default license acquisition URLs for the KeyOS Playready and Widevine servers.

Examples

Basic Integration

To set up a basic integration with your KeyOS account you would do the following:

var keyOSDRMConfiguration = { 
    integration : 'keyos',
    customdata : 'PEtleU9T...blhNTD4='
}

/* Set the player's source by providing your manifest URL and the keyOSDRMConfiguration as DRMConfiguration for that source.*/
player.source = {
    sources : {
        src : 'your.mpd',
        type : 'application/dash+xml',
        contentProtection : keyOSDRMConfiguration
    }
}

 

Advanced Integration

When debugging, you can also use our API to set a custom license URL or customData for Playready and/or Widevine. The following example creates a keyOSDRMConfiguration with a custom setup for Playready, but which uses the defaults for Widevine:

var keyOSDRMConfiguration = { 
    integration : 'keyos',
    customdata : 'PEtleU9T...blhNTD4=',
    playready : {
        licenseAcquisitionURL : 'customplayready.url',
        customdata : 'CUSTOM...='
    }
}

Irdeto

IrdetoDRMConfiguration

Setting a DRMConfiguration's integration flag to 'irdeto' makes it an IrdetoDRMConfiguration. This interface is an extension of the regular DRMConfiguration but has the following extra and extended attributes:

Method Type Optional Description
accountId string no This ID will be added for license URL requests.
applicationId string yes/no This attribute is required for Fairplay. This ID will be added for certificate URL requests for Fairplay. This is not mandatory in case of Widevine or Playready.
contentId string no This ID will be added for license URL requests.
crmId string no This ID will be added for license URL requests.
fairplay FairPlayLicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a FairPlay license server.
integration string   The value should be 'irdeto'.
keyId string yes/no This attribute is required for Fairplay. This ID will be added for license URL requests for Fairplay. This is not mandatory in case of Widevine or Playready.
playready LicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a PlayReady license server.
widevine LicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a Widevine license server.

Examples

Basic Integration

To set up a basic integration with your Irdeto account you would do the following:

var irdetoDRMConfiguration = { 
    integration : 'irdeto',
fairplay: { /* required for FairPlay playback */
certificateURL: 'yourIrdetoCertificateUrl',
licenseAcquisitionURL: 'yourIrdetoLicenseAcquisitionURL'
} crmId: 'yourIrdetoCrmId',
accountId: 'yourIrdetoCrmId',
contentId: 'yourIrdetokeyId',
accountId: 'yourIrdetoCrmId',
applicationId: 'yourIrdeotApplicationId', } /* Set the player's source by providing your manifest URL and the irdetoDRMConfiguration as DRMConfiguration for that source.*/ player.source = { sources : { src : 'your.m3u8', type : 'application/x-mpegurl', contentProtection : irdetoDRMConfiguration } }

Arris Titanium

TitaniumDRMConfiguration

Setting a DRMConfiguration's integration flag to 'titanium' makes it a TitaniumDRMConfiguration. This interface is an extension of the regular DRMConfiguration but has the following extra and extended attributes:

Method Type Optional Description
accountName string no This attribute is required to do the license URL request.
customerName string no This attribute is required to do the license URL request.
fairplay FairPlayLicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a FairPlay license server.
friendlyName string yes This attribute is optional.
integration string no The value should be 'titanium'.
playready LicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a PlayReady license server.
portalId string no This attribute is required to do the license URL request.
widevine LicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a Widevine license server.

Examples

Basic Integration

To set up a basic integration with your Arris Titanium account you would do the following:

var titaniumDRMConfiguration = { 
    integration : 'keyos',
playready: { /* required for PlayReady playback */
licenseAcquisitionURL: 'yourTitaniumPlayReadyLicenseAcquisitionURL'
},
widevine: { /* required for Widevine playback */
licenseAcquisitionURL: 'yourTitaniumWidevineLicenseAcquisitionURL'
}, accountName: 'yourTitaniumAccountName',
customerName: 'yourTitaniumCustomerName',
friendlyName: 'yourTitaniumFriendlyName',
portalId: 'yourTitaniumPortalId' } /* Set the player's source by providing your manifest URL and the titaniumDRMConfiguration as DRMConfiguration for that source.*/ player.source = { sources : { src : 'your.mpd', type : 'application/dash+xml', contentProtection : titaniumDRMConfiguration } }

EZDRM

EzdrmDRMConfiguration

Setting a DRMConfiguration's integration flag to 'ezdrm' makes it a EzdrmDRMConfiguration. This interface is an extension of the regular DRMConfiguration but has the following extra and extended attributes:

Method Type Optional Description
fairplay FairPlayLicenseAcquisitionDescription no This attribute specifies license acquisition parameters for integration with a FairPlay license server.
integration string no The value should be 'ezdrm'.

Examples

Basic Integration

To set up a basic integration with your EzDRM account you would do the following:

var ezdrmDRMConfiguration = { 
    integration : 'ezdrm',
fairplay: { /* required for FairPlay playback */
certificateURL: 'yourEzdrmCertificateUrl',
licenseAcquisitionURL: 'yourEzdrmLicenseAcquisitionURL'
} } /* Set the player's source by providing your manifest URL and the ezdrmDRMConfiguration as DRMConfiguration for that source.*/ player.source = { sources : { src : 'your.mpd', type : 'application/dash+xml', contentProtection : ezdrmDRMConfiguration } }

Vualto VuDRM

VudrmDRMConfiguration

Setting a DRMConfiguration's integration flag to 'keyos' makes it a VudrmDRMConfiguration. This interface is an extension of the regular DRMConfiguration but has the following extra and extended attributes:

Method Type Optional Description
fairplay FairPlayLicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a FairPlay license server.
integration string no The value should be 'vudrm'.
playready LicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a PlayReady license server.
token string no This attribute is required to do the license URL request.
widevine LicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a Widevine license server.

Examples

Basic Integration

To set up a basic integration with your VuDRM account you would do the following:

var vudrmDRMConfiguration = { 
    integration : 'vudrm',
playready: { /* required for PlayReady playback */
licenseAcquisitionURL: 'yourVudrmPlayReadyLicenseAcquisitionURL'
},
widevine: { /* required for Widevine playback */
licenseAcquisitionURL: 'yourVudrmWidevineLicenseAcquisitionURL'
}, token: 'PEtleU9T...blhNTD4=' } /* Set the player's source by providing your manifest URL and the vudrmOSDRMConfiguration as DRMConfiguration for that source.*/ player.source = { sources : { src : 'your.mpd', type : 'application/dash+xml', contentProtection : vudrmDRMConfiguration } }

Conax Contego DRM

ConaxDRMConfiguration

Setting a DRMConfiguration's integration flag to 'conax' makes it a ConaxDRMConfiguration. This interface is an extension of the regular DRMConfiguration but has the following extra and extended attributes:

Method Type Optional Description
fairplay FairPlayLicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a FairPlay license server.
deviceId string no This attribute is required to do the license URL request and represents the Conax device ID.
integration string no The value should be 'conax'.
playready LicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a PlayReady license server.
token string no This attribute is required to do the license URL request and represents the Conax Authorization token.
widevine LicenseAcquisitionDescription yes/no This attribute specifies license acquisition parameters for integration with a Widevine license server.

Examples

Basic Integration

To set up a basic integration with your Conax account you would do the following:

// Minimal MPEG-DASH Widevine + Playready:
var conaxMDDRMConfiguration = { 
    integration : 'conax',
    token : 'yourConaxToken',
deviceId : 'YourConaxDeviceId' } /* Set the player's source by providing your manifest URL and the conaxDRMConfiguration as DRMConfiguration for that source.*/ player.source = { sources : { src : 'your.mpd', type : 'application/dash+xml', contentProtection : conaxMDDRMConfiguration } }

// Minimal HLS Fairplay: var conaxHLSDRMConfiguration = { integration : 'conax',
fairplay: {
certificateURL: 'yourConaxCertificateURL',
}, token : 'yourConaxToken',
deviceId : 'YourConaxDeviceId' }
player.source = { sources : { src : 'your.m3u8', type : 'application/x-mpegurl', contentProtection : conaxHLSDRMConfiguration } }