Need Help Fixing Fedora Chromium Install Docs

I’m working on the Quick Doc for Installing Chromium or Chrome on Fedora, and I ran into some issues around the widevine plugin.

  1. The following statement is made, “Fedora’s Chromium package does not support h264, mp3, or aac because of legal concerns. It is built to support the widevine plugin (but does not include it).”
  • Is the “widevine” plugin still needed in Chromium. I did a test of Youtube videos and those played without this plugin being installed according to the directions in the Quick Doc?
  • Has the need for the widevine plugin ceased to be a need with the latest Chromium on F31?
  1. Under “Enabling Chromium plugins” you find the additional steps:
    1. Copy libwidevinecdm.so and libwidevinecdmadapter.so from the Google Chrome package into /usr/lib64/chromium-plugins . 2. Restart Chromium. You can see Widevine Content Decryption Module in chrome://flags .
  • I downloaded the Chrome.rpm from Google, but in that rpm you can only find libwidevinecdm.so and there is no libwidevinecdmadapter.so. Is only the libwidevinecdm.so still necessary?
  • There is no /usr/lib64/chromium-plugins but there is a directory called /usr/lib64/chromium-browser that seems to have all of the library files in it. Should users copy the libwidevinecdm.so file into that directory?
  • When you restart Chromium after moving libwidevinecdm.so into that directory, you don’t see a flag that you can change when you go to chrome://flags. So does that mean the library is not working or that it is in the wrong place?

As I mentioned, I’m working on this Quick Doc page and would like to make it better for all Fedora users, so if you have some information about running Chromium on F31 that would be helpful to me in updating that Quick Doc page, I would appreciate it. Thanks.

4 Likes

Did you try chromium-freeworld from the RPM Fusion?
There’s also another thread about Widevine in Chromium:
https://discussion.fedoraproject.org/t/installing-widevine-for-chromium/71299?u=vgaetera
It seems working without the chrome://flags step.

1 Like

I am stuck with the same issue. Installing chromium-freeworld doesn’t seem to help at all (as stated in the other post)

I attempted this, and didn’t have any luck with chromium or chromium free world.

Revisited this today with chromium-freeworld and was able to get it working by doing the following:
Installed Google Chrome
copied the entire WidevineCDM directory from /opt/google/chrome to /usr/lib64/chromium-freeworld

Then removed chrome and so far it still works.

The directory structure of WidevineCDM is:
WidevineCDM
LICENSE manifest.json
-> _platform_specific/linux_x64/libwidevinecdm.so

Thanks @grumpey for working on this. I will look into including this in the updated Quick Doc that I’m working on. I will also try to test it on my system too.

What did adding WidevineCDM enable you to do which you were not able to do before moving the directory into the path of chromium-freeworld?

That might help inform how I layout the directions for the installing Chromium.

Chromium-Freeworld wasn’t seeing the Widevine plug-in when I was using netflix.
I tried this with just the file this morning so I would assume you should be able to do just the below:

  1. Download the Chrome rpm file
  2. Extract the plugin:
    In my case I’m doing this from the Downloads directory:
cd ~/Downloads
rpm2cpio google-chrome-stable_current_x86_64.rpm | cpio -t | grep -i libwide 

This will output the path of the widevine file.
./opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so

You would then want to extract it
rpm2cpio google-chrome-stable_current_x86_64.rpm | cpio -ivd ./opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so

And then copy it to the appropriate directory
cp -r opt/google/WidevineCdm /usr/lib64/chromium-freeworld
** note there is not a slash in front of opt as it was extracted in the current directory **

I would assume this would work the same for Chromium.
What I don’t see is anything listed for Widevine under chrome://components …

Thanks

@grumpey, do I understand you correctly? libwidevinecdm.so is not working with chromium-freeworld?

If so this would mirror what I have been hearing from the bugzilla bug I filled and other sources. I would like to change our current “Quick Doc” about installing Chromium and Chrome to better reflect the current state of things. I know that our present docs are out of date. I believe the safest thing to do with our docs at this time would be the following two changes:

  1. Remove the documentation that encourages you to install Widevine into Chromium, because the current docs are not accurate because there are not two files in the Chrome rpm. Also @grumpey seems to have issues with attempting to just use the single Widevine library in Chromium-freeworld. The single libwidevinecdm.so doesn’t seem to work with the Chromium build in the default Fedora repos either with the testing I was able to do on my system.
  2. Add a new note that states because of legal and licensing reasons our Chromium distribution was compiled without proprietary libraries so some websites may have limited functionality when compared to Chrome which comes directly from Google.

I could list a few examples of limited functionality like Netflix not working with Chromium, but I would need to depend on feedback from the Fedora Community because I don’t have access to all these services like Netflix.

Thanks again @grumpey for the testing you have done. I’m going to attempt to edit the docs and submit a Pull Request to the Fedora Docs team for their review.

1 Like

Great work @mowest
Thank you
Thanks to @grumpey too

It is working to watch netflix, however it isn’t being seen under chrome://components

Sorry that wasn’t clear.
Thanks @mowest

rpm -q chromium-freeworld
dnf info chromium-freeworld

where is the origin?

Chromium 79 changed the way of widevine component; theoretically chromium would download the widevine cdm… and put it in the HOME config directory… But it doesn’t work.

If you have chromium-freeworld from UnitedRPMs, It, still works fine with widevine as Opera and Brave browser. I can’t guaratice others third-party repositories or the Fedora Chromium… Obvious reasons. Widevine isn’t free and now changed widevine in Chromium.

This did break post update, I’m running freeworld from rpmfusion.

Versions:
Chromium-Freeworld: https://paste.centos.org/view/5b2f99d4
Chromium: https://paste.centos.org/view/70128c26

– What I ended up doing to get RPM fusions version to work –
Extract the RPM package from the google chrome download
rpm2cpio google-chrome-stable_current_x86_64.rpm | cpio -ivd
Copy the Widevine directory (I just picked a spot) to someplace you can use it.
sudo cp -r opt/google/chrome/WidevineCDM /usr/local/lib64
Edit the file pointing to the WidevineCDM directory
** use what ever editor you like, I used vim **
vim /home/$USER/.config/chromium/WidevineCdm/latest-component-updated-widevine-cdm
Change the path to point to where you copied the Widevine Directory, it should read like:
{"Path":"/usr/local/lib64/WidevineCdm"}

This did not work on chromium from the fedora repos.
It is strange that previously it worked with just the file and now requires the entire directory.

One thing that I did observe with both versions of chromium open:
If chromium-browser is started first, it will not work in either browser.
If chromium-freeworld is started first, it will work in both browsers.

So I’m not sure if this is an issue with widevine or a different issue with chromium.

Thanks

@grumpey thanks for your continued testing of this issue. I have observed similar behavior that you mentioned here:

One thing that I did observe with both versions of chromium open:
If chromium-browser is started first, it will not work in either browser.
If chromium-freeworld is started first, it will work in both browsers.
So I’m not sure if this is an issue with widevine or a different issue with chromium.

However it was not with Widevine, but with the Chromecast ability and it was while running Chrome and Chromium from the standard Fedora repos. If I started Chromium first after a reboot, Chromecast would fail to work in Chromium and Chrome. If I rebooted and started Chrome first then Chromecast would work but I think it would still fail in Chromium. That issue kind of started this whole docs adventure that I’m still on.

You mentioned that it broke after an update. In the last 14 days have there been other updates to Chromium that have broken your described fix? I really believe that I’m going to shy away from mentioning the copying over of the Widevine lib director or files until we can be sure that no further updates will break functionality. In the docs I think I will just encourage that if Chromium fails to render certain websites or videos you might want to try to install either Chrome or use Firefox.

This is great research that you have done.

I just switched back to Fedora after trying arch for a bit yesterday.

The same setup worked for chromium-freeworld.

Yeah, the docs might need some kind of disclaimer.

Thanks for updating those btw.

Because Chromium starts in the existing session, even if it’s another installation, right?
I don’t know if you’ve noticed, but when you run “chromium” or “chromium-freeworld” from the command line while you already have an instance of chromium running, it states: Opening in existing browser session.
And also, if you close all Chromium windows and open the original Chromium again, it won’t work, even if chromium-freeworld was started first, right?

So, (I’m new here on Fedora) is there a way to use those Widevine plugins while using the original Chromium installation? Copying the files and changing the configuration didn’t really do anything for me.

Edit: Okay, so I uninstalled the original Chromium and edited the chromium-freeworld’s desktop file to be named like the original (“Chromium Web Browser”). So like, should be fine (for me) as it is now.

I don’t have verification from the development team, but I don’t think there is a way to make things work with the standard Chromium in the Fedora repos. I can’t test Netflix, but I have issues trying to use Fedora repo Chromium with a Google Chromecast, the casting fails. I have noticed also that if I have Google Chrome installed and Fedora Chromium installed on the same computer, and use Chromium first during that session, then Google Chrome won’t connect to a Chromcast either (probably because of what @grumpey said above in his post). At this time I feel that the best option for Fedora users who want to attempt to use Chromium with Widevine plugins that you try “Chromium-freeworld” first without Chromium installed from the Fedora repos. If that fails to work, uninstall Chromium-freeworld, install Google Chrome and reboot and run Chrome. I know this is not an ideal solution for everyone, but it might be the pragmatic solution that gives you the fuctionality you desire.

One thing I did not try was using --user-data-dir option and pointing all of them to the same directory.

It seems working with the latest chromium-freeworld almost out of the box.
Assuming a fresh installation with a clean profile, open chrome://components/, navigate to the section “Widevine Content Decryption” and click “Check for update”.
The “Version” should change to something like “4.10.1610.0” and the “Status” to “Component updated”.
Then restart the browser and try to pass the test: https://bitmovin.com/demos/drm