The Widevine DRM is a content protection system created by Google which provides licensing, distribution, and protected playback services. It works on web browsers, such as Chrome, Microsoft Edge, and Firefox as well as on the Android OS. The currently used Widevine DRM, called Widevine Modular, supports the DASH/HLS streaming formats along with HTML5 standards (EME/MSE). It also supports standards based on Common Encryption (CENC), which lets a single protected file to be streamed across multiple devices regardless of the DRM they support.
Widevine DRM offers three levels of content protection, namely L1, L2, and L3. For the L1 level of DRM video protection, all content processing, cryptography as well as decryption must be performed within the trusted execution environment (TEE) of the Android device processor. L2 requires only cryptography to be performed within the TEE, while L3 applies to devices which are not equipped with TEE or desktops. Only L1-protected devices can play HD or UHD quality content from Widevine-secured services, whereas browsers such as Chrome on desktop only support L3 at maximum and can play content at sub-HD resolutions. Widevine’s content decryption module also includes support for its verified media path (VMP) on desktop browsers, which helps verify the authenticity of the browser framework.
Encoding of content with Widevine DRM requires an encryption key, also known as DRM_KEY, and a ContentID in the format DRM_WIDEVINE_KID. The user defines the streams which are directed towards the input file’s video track and couples them with a codec configuration. The output format of the video is then determined by mixing with the help of these streams. Widevine DRM works with both H264 and VP9, as it can be used with fMP4 muxings or WebM muxings. A CencDRM configuration, which is a general configuration object where a key is provided for content encryption, is then added to configure the muxing. The output configuration, which is typically a part of the DRM configuration, is added to the muxing by creating the Drm Config method and the encoding can then be started with execute Encoding. The HLS and MDP manifests are finally created upon encoding.
The Widevine DRM licensing can set rules like license duration, rental duration, and playback duration. It provides playback support with the help of Shaka Player, which is an open source web-player created by Google. Multi-DRM service providers, which provide cloud-based SaaS, have now eased the integration process by offering integrated license management.