Multi-DRM Encryption
Multi-DRM encryption protects your streams with industry-standard DRM systems so that content plays securely across all major browsers and devices. MK.IO supports two multi-DRM configurations: full multi-DRM (Widevine + PlayReady + FairPlay) and CENC-only (Widevine + PlayReady).
Prerequisites
- A running streaming endpoint.
- An asset verified to play without encryption using
Predefined_ClearStreamingOnly. - For FairPlay: an Apple FairPlay Streaming certificate, password, and application secret key.
Choose your configuration
| Configuration | Streaming policy | Required schemes | Use when |
|---|---|---|---|
| Full multi-DRM | Predefined_MultiDrmStreaming | Widevine + PlayReady + FairPlay | You need to support all platforms, including Safari and Apple devices. |
| CENC multi-DRM | Predefined_MultiDrmCencStreaming | Widevine + PlayReady | You do not need FairPlay support. Covers Chrome, Edge, Android, and most smart TVs. |
The streaming policy enforces which DRM schemes must be present in the content key policy. A Predefined_MultiDrmStreaming locator fails if the policy does not include all three schemes. A Predefined_MultiDrmCencStreaming locator fails if it does not include both Widevine and PlayReady.
Full multi-DRM with JWT tokens
This example creates a content key policy with Widevine, PlayReady, and FairPlay, all protected by JWT token authentication.
Create the content key policy
- Navigate to Content Key Policies and select Create Content Key Policy.
- Enter a name (for example,
multidrm-jwt) and optional description. - Select Add in the Digital Rights Management section.
Add Widevine
- Select Add Widevine.
- Enter a policy option name.
- Under Use token restriction, select Yes.
- Configure the token fields:
- Token type:
JWT - Issuer: your chosen issuer string.
- Audience: your chosen audience string.
- Primary verification key: your Base64-encoded key.
- Token type:
- Leave Widevine template as
{}unless you need a custom template. - Select Add.
Add PlayReady
- Select Add PlayReady.
- Enter a policy option name.
- Under Use token restriction, select Yes.
- Enter the same issuer, audience, and primary verification key as Widevine.
- Leave the PlayReady-specific options at their defaults unless you need custom settings.
- Select Add.
Add FairPlay
- Select Add FairPlay.
- Enter a policy option name.
- Under Use token restriction, select Yes.
- Enter the same issuer, audience, and primary verification key as the other schemes.
- Provide your Apple FairPlay certificate, password, and application secret key.
- Select Add.
Create the policy
Select Create. The policy now includes all three DRM schemes with JWT protection.
Generate a JWT token
Follow the JWT token authentication guide to generate a token using the issuer, audience, and primary verification key you configured.
Create a streaming locator
- Navigate to your asset and select Add streaming locator.
- Enter a name.
- Set Streaming policy to
Predefined_MultiDrmStreaming. - Set Content key policy to the multi-DRM policy you created.
- Select Add, then select the locator and select Apply.
MK.IO generates playback URLs and license acquisition URLs for each DRM system.
Test playback
See Test DRM playback for instructions on testing with MKPlayer.
CENC multi-DRM without tokens
This example creates a content key policy with Widevine and PlayReady only, with no token restriction. Use this for scenarios where token-based authentication is handled elsewhere or is not required.
Create the content key policy
- Navigate to Content Key Policies and select Create Content Key Policy.
- Enter a name (for example,
multidrm-cenc-open) and optional description. - Select Add in the Digital Rights Management section.
Add Widevine
- Select Add Widevine.
- Enter a policy option name.
- Under Use token restriction, select No.
- Leave Widevine template as
{}. - Select Add.
Add PlayReady
- Select Add PlayReady.
- Enter a policy option name.
- Under Use token restriction, select No.
- Leave PlayReady options at defaults.
- Select Add.
Create the policy and streaming locator
- Select Create to save the policy.
- Navigate to your asset and select Add streaming locator.
- Set Streaming policy to
Predefined_MultiDrmCencStreaming. - Set Content key policy to the CENC policy you created.
- Select Add, then select the locator and select Apply.
Test playback
- Navigate to the MKPlayer page.
- Select DASH as the protocol and Widevine as the DRM.
- Paste the DASH playback URL in Source URL.
- Paste the Widevine license acquisition URL in License URL.
- Select Play.