Multi-DRM client integration
Learn how DRM content is played, how license integration works (token vs. token proxy), and how to play multi-DRM content on web, mobile, and OTT devices.
How DRM content is played
After packaging (covered in the previous lesson), the encrypted content is delivered through a CDN to the user's device. To decrypt and play content delivered by streaming or download, the client has to obtain a DRM license from the license server.
A DRM license contains the key used to encrypt the content during packaging and the usage rights for that content (playback period, offline playback, security level, output protection, and so on). So that the key isn't exposed and the rights aren't tampered with, the license data itself is encrypted with a key unique to the client device.
License integration methods
Before the license server issues a license, it has to confirm that the user is allowed to use the content. DoveRunner Multi-DRM supports two ways to integrate with the content service's systems. (Ref. 1)
License token (recommended)
The content service's backend generates a token following predefined rules and passes it to the client, and the license is issued based on that token. See the license token guide for details.
Because the license server needs no call to the content service at license time, the delay before playback starts is short, and it scales well for large bursts of requests and global services. On the other hand, the service has to implement token generation and deliver tokens to clients securely.
Token proxy
The content service builds a token proxy server and deploys it on its own backend. The client sends its license request to this proxy instead of the license server, and the proxy checks the user, then relays the request to the DoveRunner license server and returns the license to the client. The proxy is built and operated by the content service, not by DoveRunner. It takes more work to build and run, but gives the service full control over every license request, so it can apply its own security checks and business rules.
The older callback method, where the license server called the content service's URL to check the user's rights, is deprecated in DoveRunner Multi-DRM because of its extra latency and poor handling of request bursts.
Playing multi-DRM content by client type
Most OTT services support many kinds of client devices to reach as many users as possible. Multi-DRM vendors support these platforms as follows.
HTML5 web player
Browsers that support the W3C Encrypted Media Extensions (EME) standard can play multi-DRM content through the Content Decryption Module (CDM) built into each browser: Widevine in Chrome and Firefox, PlayReady and Widevine in Edge, FairPlay in Safari. Open-source players such as Shaka Player and commercial players such as Bitmovin and Dolby OptiView Player (formerly THEOplayer) provide the APIs needed for multi-DRM license integration.
You configure the player with the content URL (the DASH .mpd or HLS .m3u8), the DRM license URL, and the license request data (such as the license token).
Since iOS 17.1, Safari on iPhone supports Managed Media Source, so MSE-based players like Shaka Player also work there.
For DoveRunner Multi-DRM's HTML5 player guides and samples, see the online documentation. You can also try it in this site's Playground.
Mobile browser or native app
There are two ways to play DRM content on Android and iOS:
- Mobile browser: play in a mobile browser that supports multi-DRM, using the HTML5 player integration above.
- Native app: integrate with the platform player (AndroidX Media3 on Android, AVFoundation on iOS) following the vendor's license request specification, or use the mobile client SDKs from a multi-DRM vendor. DoveRunner also provides SDKs for cross-platform frameworks such as Flutter and React Native.
OTT devices
Smart TVs, set-top boxes, streaming sticks, and game consoles also support multi-DRM. You can serve content through the device's built-in browser with an EME-based web player, or build native apps with a multi-DRM SDK for each device, such as DoveRunner's Chromecast SDK.
See supported environments for multi-DRM support on each client platform.
Summary
Multi-DRM is a complex technology that depends on many technologies, standards, and solutions working together. The fastest way to adopt it is a multi-DRM service that unifies the individual DRMs behind one API and already works with the encoders and players you use.
DoveRunner Multi-DRM is a cloud-based, one-stop multi-DRM service, with integration guides, APIs, and SDKs to help you get started quickly.