Ooyala provides support for Widevine to meet the content protection requirements for high-quality content online in on-demand and live streaming formats. Widevine’s multi-platform DRM provides the capability to license, securely distribute and protect playback of multimedia content on any consumer device. Content owners and digital media providers can use Widevine’s solutions to ensure revenue generating services keep flowing to whatever device consumers desire.
To give you the capacity to protect your content using Ooyala and Widevine, you need to understand how Widevine works and how to use Widevine with your iOS, Android or Connected TV device. This document describes how to do this.
Widevine is part of a set of comprehensive content protection features that work together to provide you with the ability to secure your content. These features include:
- User Authentication through token-based options such as the Ooyala Secure Player Token. For information about setting up and using this feature, see Ooyala Player Token.
- Content Authorization through mechanisms such as Widevine. Information about Widevine is provided in this document.
- Authorization API which is a mechanism that handles all authorization requests. For more information about the Authorization API, see Player Authorization API.
Supported Platforms and Formats
If you want to have content that is DRM-protected with Widevine, you need to use the supported platforms formats appropriate for iOS Apps, Android Apps, and Connected TVs.Platform | Supported Formats | Notes |
---|---|---|
Android 2.x | MP4 | Android 2x does not support live streaming. |
Android 3.0+ | MP4, WVM (VOD)HLS (Live) | WVM is Widevine ABR. |
iOS | WVM (VOD) HLS (Live) | Although MP4 is available, we should encourage customers to move away from using this format. |
ConnectedTVs and STBsSamsung 2010+LG2011+ | WVM (VOD) HLS (Live)What the TV supports | For apps that support WVM or HLS.Note that other Connected TVs and STBs may work but have not yet been tested by Ooyala. |
Ooyala and Widevine DRM Workflow
Customers who want Widevine need to work with Ooyala Customer Success Managers or professional services to enable Widevine support. When you use Ooyala’s Widevine server, the licenses exist in the Widevine cloud.
With the implementation of Widevine DRM, each content viewer needs an individual license as the content is encrypted and is useless without license. Widevine does not perform the encryption, content from the CDN is already encrypted. Widevine just provides a secure cloud for license key storage and retrieval.
If you want to integrate with Widevine, you need to understand how securing your content works with the various parts of the Ooyala content protection features. The following diagram illustrates how Widevine is related to the Ooyala Player Token (an optional but recommended user authentication feature) and the Ooyala Authorization API that handles the user authentication requests.
The following table describes the workflow steps for using Widevine for content protection.
Step | Action | Responsible Party | Additional Documentation |
---|---|---|---|
1. | The video player App, authenticates the user against the content provider. | App developers and content provider’s services | Ooyala Player Token |
2. | The content provider provides an Ooyala Player Token to the app that indicates the authentication status of the user. | App developers and content provider’s services | Ooyala Player Token |
3. | The video app makes an authorization request to Ooyala that includes the Ooyala Player Token. | App developers | Ooyala Player Tokenand Player Authorization API |
4. | Ooyala's authorization request returns a stream url and the authorization cookie. | App developers | Player Authorization API |
5. | Device native playback components will contact Ooyala for DRM licenses. | Ooyala | |
6. | Ooyala provides the license to playback DRM content. | Ooyala |
Using Widevine with Ooyala SDK-based Apps
To use Widevine with our iOS and Android players you need to download and use our Native SDKs to create the client-side pages. To download the Ooyala:- Android SDK - http://support./developers/resources#mobile
- iOS SDK - http://support./developers/resources#mobile
Using Widevine with Connected TVs
If you want to use Widevine with connected TVs, you need to:- Implement Widevine in accordance with the device specific SDKs. You pre-configure your device SDK and Widevine set up according to the SDK instructions.
- Initialize Widevine and the device SDK in the SDK-specific language (this will vary from device to device). Set up your app in accordance with the applicable platform programming guide.
- You will make a call the the Authorization API (this is a JSON RESTful API call).
- You will make the call to get the Widevine URL or stream data.
- You need to map the elements of the retrieved URL to the corresponding values of the Widevine fields. Plug in the values described below.
For this segment... | Provide... |
---|---|
video url | the stream URL |
drm server | Widevine server path in the Authorization response |
portal, provider, or owner id | ooyala |
device id | optional, unique identifier for the device, you generate the id |
Authorization Response with Widevine Stream
For an authorization response that include a widevine stream, an additional value namedwidevine_server_path is returned. This should be passed along with the stream url to the playback SDKs for obtaining the Widevine license and decrypting the token.{ "authorization_data":{ "huNWp2NjoCaCKrsV_wqBdcSw9P1XmlwW":{ ... "streams":[ { "delivery_type":"wv_wvm", "url":{ ... }, "widevine_server_path":"http://player./sas/drm2/lvcjAxOj82_rjlIAJ6Jr8ZZqGP-s/huNWp2NjoCaCKrsV_wqBdcSw9P1XmlwW/widevine/ooyala" } ] } }, "debug_data": ..., "signature":"Fo6ewzq2tTrLJrFmjo5eQpeKUOoLvhSen7KLjrFU1YQ=\n" }