Search code examples
androidexoplayeroffline-cachingdrmwidevine

Get Widevine License Server key


What to achieve: I need to support offline videos on android device just like Netflix and prohibiting its distribution using DRM support.

What I've done till now: I've converted a sample video into m3u8 format using Shaka Packager. Used this link https://google.github.io/shakapackager/html/tutorials/widevine.html

Problem faced: 1. Is this enough for DRM protection? 2. I know i'll have to use Licensed Widevine Server, which I'm unable to find anywhere on how to get one. Please help me out on this. 3. I suppose for point 2 I have to store a secret key on server. This same key will be used on android device to enable the video player. I'm a little confused on how to setup this.

Thanks in advance!!


Solution

  • You probably want to use MPEG-DASH instead of HLS. Widevine doesn't support HLS as the packaging format, and MPEG-DASH is what pretty much all Widevine content is packaged as.

    The shaka packager documentation has information on both how to package DASH and apply DRM.

    In order for DRM to work, you will, as you mention, need a Widevine License Server. You have to options for this. Option 1 is to become a CWIP yourself, the other is to work with an existing CWIP. You are also correct that the key used to encrypt the content should be stored on the license server side. Some of the more popular providers might be DRMToday and BUY DRM.

    When you have your content, and the license server, the last piece you need is a video player. For Android, the most popular player is ExoPlayer which is developed at least partially by Google. ExoPlayer has documentation on how to work with Widevine and has a downloader component.