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

Support Widevine CDM #85

Closed
odebroqueville opened this issue Apr 2, 2019 · 8 comments
Closed

Support Widevine CDM #85

odebroqueville opened this issue Apr 2, 2019 · 8 comments

Comments

@odebroqueville
Copy link

@odebroqueville odebroqueville commented Apr 2, 2019

I recently read the following article:
https://blog.samuelmaddock.com/posts/google-widevine-blocked-my-browser/

and thought the two following links could help you:
https://castlabs.com/news/downstream-open-source-downloader-electron/
which shows that Castlabs implemented Widevine support in their custom Electron build

https://electronjs.org/docs/tutorial/testing-widevine-cdm

@cedws
Copy link
Sponsor Contributor

@cedws cedws commented Apr 2, 2019

It looks like Samuel is aware of this fork. #1

Wait to hear back from Widevine DRM about licensing agreement for Castlabs fork (emailed 28/12/2018 sob).

@samuelmaddock
Copy link
Owner

@samuelmaddock samuelmaddock commented Apr 2, 2019

Thanks, @odebroqueville. I am aware and it's what I was planning to use. Without a license agreement with Widevine though, I won't be able to playback content from Netflix, Hulu, etc.

@SwimmingTiger
Copy link

@SwimmingTiger SwimmingTiger commented Apr 7, 2019

Even in the worst case, I think we still have a solution, although it may be heavy. The solution is switching to the Gecko kernel written by Mozilla for Firefox.

The logic of this solution is this:

  1. Firefox (and Gecko) is free software, so you can modify it and republish it.
  2. Google personally wrote the Widevine extension for Firefox. Therefore legal risks are borne by Google, not Firefox.
  3. Google will not give up support for this extension in the near future, because if they give up, Firefox users of video sites will complain, and Google as a technology partner will be under pressure.
  4. If your browser is compatible with Firefox's Widevine extension, users can install it themselves so that you can avoid all licensing problems.

A few days ago, I saw Microsoft's decision to use Chromium core in their Edge browser, and they also suggested that Mozilla use the same core for Firefox. Mozilla is of course categorically rejected.

It now appears that this decision is undoubtedly correct and valuable. Google has begun to show what it once hates. It began to use its proprietary technology to set obstacles for competitors (Just like what Microsoft did previously on Intelnet Explorer). It seems that now, whether it is Microsoft or Google, the Web will not have a bright future if the browser market is monopolized.

It's time to launch an Electron-like technology built with other cores.

@samuelmaddock
Copy link
Owner

@samuelmaddock samuelmaddock commented Apr 7, 2019

@SwimmingTiger There is no (legal) technological solution with using the Widevine CDM. Verified Media Path (VMP) requires browsers to be identifiable and whitelisted by Google. According to the latest news on Widevine's website, it will soon be more strictly enforced as well.

I'd love for a Firefox version of Electron to exist, but it would still run into the same gatekeeping by Widevine for playback of DRM-enabled media.

@rugk
Copy link

@rugk rugk commented Apr 21, 2019

As per your blog (@samuelmaddock):

I’m now only left with two options regarding the fate of Metastream: stop development of a desktop browser version, or pivot my project to a browser extension with reduced features. The latter requiring publishing to the Google Chrome Web Store which would further entrench the project into a Google walled garden.

So ever heard of Firefox? Why not implement a Firefox extension? (actually, you Chrome/ium and Firefox extensions are largely compatible, so you could still publish to Google's app store.)

Of course, it's Widevine there too, as mentioned in this thread, but at least you need no license, as it is in the browser (if the user did not opted-out downloading it).

@samuelmaddock
Copy link
Owner

@samuelmaddock samuelmaddock commented Apr 22, 2019

@rugk I had thought about implementing Metastream with a browser extension, but it would limit the vision I originally had for it. Anyway now that I'm forced to by the gatekeeping process, I'm doing just that. See #94

@oscartbeaumont
Copy link

@oscartbeaumont oscartbeaumont commented Apr 29, 2021

I would recommend giving Castlabs Electron EVS service a look. Its documentation can be found here. A quote from the linked documentation.

The Electron for Content Security VMP signing, EVS, service provides production Widevine/VMP signing of macOS/Windows application packages derived from official releases of Electron for Content Security, from v6 and onwards.

Note: This is a service that works with the normal Castlabs Electron fork, I am not just recommending using the fork by itself because as you know that would still require a certificate from Widevine.

@samuelmaddock
Copy link
Owner

@samuelmaddock samuelmaddock commented Apr 29, 2021

I would recommend giving Castlabs Electron EVS service a look. Its documentation can be found here. A quote from the linked documentation.

The Electron for Content Security VMP signing, EVS, service provides production Widevine/VMP signing of macOS/Windows application packages derived from official releases of Electron for Content Security, from v6 and onwards.

Note: This is a service that works with the normal Castlabs Electron fork, I am not just recommending using the fork by itself because as you know that would still require a certificate from Widevine.

I've looked into it and it indeed works for a use case like Metastream. However, there a number of problems that come with shipping an Electron browser which I'm still considering. Ongoing related work is happening in electron-browser-shell.

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

No branches or pull requests

6 participants