Closed kratz00 closed 7 years ago
Hi.
Flash DRM requires two parts, one in Flash plugin itself, and other in browser. As far as I know, desktop builds of Chromium have no DRM support. Some code in Chromium only is built when target is set to ChromeOS. And that is probably the case for DRM-related code.
It's possible to build own version of Chromium, targeting ChromeOS. And it (probably) should work with Flash DRM. Here are build instructions: https://chromium.googlesource.com/chromium/src/+/lkgr/docs/linux_build_instructions.md, and here is how to change parameters: https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/quick_start.md#Cross_compiling-to-a-target-OS-or-architecture. Second page mentions target_os = "chromeos"
, which is what you need.
I've never tried to make such builds.
@i-rinat thanks for your detailed feedback.
Looks like there is no easy way to get Flash DRM working currently. With the just released Firefox 52 NPAPI support was dropped (I read something that there is still an exception for the official Flash plugin). If this is the case the easiest solution might still be using freshplayerplugin to get Flash DRM working (does it still work with Firefox 52?), compared to compiling Chromium. Or are there other "native ways" (I am not talking about Wine or VMs)?
does it still work with Firefox 52?
Still works with Firefox 52. And most likely will continue to work, till NPAPI complete removal.
Since freshplayerplugin reports the same name, description, and version strings as original Flash player, Firefox considers it the Flash plugin. At the beginning, I was using distinct names, but it turned out that many websites expects those strings to be in the specific format. So I ended up mimicking original Flash.
It's still possible to determine if it's a real Flash plugin or freshplayerplugin by examining plugin file name. But Firefox seems do not care.
By the way, many providers switched from Flash DRM to HTML5 EME. Both Chrome and Firefox now support Widevine, which is used by Google Play and Netflix. So it could be that you don't need Flash anymore.
@i-rinat I am using freshplayerplugin (from master) together with Firefox now and Flash DRM works like a charm! Thank you very much for your support and this project 👍
For completeness, this is the content of my ~/.config/freshwrapper.conf:
pepperflash_path = "/usr/lib/PepperFlash/libpepflashplayer.so"
enable_hwdec = 1
but netflix is not the only source of videos and there are others whom do not support widevine
At some point, Firefox removed parts of NPAPI that are not used by the original NPAPI Flash. One of the parts was used by freshplayerplugin, and that's why POST requests stopped working. Most of the Flash movies didn't use POST requests, so they continued to work. But DRM-related ones stopped working properly. Since then, I've added a workaround in https://github.com/i-rinat/freshplayerplugin/commit/4a29ab58e28e31e0e8a92dfd65e45775e73dcb21. So DRM-related Flash-movies should work now.
This request for help has nothing to do with this project, I only think this might be the best place to get help.
I got libpepflashplayer.so from one of the Chrome OS recovery images. It is version 24.0.0.221 (which is the latest version at the moment) and it still has DRM support:
I am using it together with chromium:
chromium --ppapi-flash-path=/usr/lib/PepperFlash/libpepflashplayer.so
Regular Flash content works without any issue. DRM does not, I am testing DRM like this:
The error I see in the console, I started the browser from is:
[5772:5772:0310/192435.591968:ERROR:device_id_fetcher.cc(143)] Empty machine id
/etc/machine-id and /var/lib/dbus/machine-id exist, I even installed hal-flash as a last resort.
Any help would be appreciated.