THEOplayer 2.X Multi-DRM Partners

Introduction

THEOplayer supports Fairplay, PlayReady and Widevine by default. To connect to such a DRM system, developers can use a ContentProtectionDescription.
However, more often than not, developers are working with a multi-DRM vendor. These vendors take care of their DRM needs. The last challenge for developers is to integrate the provided DRM solution in a video player.
THEOplayer is partnered with many multi-DRM vendors to lighten this burden. In our partnerships, we validate the compatibly and often provide integrations.

  1. Multi-DRM Partners
    1. Arris (Titanium)
    2. BuyDRM (KeyOS)
    3. Conax
    4. EZDRM
    5. Irdeto
    6. Verimatrix
    7. VuDRM

Keep in mind that THEOplayer is compatible with many more multi-DRM systems. You can connect to about any system and vendor using a ContentProtectionDescription.

1. Prerequirements

There are two prerequirements in order to continue with this guide:

  1. You have a THEOplayer 2.X license and library. If you don't have THEOplayer 2.X yet, you can start your free trial here or contact your THEOplayer account manager.
  2. You have some basic knowledge on how to use THEOplayer 1.X, and have read through the 2.X getting started guide.

2. Multi-DRM Partners

The verified partners are listed below. If the key of a configuration has a question mark ('?') appended to it, this key is optional.

2.1. Arris Titanium

To use Arris Titanium, you set the integration key to 'titanium' and configure the (optional) keys of the contentProtection listed below.

player.source = {
sources : {
src : 'your.mpd',
type : 'application/dash+xml',
contentProtection : {
integration : 'titanium',
accountName : 'xyz',
customerName : 'abc',
friendlyName? : 'ghi',
portalId : 123
}
}
}

2.2. BuyDRM KeyOS

To use BuyDRM KeyOS, you set the integration key to 'keyos' and configure the (optional) keys of the contentProtection listed below.

Read the KeyOS pre-integration guide for more information.

player.source = {
sources : {
src : 'your.mpd',
type : 'application/dash+xml',
contentProtection : {
integration : 'keyos',
customdata: 'PEtleU9T...blhNTD4='
}
}
}

2.3. Conax

We've validated that you configure Conax by using a ContentProtectionDescription.

Example:

player.source = {
sources : {
src : 'your.mpd',
type : 'application/dash+xml',
contentProtection : {
widevine: {
licenseAcquisitionURL: 'https://...'
}
}
}
}

2.4. EZDRM

To use EZDRM, you set the integration key to 'ezdrm'.

player.source = {
sources : {
src : 'your.mpd',
type : 'application/dash+xml',
contentProtection : {
integration : 'ezdrm'
}
}
}

2.5. Irdeto

The Irdeto DRM system has been pre-integrated with THEOplayer. In order to make use of the pre-integration, simply fill in the integration type together with your Irdeto CRM Id, Account Id and Content Id. In case you want to use Fairplay protected HLS streams, you will also be required to fill in your Key Id and Application Id.

Example:

player.source = {
sources : {
src : 'your.mpd',
type : 'application/dash+xml',
contentProtection : {
integration: 'irdeto'
crmId: 'CRM Id'
accountId: 'Account Id'
contentId: 'Content Id'
keyId: 'Key Id'
applicationId: 'Application Id'
}
}
}

2.6. Verimatrix

We've validated that you can set-up Verimatrix by using a ContentProtectionDescription.

Example:

player.source = {
sources : {
src : 'your.mpd',
type : 'application/dash+xml',
contentProtection : {
widevine: {
licenseAcquisitionURL: 'https://...'
}
}
}
}

2.7. VuDRM

To use VuDRM, you set the integration key to 'vudrm' and set the token key to the correct value shared by VuDRM.

player.source = {
sources : {
src : 'your.mpd',
type : 'application/dash+xml',
contentProtection : {
integration : 'vudrm',
token : 'PEtleU9T...blhNTD4='
}
}
}

3. Others

Through THEOplayer you can integrate a wide range of multi-DRM systems. You can use a ContentProtectionDescription to set a license acquisition URL, a certificate URL and additional headers for Fairplay, Widevine and PlayReady.

4. Conclusion

Configuring a multi-DRM solution in THEOplayer is straightforward. We either expose an integration field to ease the process, or we've validated that you can use a basic ContentProtectionDescription without surprises.