Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Netflix isn't working even with Widevine correctly loaded. #12427

Closed
yoannmoinet opened this issue Mar 24, 2018 · 32 comments
Closed

Netflix isn't working even with Widevine correctly loaded. #12427

yoannmoinet opened this issue Mar 24, 2018 · 32 comments

Comments

@yoannmoinet
Copy link

@yoannmoinet yoannmoinet commented Mar 24, 2018

Hi there, I have an issue when opening Netflix with Electron.
I had a Widevine plugin working for some time, and it started to fail unexpectedly.

Could you help troubleshoot this please?

  • Electron version: 1.8.4

  • Operating system: macOS High Sierra 10.13.3

  • My environment

env version
ares "1.10.1-DEV"
atom-shell "1.8.4"
chrome "59.0.3071.115"
electron "1.8.4"
http_parser "2.7.0"
modules "57"
node "8.2.1"
openssl "1.0.2l"
uv "1.13.1"
v8 "5.9.211.38"
zlib "1.2.11"
  • Plugins

screen shot 2018-03-24 at 11 16 43

Expected behavior

When widevine plugin is correctly loaded, it should play Netflix.

Actual behavior

Getting an error in Netflix, eventhough shaka and bitmovin show a correctly loaded and activated widevine plugin.

screen shot 2018-03-24 at 10 21 28

How to reproduce

I've created a very simple repo which will help reproduce the issue easily.
You'll be able to also load Bitmovin and Shaka to ensure Widevine is indeed correctly enabled.

git clone git@github.com:yoannmoinet/netflix-and-electron.git
cd netflix-and-electron
npm install
npm start

Thank you so much for your help.

@welcome
Copy link

@welcome welcome bot commented Mar 24, 2018

👋 Thanks for opening your first issue here! If you're reporting a 🐞 bug, please make sure you include steps to reproduce it. We get a lot of issues on this repo, so please be patient and we will get back to you as soon as we can.

To help make it easier for us to investigate your issue, please follow the contributing guidelines.

@sofianguy
Copy link
Member

@sofianguy sofianguy commented Mar 26, 2018

Thanks for reaching out!

Because we treat our issues list as the team's backlog, we close issues that are questions since they don't represent a task needing to be completed. For most questions about Electron there are a lot of options.
Check out the Electron community. There are also a bunch of helpful people in this community forum that should be willing to point you in the right direction.

@sofianguy sofianguy closed this Mar 26, 2018
@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Mar 26, 2018

@sofianguy It might have been formuled as a question, but I do think it's a bug on Electron's part, or a bad documentation.

And I did everything needed to describe it as well as I could, with repro steps and all.

@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Mar 26, 2018

Even though this issue has been closed, I've new informations for any new person that will come here for answers, because this is an Electron issue nonetheless.

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 coming from Google.

Brave got the same issue, Vivaldi as well.

I've contacted them to see what are the steps to get a legit widevine plugin.
Also, I've created a bountied question on StackOverflow.

Basically, it means that Electron based apps won't be able to play Netflix anymore.

All Hail DRM.

@levrik
Copy link
Contributor

@levrik levrik commented Apr 4, 2018

@yoannmoinet Really? I just started building an Netflix Desktop app based on Electron...

@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Apr 4, 2018

@levrik I confirm, there is no solution as of now. I'm still waiting after Google to get a widevine legit plugin. But I'm not really confident.

In the mean time, I'm working on a shady solution. We'll see where that takes me.

If you get it to work, I'm really interested, because I have a desktop app, published on the AppStore that isn't working with Netflix anymore.

@levrik
Copy link
Contributor

@levrik levrik commented Apr 4, 2018

@yoannmoinet What is the app you have published?

@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Apr 4, 2018

@levrik
Copy link
Contributor

@levrik levrik commented Apr 4, 2018

@yoannmoinet uh.. an paid app. That's bad that it isn't working anymore. In the meanwhile I found this: https://github.com/castlabs/electron-releases
It gets it's Widevine binaries from this URL https://redirector.gvt1.com/edgedl/widevine-cdm/1010-win-x64.zip which seems to be Google owned according to whois entry.

EDIT: Seems to be an version with an evaluation license only. From LICENSE.txt inside the zip file:

If you are interested in licensing the Software, please contact
widevine@google.com.

@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Apr 4, 2018

Thank you @levrik, I've tried your link.
Unfortunately it's missing the adapter needed by Electron.

I might try using the Brave's engine Muon that is a fork of Electron, they have a different way to register the widevine plugins.

@levrik
Copy link
Contributor

@levrik levrik commented Apr 4, 2018

@yoannmoinet The adapter is inside the GitHub releases of the linked repo. Also wanted to try out Muon. Will do so tomorrow after work.

@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Apr 4, 2018

oh man... it's working when using the electron-releases package.
Thank you so much @levrik.

Unfortunately it won't build with it.

At least, I'm able to make Netflix work in development. It lets me have a new way to investigate the issue.

@levrik
Copy link
Contributor

@levrik levrik commented Apr 5, 2018

@yoannmoinet Do you plan to write an message to that mail address from the LICENSE.txt? If yes, would be interested in the outcome.

@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Apr 5, 2018

I might, I've already contacted Google on another email address (widevine-support@google.com) to get a legit plugin. I'll try again on this one.

@levrik
Copy link
Contributor

@levrik levrik commented Apr 12, 2018

@yoannmoinet Nice, please keep me posted. Also via mail if you don't want to post that in public (see my GitHub profile for that).

@ccj242
Copy link

@ccj242 ccj242 commented May 22, 2018

@yoannmoinet any updates on this? I have contacted widevine myself and have yet to hear back.

@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented May 25, 2018

@ccj242 unfortunately still nothing from Google (widevine).
I'll keep you posted here once I have something new.

@alexanderturinske
Copy link
Contributor

@alexanderturinske alexanderturinske commented Jun 29, 2018

Looking at the castlabs/electron-releases repo, it seems several have been able to build using it and the certificates they received from Google; does this mean that the Widevine plugin is no longer viable in versions of electron >v1.7.x? (as VMP was introduced in Chrome 59, which was introduced in v1.8.0). From the maintainer of castlabs/electron-releases, "regular Electron does not provide Widevine support without manually installing a Widevine CDM, which makes just signing it pointless. Even with a manual CDM installation there are other aspects of VMP that need to be fulfilled that stock Electron does not, this is part of the value the castLabs Electron releases bring to the table.", so there should probably be something in the docs mentioning that.

EDIT 07/03/18
Answer:
< v1.8.x: One only needs to include the Widevine plugin found in the docs
>= v1.8.x: One needs to include the Widevine plugin AND Verified Media Path (VMP) application signing, which can be done more easily with castlabs/electron-releases, which handles the plugin for you and supplies a script to sign the application, but VMP requires getting a certificate, passphrase, and key from Google, which can be requested at widevine@google.com, but it WILL take time to get it back (weeks to months).
Additionally, the castLabs version will always be behind the electron version and does not support Linux. Also, one cannot simply take their signing script and use it on the normal version of electron as they have done special work to electron to make it compatible with VMP-signing.

Relates to: #10806

@alexanderturinske
Copy link
Contributor

@alexanderturinske alexanderturinske commented Aug 6, 2018

@yoannmoinet Did they get back to you?

@ccj242
Copy link

@ccj242 ccj242 commented Aug 6, 2018

To share my experience, my non-profit sent 3 certified letters to widevine headquarters in addition to countless online forms and emails sent and have received no word whatsoever. Very frustrating. I'm beginning to worry this is a lost cause. Has this been your experience too @yoannmoinet?

@alexanderturinske
Copy link
Contributor

@alexanderturinske alexanderturinske commented Aug 6, 2018

My company uses DRMToday (paid-service owned by castLabs) and they were able to get us the necessary items, though it still took months.

alexanderturinske added a commit to alexanderturinske/electron that referenced this issue Aug 10, 2018
Describe changes in Widevine CDM plugin based on new widevine requirements

Relates to: electron#12427 
Relates to: electron#10806
@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Aug 16, 2018

@alexanderturinske I've contacted widevine-support@google.com and they answered me 1.5 month later.

They asked if I had completed the 'Widevine MLA'.
I had no idea what it was, so I asked them.

No news for more than 2 weeks now. I'll ping them again.

alexanderturinske added a commit to alexanderturinske/electron that referenced this issue Oct 19, 2018
Describe changes in Widevine CDM plugin based on new widevine requirements

Relates to: electron#12427 
Relates to: electron#10806
alexanderturinske added a commit to alexanderturinske/electron that referenced this issue Oct 19, 2018
Describe changes in Widevine CDM plugin based on new widevine requirements

Relates to: electron#12427
Relates to: electron#10806
@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Apr 2, 2019

I've passed the one year anniversary waiting for my license.
Still no license, but I've finally signed an agreement a few weeks ago.

Waiting for the next steps.

@ccj242
Copy link

@ccj242 ccj242 commented Apr 2, 2019

Don't get your hopes up, I signed my agreement a few months ago and after repeated emails, still have no response.

@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Aug 4, 2019

4 months after signing the agreement, still no license. 😞

@ccj242
Copy link

@ccj242 ccj242 commented Aug 6, 2019

I can confirm nothing on my end either, 6 months and counting since I signed the agreement.

@yoannmoinet
Copy link
Author

@yoannmoinet yoannmoinet commented Aug 6, 2019

My app might be getting featured on the AppStore in the coming weeks, so I'll add a message when visiting Netflix, Hulu or PrimeVideo.
Explaining to the user that Google still hasn't given me a license to stream those protected content.

Maybe, I could add some link to post on twitter and call Google out on their retention.

@alexanderturinske
Copy link
Contributor

@alexanderturinske alexanderturinske commented Aug 6, 2019

I believe the process will be greatly expedited (if not necessary at this point) for a developer/company to become/go through a Certified Widevine Implementatin Patner in order to receive the necessary certificates. That link has a list of partners that seem to provide widevine support and I would try reaching out to one of them for assistance. As previously mentioned, we went through castLabs and it still took months.

@fightwithcrayon
Copy link

@fightwithcrayon fightwithcrayon commented Mar 24, 2020

@ccj242 @yoannmoinet To tie this story off, did either of you ever get anything in the end?

I may also need to go the Implementation Partner route – does anyone know the cost typically involved in this option?

@ccj242
Copy link

@ccj242 ccj242 commented Mar 25, 2020

@fightwithcrayon So funny you should ask this now -- just two weeks ago Widevine sent me the certificates totally out of the blue! This after they sent me the agreement a year ago, - finally closing this two year saga. I had all but given up and I have no idea why they suddenly decided to do it. There was no charge, but perhaps it was because my organization is a non-profit? Anyway, fairytale endings occasionally come true after two years of waiting? At long last here is my newly updated widevine-working electron app: https://www.cinqmarsmedia.com/chameleonvideoplayer/

@AlexanderAllen
Copy link

@AlexanderAllen AlexanderAllen commented May 14, 2020

Just in case it helps anyone, here's a writeup of implementing widevine in Electron over at Medium.

Big shoutout to @yoannmoinet and @ccj242 for persisting through two years of insanity!! This issue was my fountain of wisdom and hope when all else failed.

@samuelmaddock
Copy link
Member

@samuelmaddock samuelmaddock commented Jun 8, 2020

Using castLabs Electron: https://medium.com/@callback.insanity/castlabs-widevine-cdm-ea369bb5623b

By default the castLabs fork uses a version of Widevine signed for development purposes. Unless you complete a license agreement with Widevine, many websites—including Netflix and Hulu—will fail to load. A VMP-signed production binary is required for these websites.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
8 participants