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
    8. Vimond
    9. Axinom
    10. Uplynk - Verizon
    11. Xstream

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,
authToken? : 'eyujsYMc'
}
}
}

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 : {
integration : "conax",
token : "your token",
deviceId : "your device id",
widevine : {
licenseAcquisitionURL : "https://..."
},
playready : {
licenseAcquisitionURL : "https://..."
}
}
}
}

2.4. EZDRM

To use EZDRM, you set the integration key to 'ezdrm'along with the configuration depending upon fairplay, Widevine or Playready DRM configuration setting.  

let ezDRMConfiguration = {
integration: "ezdrm",
fairplay: {
licenseAcquisitionURL: "https://....",
certificateURL: "https://...."
}
};
player.source = {
sources: {
src: "your.m3u8",
type: "application/x-mpegurl",
contentProtection: ezDRMConfiguration
}
};

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='
}
}
}

2.8. Vimond

To use Vimond, you set the integration key to 'vimond' with no need for additional attributes.

var vimondDRMConfiguration = {
integration: "vimond",
fairplay: {
licenseAcquisitionURL: "https://...",
certificateURL: "https://..."
}
}

player.source = {
sources: {
src: 'your.m3u8',
type: 'application/x-mpegurl',
contentProtection: vimondDRMConfiguration
}
}

2.9. Axinom

To use Axinom, you set the integration key to 'axinom' along with the token key shared by the Axinom. The settings of DRM would change with respect to Fairplay, Widevine or Playready.

let AxinomDRMConfiguration = {
        integration: "axinom",
        token"PEtleU9T...blhNTD4=",
        fairplay: {
            licenseAcquisitionURL"https://...", //Optional
            certificateURL"https://..."
        }
    };
    player.source = {
        sources: {
            src"your.m3u8",
            type:"application/x-mpegurl",
            contentProtection: AxinomDRMConfiguration
        }
    }

2.10. Uplynk - Verizon

To use Uplynk, you set the integration key to 'uplynk' and set licenseAcquisitionURL (optional) and certificateURL.The settings of DRM would change with respect to Fairplay, Widevine or Playready.

let uplynkDRMConfiguration = {
        integration: "uplynk",
        fairplay: {
            licenseAcquisitionURL"https://...", // Optional
            certificateURL"https://..."
        }
    };
    player.source = {
        sources: {
            src"your.m3u8",
            type:"application/x-mpegurl",
            contentProtection: uplynkDRMConfiguration
        }
    }

2.11. Xstream

To use Xstream, you set the integration key to 'xstream' and set licenseAcquisitionURL, streamId and certificateURL.The settings of DRM would change with respect to Fairplay, Widevine or Playready.

//Incase of Widevine Streams
//let xstreamDRMConfigurationWidevine = {
//        integration: "xstream",
// streamId: "Stream ID",
//        ticketAcquisitionURL : "https://,,,,"
//    };

//Incase of Fairplay Stream
let xstreamDRMConfigurationFairplay = {

        integration: "xstream",
streamId: "Stream ID",
        fairplay: {
            licenseAcquisitionURL"https://...",
            certificateURL"https://..."
        }
    };

    player.source = {
        sources: {
            src"your.m3u8",
            type:"application/x-mpegurl",
            contentProtection: xstreamDRMConfiguration
        }
    }

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.