-
Notifications
You must be signed in to change notification settings - Fork 176
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
feat: implement widevine cdm #720
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I can see, the castlabs electron releases cannot be built from source (the source code published in the castlabs repo is not sufficient from building electron from scratch). In addition, it loads an explicitly closed source proprietary component (the CDM itself). This raises significant concerns with regards to transparency and user privacy.
I'd rather have the option to disable downloading and loading the CDM, or preferably, having the option of running Ferdium with an official build of Electron (as opposed to the castlabs binaries).
On a more technical side: if we want to use CDM, won't we need to add something like https://github.com/castlabs/electron-releases/wiki/EVS to our build process?
(Disclaimer: I'm also strongly opposed to any form of DRM philosophically. However, that in itself wouldn't make me opposed to this particular PR, since folks apparently want to run spotify and other streaming services in Ferdium, and they are being forced by the respective companies to install DRM modules on their computers. Nevertheless, I'd encourage such folks to support creators and buy media released DRM-free instead.)
If we want to support loading DRM content, there's doesn't seem to be a way around using CDM and opting into castlab's electron build originally just seemed to be the easiest. Although I do agree that it's worth looking into a way of letting the user opt into using the CDM. Maybe we don't bundle castlab's electron dependency with the project but rather have something in the settings where the user can set the Widevine library path and version? And then we can appendSwitch from the settings like so: Would get us out of needing to use castlab's electron build and allow the user to opt into using the CDM which alleviates the transparency and user privacy a little bit. |
It looks like the main benefit of the castlabs binaries is that they can be automatically signed for VMP: https://github.com/castlabs/electron-releases/wiki/EVS So if spotify doesn't need VMP for streaming, I guess we could still go with the original electron binaries.
That could be very nice indeed! I wonder if we could still keep the auto-download aspect. E.g., the |
Sorry been really busy these days so if anyone else wants to pick this up, feel free to. |
Is it important to make Ferdium automatically download the required files? Qutebrowser has no settings for disabling or enabling CDM (as far as I know), it just detects whether or not the files are in the required place and uses them if they are, or do nothing if they aren’t. It’s up to the user to get the files and put them in the right place (i.e. install the aforementioned chromium-widevine on Arch). Why not replicate this behaviour? PS: I don’t know how that would work on Windows and MacOS though |
I'm not expert but maybe this will help? https://github.com/oscartbeaumont/ElectronPlayer#the-pain-of-widevine |
Pre-flight Checklist
Description of Change
Add Widevine support by implementing castlab electron
Motivation and Context
This would allow users to add recipes and custom websites that have DRM contents such as Spotify.
#687
#978
Screenshots
This is how Spotify should look like:
but currently if you add Spotify, it shows this instead:
Checklist
npm run prepare-code
)npm test
passesRelease Notes
Allow Ferdium to show websites that required CDM support such as Spotify