Currently if Firefox comes across a html5 video using an unsupported codec, it already allows you to play the video in an external player or save the video. The problem is the HTML5 Javascript function canPlayType(); things like the Youtube trial detect that h264 isn't natively supported so the javascript never dynamically creates the VIDEO tag.
Downloaded the Firefox source and edit content/html/content/src/nsHTMLMediaElement.cpp.
Change the line
case CANPLAY_NO: aResult.AssignLiteral(""); break;
to
case CANPLAY_NO: aResult.AssignLiteral("probably"); break;
If you recompile the browser then join the youtube html5 beta, it will now try to serve you video via html5. At this stage the video is "protected" behind a transparent DIV so you can't right-click it. Use Firebug, or the following Greasemonkey script to delete the DIV.
// ==UserScript==
// @name youtube anti-div
// @namespace html5hackery
// @include http://.youtube./*
// ==/UserScript==
// video-blocker
function addGlobalStyle(css) {
var head, style;
head = document.getElementsByTagName('head')[0];
if (!head) { return; }
style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
}
addGlobalStyle('#video-player .video-blocker { display:none;');
You now have a version of Firefox 'compatible' with Youtube's HTML5. Currently it doesn't work with Vimeo's HTML5 beta and I haven't bothered to find out why.