Use one of the following DRM solutions to secure your premium content when leveraging DASH to stream media:
Google Widevine
Use this DRM solution primarily for Android, Chrome browsers, and Chromecast devices.
Microsoft PlayReady *
Use this DRM solution primarily for Roku, Xbox, and the Microsoft Edge browser.
Learn how to set up the above DRM solutions:
Follow these steps to get started with Studio DRM:
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.
Construct the playback URL for the desired live event, live channel, or CMS asset.
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.
Use a Studio DRM policy configuration and/or the parameter expansion capability to obfuscate your Studio DRM policies.
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:
License acquisition URL for Microsoft PlayReady:
Request a license from the region where the manifest file was generated to avoid being redirected.
Learn more.
Exoplayer Only (Widevine)
Configure Exoplayer to support key rotation.
"drm_multi_session": true
Learn how to set up Google Shaka player for use with Widevine.
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:
License acquisition URL for Microsoft PlayReady:
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:
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).
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.
Set up a basic Google Shaka player to stream protected content through the following steps:
Follow the instructions provided within the Shaka Player tutorial to perform the following actions:
Get the source by cloning the following Git repository:
Update the JavaScript file created in the previous step to:
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';
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.
Host the following assets on your web server:
Setting up ExoPlayer to playback Studio DRM-protected content involves the following steps:
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",
Set the DRM scheme to "widevine."
Sample configuration (media.exolist.json):
"drm_scheme": "widevine",
Set the DRM license URL to:
Sample configuration (media.exolist.json):
"drm_license_url": "https://content.uplynk.com/wv",
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.
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 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"} }, { ...
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
Disable Studio DRM by performing either of the following:
Pass the drm_optional parameter in the playback URL.
Pass the ck parameter in the playback URL.
All players:
Update your player to request a cleartext key via the following URL:
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.