Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Electron isn't loading Netflix even with a Widevine plugin fully functional

I have a side project that play Netflix, and suddenly it stopped working and started showing this error.

enter image description here

I didn't update anything on my side, it just stopped working from Netflix's side (I guess).

I'm using Electron 1.8.4, I've tried upgrading Electron to the latest 2.0.0beta-5 without success.

I've also tried to use Widevine plugin from Chrome 59 to 62 and even the one coming from the Brave browser, without success.

I've created a small repository to reproduce the issue easily.

It's also letting you load the Shaka Player and Bitmovin DRM tests, so you can ensure the Widevine plugin is correctly loaded :

git clone [email protected]:yoannmoinet/netflix-and-electron.git
cd netflix-and-electron
npm install
npm start

I've also opened an issue with Electron to get help there as well.

I'm really stuck there, thank you so much for your help.

EDIT:

It appears that Netflix implemented a new VMP (verified media path) support to the Widevine browser CDM lately. So the little players/browsers won't be able to play DRM content without a proper, whitelisted, Widevine CDM installation from Google.

I've contacted them to see what are the steps to get one.

EDIT #2 (07/24/20):

It's been two years, and I still have no license.

I've signed a few documents to get it, but since then, no news.

Last contact I had was a few weeks ago where they finally answered one of my emails, stating that they would transfer all this process to another third party. I'm guessing I'm back to square one now.

This must be a joke.

All Hail DRM.

like image 551
Yoann Avatar asked Mar 24 '18 10:03

Yoann


1 Answers

I ran into the same problem. I ended up using Castlabs EVS to VMP sign my package. Info and instructions on how to use are located here: https://github.com/castlabs/electron-releases/wiki/EVS

Note, if you are on a Mac you must invoke the VMP signing prior to code signing. On Windows you have to do it after. Electron-builder has afterPack and afterSign hooks for this.

I have a working version of this using the Castlabs Electron fork here: https://github.com/jtvberg/StreamDock

UPDATE: Forgot to mention that for some services you need to set a valid Chrome user agent. YouTube TV needs that for sure otherwise you can browse content but it will error on playback. There is a userAgent property you can set in the BrowserView.

like image 121
jtvberg Avatar answered Nov 10 '22 00:11

jtvberg