Company News

PlayReady DRM Now Compatible with Bitmovin

Martin Smole
. 2 min read
PlayReady DRM - Bitmovin

PlayReady MPEG-DASH

Bitmovin now supports PlayReady DRM with MPEG Common Encryption (MPEG-CENC) for MPEG-DASH streams. A few days ago we added Widevine Modular and now the next logical step was a PlayReady MPEG-DASH solution. It is also possible to combine Widevine Modular and PlayReady to encrypt your content once and be able to use it with both DRM systems.

Encrypt your Content

Playready MPEG-DASHThe easiest way to encrypt your content using PlayReady DRM is to start with one of our API clients. Currently, encryption is only supported through the API and examples are only implemented for the PHP and Python API clients. We will add comprehensive examples for all other API clients in the next few days, so stay tuned. Additionally, bitcodin (now known as Bitmovin Encoding Service) is able to encode and encrypt your content once, in a way that is compatible with PlayReady and Widevine Modular.

API Client Examples

Let’s look at the example using the PHP API client. The important part here is to use the PlayReadyDRMConfig object. For testing you can also use the data provided in our example below:

$playreadyDRMConfig = new PlayReadyDRMConfig();
$playreadyDRMConfig->key = '';
$playreadyDRMConfig->keySeed = 'XVBovsmzhP9gRIZxWfFta3VVRPzVEWmJsazEJ46I';
$playreadyDRMConfig->kid = '746573745f69645f4639465043304e4f';
$playreadyDRMConfig->laUrl = 'http://playready.directtaps.net/pr/svc/rightsmanager.asmx';
$playreadyDRMConfig->method =  DRMEncryptionMethods::MPEG_CENC;
$jobConfig = new JobConfig();
...
$jobConfig->drmConfig = $playreadyDRMConfig;
$job = Job::create($jobConfig);

The parameters of the PlayReady configuration have the following meaning:

  • key: You either have to provide the content encryption key directly or provide the keySeed.
  • keySeed: By providing the keySeed (base64 encoded) with the kid, a content encryption key will be generated for you.
  • kid: This is the unique identifier for your content key in hex format.
  • laUrl: This is the URL to the PlayReady license server.
  • method: Currently we only support MPEG-CENC.

Combined PlayReady DRM and Widevine DRM Encryption

It is also possible to encrypt your content to be played by PlayReady and Widevine clients. You need to get a common content encryption key and key identifier from both systems. With these values you can encrypt the content as follows:

$combinedWidevinePlayreadyDRMConfig = new CombinedWidevinePlayreadyDRMConfig();
$combinedWidevinePlayreadyDRMConfig->pssh = 'CAESEOtnarvLNF6Wu89hZjDxo9oaDXdpZGV2aW5lX3Rlc3QiEGZrajNsamFTZGZhbGtyM2oqAkhEMgA=';
$combinedWidevinePlayreadyDRMConfig->key = '100b6c20940f779a4589152b57d2dacb';
$combinedWidevinePlayreadyDRMConfig->kid = 'eb676abbcb345e96bbcf616630f1a3da';
$combinedWidevinePlayreadyDRMConfig->laUrl = 'http://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=1&ContentKey=EAtsIJQPd5pFiRUrV9Layw==';
$combinedWidevinePlayreadyDRMConfig->method =  DRMEncryptionMethods::MPEG_CENC;
$jobConfig = new JobConfig();
...
$jobConfig->drmConfig = $combinedWidevinePlayreadyDRMConfig;
$job = Job::create($jobConfig);

The parameters of the combined configuration have the following meaning:

  • key: This is the common content encryption key.
  • kid: This is the common unique identifier for your content key in hex format.
  • laUrl: This is the URL to the PlayReady license server.
  • pssh: This is the value for the Widevine pssh box.
  • method: Currently we only support MPEG-CENC.

Playback your PlayReady Encrypted Content in HTML5

To test your content, you can go to our HLS & MPEG-DASH DRM Test and paste the link to your MPD or HLS from your encoding job. Please note that PlayReady MPEG-DASH content can only be played on Windows 8 and IE11 and above.
We are happy to help you with MPEG-CENC and PlayReady DRM just contact us at [email protected].

Martin Smole

Martin Smole

Senior Engineering Director

Martin is responsible for the development and operation of the Bitmovin Encoding products for VOD and Live. His teams work to enable complex video encoding workflows for global premium media and technology companies like Red Bull Media House or the New York Times. He also manages collaborations with research partners like ATHENA to constantly incorporate new innovations to Bitmovins products.


Related Posts

PlayReady DRM - Bitmovin
Company News

IBC2023: Celebrating the industry’s achievements in DEI and sustainability

Join the conversation