Widevine CDM (L3) on native Firefox

Hello all,

I want to share that it is possible to enjoy Widevine protect content on Firefox (possibly derivatives also) in addition to what is possible currently with chromium. This will be L3 decode (i.e. software) but in any case it's better than no decode.

What you will need:
  1. Rust (pkg install rust)
  2. OpenWV, here: https://github.com/tchebb/openwv (follow instructions here)
  3. A WVD file from a real device (use a search engine to look for files or extract from an Android device. Note: Android Studio files will work but my experience is that the audio stops after ~10 seconds)
You will have to create a gmp-widevinecdm folder in your Firefox profile folder (check about:support for the location of the folder, but should be in ~/.mozilla/<profile>), inside that folder create the openwv folder as per OpenWV instructions.
Then copy the result of the build (i.e. after running cargo build --release after you placed your WVD file as embedded.wvd on the root of the openmw build folder) as in the target/release/libwidevinecdm.so file, to this ~/.mozilla/<profile>/gmp-widevinecdm/openwv folder. You will also need to copy the manifest-firefox.json file (it's on the root of the build openwv folder) to the ~/.mozilla/<profile>/gmp-widevinecdm/openwv folder named as manifest.json.

In the end you should have a ~/.mozilla/<profile>/gmp-widevinecdm/openwv folder with just two files: libwidevinecdm.so and manifest.json.

As the default Firefox installation does not include the Widevine plugin you will also have to go into about:config and create some new entries:
  1. key: media.gmp-widevinecdm.enabled, type: boolean, value: true
  2. key: media.gmp-widevinecdm.visible, type: boolean, value: true
  3. key: media.gmp-widevinecdm.autoupdate, type: boolean, value: false
  4. key: media.gmp-widevinecdm.version: type: string, value: openwv
You can check if everything is working by going to: https://bitmovin.com/demos/drm, if it's working it will detect the browser and say Widevin(e), and the video will play.

What works for me (i.e. tested):
Important notes:
  • I'm in no way associated with any of these projects.
  • This may work or not for you (it works for me).
  • In the future it may break (if it is working now).
  • Only use device keys from a device you own.
  • I've tested this with FreeBSD 15.0-RELEASE-p1 (amd64)
  • Enjoy
 
Back
Top