Content Security (DRM) with the Native Player SDKs

Product(s)
Video Cloud
Brightcove Player
Role(s)
Device SDK Developer
Task(s)
Protect Videos
Topic(s)
DRM
SDK
Android
iOS
tvOS

In this topic, you will learn how to protect your video content.

Digital rights management (DRM) protects your video content by encrypting the video data and unlocking it based on license policies.

DRM solutions

For more information on Video Cloud support for DRM, see Overview: Digital Rights Management (DRM) in Video Cloud.

The Brightcove Native Player SDK platforms support the following DRM solutions:

Platform DRM Solution
Native Player SDK for iOS HLS with FairPlay Streaming
Native Player SDK for tvOS HLS with FairPlay Streaming
Native Player SDK for Android DASH with Widevine Modular

Video Cloud customers

In the following steps, you will create DRM-enabled content.

Using Apple FairPlay Streaming

If you are using Widevine Classic with your iOS apps, you can transition to using Apple FairPlay Streaming as follows:

  1. If your account(s) is not already DRM-enabled, then contact your account manager to have it enabled.

  2. If your account is enabled for Dynamic Delivery, you videos will be automatically packaged for DRM when you ingest them (older videos will also be packaged automatically if they were ingested or have been re-transcoded using a Dynamic Delivery profile). If your account does not use Dynamic Delivery, see the Legacy Ingest section below.
  3. Support for FairPlay-protected videos is integrated into the core framework of the Brightcove Player SDK for iOS. For more details see the following documents:

     

Using Google Widevine Modular

If you are using Widevine Classic with your Android apps, you can transition to using Google Widevine Modular as follows:

  1. If your account(s) is not already DRM-enabled, then contact your account manager to have it enabled.

  2. If your account is enabled for Dynamic Delivery, you videos will be automatically packaged for DRM when you ingest them (older videos will also be packaged automatically if they were ingested or have been re-transcoded using a Dynamic Delivery profile). If your account does not use Dynamic Delivery, see the Legacy Ingest section below.
  3. Now, you are ready to use the Brightcove Native SDK for Android in your app. To view Widevine Modular content, you will need to use the ExoPlayer video view. For more details see the following documents:

     

Brightcove Player customers

Using Apple FairPlay Streaming

If you are using Widevine Classic with your iOS apps, you can transition to using Apple FairPlay Streaming as follows:

  1. For FairPlay, you will need to produce DRM-protected content which uses HLS manifests with segmented and encrypted videos.
  2. Since you will not be using the Brightcove FairPlay license server, you will need to define some properties related to the FairPlay license

    Support for FairPlay-protected videos is integrated into the core framework of the Brightcove Player SDK for iOS. For more details see the following documents:

     

Using Google Widevine Modular

If you are using Widevine Classic with your Android apps, you can transition to using Google Widevine Modular as follows:

  1. For Widevine Modular, you will need to produce DRM-protected content which uses MPEG-DASH manifests with segmented and encrypted videos.

  2. The Brightcove Native SDK for Android is configured by default to use Brightcove's Widevine licensing server. Your videos will need to be configured to use your Widevine licensing server. Here is an example:

    import com.brightcove.player.display.WidevineMediaDrmCallback;
    import com.brightcove.player.media.DeliveryType;
    import com.brightcove.player.model.Video;
    String performVideoUrl = "http://url.to.your.video";
    String performLicenseUrl = "https://url.to.your.licensing.server";
    Video performVideo = Video.createVideo(performVideoUrl, DeliveryType.DASH);
    performVideo.getProperties().put(WidevineMediaDrmCallback.DEFAULT_URL, performLicenseUrl);
    
    
  3. Now, you are ready to use the Brightcove Native SDK for Android in your app. To view Widevine Modular content, you will need to use the ExoPlayer video view. For more details see the following documents:

     

For customers using legacy ingestion

For customers using the legacy ingest system (not Dynamic Delivery), you will need to follow the steps below to package for you videos for DRM.

  1. Create a custom ingest profile with defined packages for each DRM type, Widevine Modular and Apple FairPlay.

  2. In Studio, in the Upload module, you should now see your custom DRM profiles in the Ingest Profile dropdown menu. Here is an example of what your menu might look like:
    DRM profiles with FairPlay selected
    DRM profiles with FairPlay selected
  3. Upload your content using the DRM ingest profile.

  4. For existing content in Video Cloud, you can use the Retranscode button in the Media module and select your desired ingest profile. Retranscoding works only if you initially used the new Studio's Upload module or Dynamic Ingest.
    Retranscode in Studio
    Retranscode in Studio