Widevine DRM

You can use the features of the Primetime Digital Rights Management (DRM) system to provide secure access to your video content. Alternatively, you can use third-party DRM solutions as an alternative to Adobe’s integrated solution.

Contact your Adobe representative for the most up-to-date information on the availability of third-party DRM solutions.

You can use the Android native Widevine DRM with HLS CMAF streams.

NOTE

Widevine CENC CTR Scheme requires minimum Android version 4.4 (API Level 19).

Widevine CBCS Scheme requires minimum Android version 7.1 (API Level 25).

Set license server details

Call the following com.adobe.mediacore.drm.DRMManager API before loading MediaPlayer resource:

public static void setProtectionData(
String drm,
String licenseServerURL,
Map<String, String> requestProperties)

Arguments

  • drm - "com.widevine.alpha" for Widevine.

  • licenseServerURL - The URL of the Widevine license server that receives license requests.

  • requestProperties - Contains extra headers to include in the outgoing license request.

For example, when using content packaged for Expressplay DRM, use the following code before playing:

DRMManager.setProtectionData(
  "com.widevine.alpha",  
  "https://wv.service.expressplay.com/hms/wv/rights/?ExpressPlayToken= 
<i>token</i>",  
  null);

Provide custom callback

Call the following com.adobe.mediacore.drm.DRMManager API before loading MediaPlayer resource.

public static void setMediaDrmCallback(
MediaDrmCallback callback)

Arguments

  • callback - custom implementation of MediaDrmCallback to use instead of the default com.adobe.mediacore.drm.WidevineMediaDrmCallback.

For details, see Android TVSDK 3.11 API documentation.

Fetch PSSH Box of current loaded MediaPlayer resource

Call the following com.adobe.mediacore.drm.DRMManager API, preferably in custom callback implementation.

public static byte[] getPSSH()

API returns the Protection System Specific Header Box associated with the loaded Widevine media resource.

A valid box is available for short duration (between DRM instance creation and loading of keys). MediaDrmCallback callback executeKeyRequest() can use it to customize fetching license keys.

NOTE

getPSSH() API is supported with single player instance only. Multiple players or Instant On feature should initialize serially to receive the correct box.

On this page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now