banner

Multi DRM

Bradmax supports all major DRM content providers.


Bradmax Media Player supports playback protected video stream by various DRM protection systems. This article will introduce in general how video DRM protection mechanism works.

What is video DRM ? DRM is Digital Rights Managment system, which protects video & audio contents agains copying or redistribution. Digital content because of it’s digital nature is easy to copy & reproduce. From other side contents creators and video providers frequently invest a lot of time and money in video preparation and they want to be pay off for they work. Video DRM systems give them control over content distribution making copy or unauthorised access very dificult. DRM can be compared to a diary with a padlock.

Locked folder

Diary is your content. It can be easly moved, but nobody can read it without having key. DRM systems like:

  • Widevine (Google)
  • PlayReady (Microsoft)
  • FairPlay (Apple)

works as boxes with locks for your content. You content can be easly distributed or even copied (as a whole box with lock with content inside), but access is limited for only those users, who got key to open box. What more key to open box can be configured and usually workins only for some period of time.


How looks content flow from provider to end user ?

Drm flow diagram

At begin encrypted content is loaded from content server (step 1.). When DRM protected content is detected, video player asks “License server” for License (step 2.). During this step user permissions are checked and, when all is fine DRM license is obtained. “DRM license” contains key to decprypt video, but even then decryption key is stored in secure way in "License", so it cannot be easly extracted. Then rest actions are performed on user computer / device.

DRM module on user device checkes license permissions again localy. For example connection with monitor / screen is checked if is secured (HDCP - High-bandwidth Digital Content Protection). If not then decryption will be rejected. After all checking, decryption key is obtained (step 3.) and protected content is decrypted for display (step 4.). All that steps are performed on low level of Operating System (Windows/Android/iOS). Operating system is aware, that protected content is presented, so “screen grabing” will be not possible for protected part of screen.


Popular DRM systems

Even when there are multiple different DRM systems, they got common DRM flow and mechanics. It is like a classic padlocks. They can have different shapes, but in general they have the same parts.

Most popular are:

  • Widevine by Google - It is supported by Android devices, Chrome browsers on all devices and Smart TVs.
  • PlayReady by Microsoft - It is supported by MS Internet Explorer, Edge browser and Smart TVs.
  • FairPlay by Apple - It is supported by Safari browser and all iOS devices and Smart TVs.

So in general there is no one DRM system, which works on all devices. If you want to support your content on all devices, when Widevine, PlayReady and FairPlay systems will have to be supported.


ClearKey option

There is also ClearKey DRM system, but as name suggest license key is not protected by any encryption. So this option is much less secure that other full DRM systems. But even so clear-key can be useful for protecting not critical data, is much cheaper and doesn’t need integration with some external systems. Only weeknes of ClearKey is key vulnerability, but by some obfuscation / hidding technics it can be usefull for masking this vulnerability.


Cross-DRM

Single Bradmax Media Player supoports Widevine, PlayReady and FairPlay DRM systems, but not all systems can be used on all devices / platforms. Player checks, what system is supported and try to use it. Many players works like that. But what is more, Bradmax can mux / re-encode content protected in one format / DRM system and into another, which is not nativly supported by device. For example it is possible to play MS Smooth Streaming stream protected with PlayReady on Chrome browser using Widevine DRMs for decryption. This ability is very helpful for legacy content, so client doesn’t need to reencode it to newer formats to play it on other platforms. Such muxing / re-encoding is performend on-fly in player with low CPU usage. See more: Cross-DRM


Example player integration with KeyOS

For a typical minimal setup - a player with DRM configuration is provided to authenticated users only. Configuration contains: links to video manifests (multiple for HLS, MPEG-DASH, MS SmoothStreaming can be used - player will choose best supported for user browser) links to license servers for each available DRM system (Widevine, Playready, Fairplay) and custom data See sample player setup below for Meridian DRM demo and attached player screen (bradmax_keyos_demo.png).

<script type="text/javascript">
    var keyosCustomData = "PEtle....Pg";
    var keyosConfig = {
        "provider": "keyos",
        "playready": { "laUrl": "https://pr-keyos.licensekeyserver.com/core/rightsmanager.asmx", "customData": keyosCustomData },
        "widevine": { "laUrl": "https://wv-keyos.licensekeyserver.com", "customData": keyosCustomData },
        "fairplay": { "laUrl": "https://fp-keyos.licensekeyserver.com/getkey", "customData": keyosCustomData, "certUrl": "https://fp-keyos.licensekeyserver.com/cert/7e11400c7dccd29d0174c674397d99dd.der" }
    };

    var options = {
        "dataProvider": {
            "source": [
                {
                    "url": "https://d2jl6e4h8300i8.cloudfront.net/netflix_meridian/4k-18.5!9/keyos-logo/g180-avc_a2.0-vbr-aac-128k/r30/dash-wv-pr/stream.mpd",
                    "drm": keyosConfig
                },
                {
                    "url": "https://d2jl6e4h8300i8.cloudfront.net/netflix_meridian/4k-19.5!9/keyos-logo/g180-avc_a2.0-vbr-aac-128k/r30/hls-fp/master.m3u8",
                    "drm": keyosConfig
                }
            ],
            "duration": 718,
            "title": "Meridian"
        }
    };
    var element = document.getElementById("player");
    window.bigsoda.player.create(element, options);
</script>

Bradmax Media Player also offers additional features for DRM protected content like:

  • Concurrency Control (limiting number of concurrently playing video streams for single user account, eg. one home account can play two screens/streams at once on different devices).
  • MultiDRM decryption - possibility to play/decode video on platforms, where they are not natively supported. For eg. play old MS Smooth Streaming / PlayReady protected content on Chrome / FireFox browsers using Widevide DRM system to decode video. Video decode is performed on-fly in the user browser.

But such features need additional integration, which are out of scope of this short introduction.


welcome