Various news articles state that Firefox supports h.264 on Windows since version 20. As of this writing the version is 24, yet Firefox still can't play most YouTube videos. I did the HTML5 opt-in and tested both Firefox and Nightly. I also made sure media.windows-media-foundation.enabled in about:config is enabled, and it is by default both on Firefox and Nightly.

What's wrong and how do I fix it?

This video works.
This video fails.
They're both MP4 (right click video -> stats for nerds), so Firefox's h.264 support works at least some of the time.

When I go to a YouTube video that doesn't work, click Share -> Embed and then copy-paste the src of the iframe tag into the address bar, the video works.


As a general comment, sometimes such problems are caused by missing codecs, fixed by installing a codecs pack such K-Lite. But as your videos do play when downloaded, this isn't your problem.

The video example that fails for you uses Flash, but you prefer the YouTube HTML5 player. More information is found in the article Force YouTube to Use the HTML5 Player:

YouTube's HTML5 player is great, but it's not enabled for all the videos. Even if you go to youtube.com/html5 and join the HTML5 trial, you'll find a lot of videos that use the Flash player. "Some videos with ads are not yet supported (they will play in the Flash player)," mentions the site.

There's a simple Greasemonkey script that forces YouTube to use the HTML5 player for almost all the videos you watch at youtube.com. You need to install Greasemonkey if you use Firefox or Tampermonkey if you use Chrome, then click the "Install" button here.

For Chrome, use the old version from Sept 23.

The script works better in Firefox. If you install the script in Chrome, it will disable the new Ajax interface, but everything else seems to work well.

Here's a video you can use to test the script. Please note that the script doesn't work for embedded videos.

EDIT : As userscripts.org has disappeared, I have modified the links to point to userscripts-mirror.org. In addition, I reproduce the script below :

// ==UserScript==
// @name        ythtml5kiss
// @namespace   mentormayhesset
// @description YouTube the HTML5 player [Firefox+Greasemonkey>=1.0]
// @include     https://www.youtube.com/*
// @include     http://www.youtube.com/*
// @exclude     https://www.youtube.com/embed/*
// @exclude     http://www.youtube.com/embed/*
// @version     3.1
// @run-at      document-end
// @grant       none
// ==/UserScript==

    window.ytspf = window.ytspf || {};
    delete ytplayer.config.args.ad3_module;
| improve this answer | |
  • The problem is not with codecs. See the additional info I've added to my question. I have CCCP installed and can play all MP4 videos that I download from YouTube. – Ansis Māliņš Oct 29 '13 at 9:13
  • Do you have this problem with other browsers? If you are only having this problem with Flash on Firefox, I would suggest to uninstall Flash and Firefox, clean up all folders and reinstall. – harrymc Oct 29 '13 at 10:23
  • I'm not interested in other browsers. I don't have Flash installed. I'm on a fresh install of Windows - there's nothing to clean up. – Ansis Māliņš Oct 29 '13 at 12:44
  • Your example of the video that fails is an .swf video that requires Flash in order to play. You absolutely need to install Flash (untick the McAfee offer). See also this Mozilla link. I have no explanation why some Flash videos do work for you, except maybe by some other add-on that only does a partial job (since there are many sub-flavors of Flash, only the real software can play them all). – harrymc Oct 29 '13 at 13:32
  • 1
    The video example that you gave uses Flash and not HTML5. You will find more info about this in the article Force YouTube to Use the HTML5 Player. There exist also add-ons to Firefox like YouTube HTML5 Video. However, for the video that fails, adding &html5=1 to the url doesn't help, so it's simply not available in html5, only in Flash (for the moment). – harrymc Oct 30 '13 at 12:34

There is the extension h264yi but you don't need it at all. Just go to about:config and change media.mediasource.webm.enabled to false.

More info: https://news.ycombinator.com/item?id=9331156

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.