DASH (Google Widevine DRM and PlayReady)

Use one of the following DRM solutions to secure your premium content when leveraging DASH to stream media:

Learn how to set up the above DRM solutions:

Quick Start

Follow these steps to get started with Studio DRM:

  1. Contact your account manager to enable Studio DRM.
  2. Verify that Require studio approved DRM for playback and the Require a token for playback options have been enabled on the desired live event, live channel, or CMS asset.

    Please re-ingest slate that was encoded prior to Studio DRM activation. Use the cleardash parameter and turn off digital signatures to ensure optimal playback performance.
    Learn more.

    Only CMS assets that were encoded after Studio DRM activation may be secured via Studio DRM. Existing assets will need to be re-encoded via the Slicer, Slicebot, or the Cloud Slicer.

  3. Construct the playback URL for the desired live event, live channel, or CMS asset.

    1. Find the DASH version of the playback URL corresponding to the desired live event, live channel, or CMS asset.
    2. Define the desired set of Studio DRM policies by adding either a Studio DRM policy configuration or the desired individual policies to the playback URL's query string.

      https://content.uplynk.com/ea10fa402fec4bbe996019a0827e6c37.mpd?&drm_policy_name=wvpolicy1

      Use a Studio DRM policy configuration and/or the parameter expansion capability to obfuscate your Studio DRM policies.

    3. Sign the playback URL.
  4. Update your player/client to submit a license request to our license server via one of the following license acquisition URLs:

    License acquisition URL for Google Widevine:

    https://content.uplynk.com/wv

    License acquisition URL for Microsoft PlayReady:

    https://content.uplynk.com/pr

    Request a license from the region where the manifest file was generated to avoid being redirected.
    Learn more.

  5. Point your player to the signed playback URL generated in step 3.
  6. Exoplayer Only (Widevine)

    Configure Exoplayer to support key rotation.

    	"drm_multi_session": true

    Learn more.

Learn how to set up Google Shaka player for use with Widevine.

License Acquisition

The player must request a license before it will be allowed to play Studio DRM-protected content.

Protection Scheme Specific Header (PSSH) data, which is used to generate a license request, is only provided as segments within the manifest file.

If you have disabled Studio DRM, then you must request a cleartext key instead of a license.
Learn more.

License acquisition URL for Google Widevine:

https://content.uplynk.com/wv

License acquisition URL for Microsoft PlayReady:

https://content.uplynk.com/pr

License requests submitted to content.upynk.com will be redirected307 Temporary Redirect to the region where the manifest file was generated. For example, if the manifest file was generated from content-ause2.uplynk.com, then license requests submitted to the Widevine license acquisition URL will be redirected to:

https://content-ause2.uplynk.com/wv

Avoid this redirect by requesting the license from the appropriate region. Use our Preplay API to find out the correct zone prefix (e.g., content-ause2.uplynk.com) and then request a license from that region (e.g., https://content-ause2.uplynk.com/wv).

Unencrypted DASH Content

Edgecast-branded slate is shown when a live channel or live event encounters slate that was encoded prior to Studio DRM activation. Please re-ingest existing slate via the Slicer or Slicebot. Ensure optimal performance for slate by using the cleardash parameter when ingesting it. This parameter will store an unencrypted version of that slate in the CMS library. This allows the player to bypass Studio DRM licensing when looping through slate and thus avoids the need to frequently request a new license at regular intervals (e.g., 4 seconds).

Unencrypted assets may be downloaded or played without restriction. Encryption and Studio DRM cannot be applied to assets that were sliced with the cleardash parameter.

Slate and ads should not require a digital signature.

Google Shaka Player (Widevine)

Set up a basic Google Shaka player to stream protected content through the following steps:

  1. Follow the instructions provided within the Shaka Player tutorial to perform the following actions:

    1. Get the source by cloning the following Git repository:

      https://github.com/google/shaka-player
    2. Compile the Google Shaka player library.
    3. Create an HTML page with a video element.
    4. Create a JavaScript file (e.g., myapp.js).
  2. Update the JavaScript file created in the previous step to:

    1. Reference a signed playback URL that points to the desired content.

      var manifestUri =
      	'https://content.uplynk.com/ea1...c38.mpd?tc=1&exp=1553273704&rn=1234&ct=a&cid=ea1...c38&drm_policy_name=wvpolicy1&sig=ecd...cbf';
    2. Reference our license server.

      var licenseServer = 
      	'https://content.uplynk.com/wv';

      Configure the player to use our license server before it loads the manifest.
      Learn more.

  3. Host the following assets on your web server:

    • Complied Google Shaka player library (e.g., dist/shaka-player.compiled.js)
    • HTML page created in step 1.iii.
    • JavaScript file created in step 1.iv.

ExoPlayer (Widevine)

Setting up ExoPlayer to playback Studio DRM-protected content involves the following steps:

  1. Reference a signed playback URL that points to the desired content.

    Sample configuration (media.exolist.json):

    		"uri": "https://content.uplynk.com/ea1...c38.mpd?tc=1&exp=1553273704&rn=1234&ct=a&cid=ea1...c38&drm_policy_name=wvpolicy1&sig=ecd...cbf",
  2. Set the DRM scheme to "widevine."

    Sample configuration (media.exolist.json):

    		"drm_scheme": "widevine",
  3. Set the DRM license URL to:

    Sample configuration (media.exolist.json):

    		"drm_license_url": "https://content.uplynk.com/wv",
  4. Enable multi-session DRM to support key rotation.

    Sample configuration (media.exolist.json):

    	"drm_multi_session": true

    Initial playback will work regardless of this setting. However, if this setting is not defined, then playback will fail upon key rotation.

    The above setting is especially important for streaming live content, since all keys will not be available when the license is generated.

  5. Offline Playback (Rental) Only

    If VOD content will be played offline, then you must request all keys up front by including the following setting:

    		"drm_key_request_properties": {"X-DASH-SEND-ALL-KEYS":"1"}	

Sample Configurations

Sample configurations that leverage the main ExoPlayer demo player are provided below.

Sample media.exolist.json:

[{
		"name": "Widevine DASH",
		"uri": "https://content.uplynk.com/ea1...c38.mpd?tc=1&exp=1553273704&rn=1234&ct=a&cid=ea1...c38&drm_policy_name=wvpolicy1&sig=ecd...cbf",
		"drm_scheme": "widevine",
		"drm_license_url": "https://content.uplynk.com/wv",
		"drm_multi_session": true
	}, {
		...

Sample media.exolist.json for offline playback:

[{
		"name": "Widevine DASH",
		"uri": "https://content.uplynk.com/ea1...c38.mpd?tc=1&exp=1553273704&rn=1234&ct=a&cid=ea1...c38&drm_policy_name=wvpolicy1&sig=ecd...cbf",
		"drm_scheme": "widevine",
		"drm_license_url": "https://content.uplynk.com/wv",
		"drm_multi_session": true
		"drm_key_request_properties": {"X-DASH-SEND-ALL-KEYS":"1"}
	}, {
		...

Playback without Studio DRM Protection

The following information is only applicable once Studio DRM has been activated on your account.

Certain types of content (e.g., slate) should not be protected by Studio DRM.

To play content without Studio DRM protection

  1. Disable Studio DRM by performing either of the following:

    • Clear the Require studio approved DRM for playback option on the desired CMS asset.
    • Pass the drm_optional parameter in the playback URL.

      Learn more.

  2. Pass the ck parameter in the playback URL.

    All players:

    &ck=1

    Exoplayer only:If you are using Exoplayer, then you may pass either value. However, setting it to "4" ensures that the Content Key is presented in a format recognizable by Exoplayer.

    &ck=4
  3. Update your player to request a cleartext key via the following URL:

    https://content.uplynk.com/ck

Microsoft Playready

Content owners use Microsoft PlayReady™ content access technology to protect their intellectual property, including copyrighted content. This service uses PlayReady technology to protect certain content. If the PlayReady technology fails to protect the content, content owners may require the service to restrict or prevent the delivery of protected content to specified devices or PC software applications. In certain cases, you may be required to upgrade the PlayReady technology to continue to access the service’s content. If you decline such an upgrade, you will not be able to access content that requires the upgrade.

More Information