Can't play videos in Firefox

I am running Silverblue 37 and using the version of Firefox that came with the installation, not the Flatpak. Why do I not see videos on the Twitter web page and how can I fix it?

Did you do this?

" getting it to play videos works the same way as it does for the regular Fedora Workstation: find a package with the needed codecs, and install it. The one difference is that you use rpm-ostree install instead of dnf install"

What packages would I need to install?

1 Like

These Installing plugins for playing movies and music :: Fedora Docs

Firefox need the ffmpeg package.

First, you need to enable rpm fusion Installing Free and Nonfree Repositories and reboot. Next, rpm-ostree install ffmpeg should provide firefox the codec, and then reboot the system again to apply the change.

Hi everyone, I have the same issue (on SIlverblue F38), can’t play video in Firefox.
I switched to the flatpak version of Firefox, installed the codecs with flatpak install org.freedesktop.Platform.ffmpeg-full, removed the preinstalled Firefox withrpm-ostree override remove firefox firefox-langpacks but again, same issue.
I can’t play videos from Youtube or Invidious.
Any way to fix?

Sorry, I did not realize at the time that is a issue with Fedora 38 Silverblue that ffmpeg cannot be installed easily. So if you are using fedora 38 instead of 37, you can try to install ffmpeg-free and libavcodec-freeworld
You can run the following command:
rpm-ostree install ffmpeg-free libavcodec-freeworld
I hope this helps!

1 Like

Is not possible to install these packages through flatpak?
I want to keep the base image as clean as possible

As I understand it the command rpm-ostree does not affect the base image. It merely layers the rpm over the base so that package becomes usable.

Many packages from rpmfusion are not available in flatpak, though some are.

1 Like

Dont start installing codecs and stuff… I’ve been down that rabbit hole.

Instead, just change to the flatpak version of firefox in the software manager, it includes all the codecs you need.

Too bad the solution doesn’t come outside of the box. But here’s I fix it.

  1. install rpm-fusion, you need both commands:
rpm-ostree install --apply-live  https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
rpm-ostree update --uninstall rpmfusion-free-release --uninstall rpmfusion-nonfree-release --install rpmfusion-free-release --install rpmfusion-nonfree-release
  1. Install codec from rpm-fusion:
rpm-ostree install --apply-live libavcodec-freeworld
1 Like

Fedora 38
None of the solution above works. Here’s the official solution:
https://docs.fedoraproject.org/en-US/quick-docs/assembly_installing-plugins-for-playing-movies-and-music/

1 Like

I do not know if you are using silverblue as the OP is, but that link applies directly to rpm based systems and only indirectly with modifications to silverblue and the like (ostree based systems). This thread was about videos on a silverblue system.

1 Like

I’m experiencing a similar problem with the latest F38 bits: Firefox on a 5950X desktop is refusing to play Amazon Prime videos: the Prime Video plugin displays the supremely unhelpful “We’re experiencing a problem playing this video. For assistance, please go to <insert equally useless Amazon ‘help’ link here>”.

Same machine, same video: Chrome plays it fine.

Same machine, booted into Debian 12: both Firefox and Chrome work fine.

I grepped the web but found nothing useful to explain what’s going on, nor what I can do to fix it.

This just started happening on Fedora 38; it was working fine an upgrade or two previously. Presumably the problem is with Firefox.

(Yes, Enable DRM content is selected in Settings)

What is the video file type? It may be that firefox needs a codec that is natively available in chrome but is restricted by fedora from firefox.

The post immediately below the one marked as the solution may help.

It’s an Amazon video stream, not a file.

This has been working fine until a recent upgrade of Fedora 38 bits. Again, the same video plays correctly in Chrome on the same OS on the same hardware.

It appears that in my case there’s either an issue with TLS (openssl?) or the Amazon server. If I try to curl the video URL at amazon I get this:

user@fedora:~$ curl -v 'https://atv-ps.amazon.com/cdp/usage/Clickstream?deviceID=null&deviceTypeID=AOAGZA014O5RE&gascEnabled=false&marketplaceID=ATVPDKIKX0DER&uxLocale=en_US&firmware=DVWebNode'
*   Trying 108.138.94.11:443...
* Connected to atv-ps.amazon.com (108.138.94.11) port 443 (#0)
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/pki/tls/certs/ca-bundle.crt
*  CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN: server did not agree on a protocol. Uses default.
* Server certificate:
*  subject: CN=t300.api.cer.amazonvideo.com
*  start date: Jun 29 00:00:00 2023 GMT
*  expire date: Jul 27 23:59:59 2024 GMT
*  subjectAltName: host "atv-ps.amazon.com" matched cert's "atv-ps.amazon.com"
*  issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M01
*  SSL certificate verify ok.
* using HTTP/1.x
> GET /cdp/usage/Clickstream?deviceID=null&deviceTypeID=AOAGZA014O5RE&gascEnabled=false&marketplaceID=ATVPDKIKX0DER&uxLocale=en_US&firmware=DVWebNode HTTP/1.1
> Host: atv-ps.amazon.com
> User-Agent: curl/8.0.1
> Accept: */*
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
< HTTP/1.1 500 Server Error
< Content-Length: 0
< Connection: keep-alive
< Date: Wed, 12 Jul 2023 04:41:09 GMT
< x-amzn-RequestId: mGZ2FvnZAqLngZxtF77zQgymq19NjmsOxV37rEDkTASv2qdMbFnkrg==
< Server: Jetty(9.4.43.v20210629)
< X-Cache: Error from cloudfront
< Via: 1.1 57bd3a2d9e0e4cbf89d9eb3d7dfb916e.cloudfront.net (CloudFront)
< X-Amz-Cf-Pop: SEA73-P2
< X-Amz-Cf-Id: mGZ2FvnZAqLngZxtF77zQgymq19NjmsOxV37rEDkTASv2qdMbFnkrg==
< 
* Connection #0 to host atv-ps.amazon.com left intact

Or maybe that’s just a cert issue with curl?

If I try in the browser I get a ton of CORS errors, but the salient issue seems to be a NetworkError which is probably the same 500 error that’s coming back via curl:

POST request threw an exception | {"errorMessage":"NetworkError when attempting to fetch resource.","url":"https://atv-ps.amazon.com/cdp/usage/Clickstream?deviceID=null&deviceTypeID=AOAGZA014O5RE&gascEnabled=false&marketplaceID=ATVPDKIKX0DER&uxLocale=en_US&firmware=DVWebNode", <yada> </yada>}

(I added the ‘yada yada’ so please don’t id that as the issue!)

Your might blocking something … As I know Firefox is more strict with add blockers, popups, etc
You might give there a check.

And also:

Look to clear the cache for the domain/server atv-ps.amazon.com in the firefox settings.

Thanks. I already tried various network-related work-arounds. I found the problem: it wasn’t network-related at all in my case!