Embedding YouTube HTML5-video with newTube

With all the discussions about the place of Flashon the ever-evolving web and the excitement following Google’s announcement about YouTube going HTML5, one would almost forget that YouTube is only at the very start of their “open video” endeavor. The limitations of the current implementations are numerous; there’s no OGG (damn), no ads (yeah!) and no embedding either (damn) for example.

After looking into ways to call the YouTube mp4-file from within a Video for Everybody html-block (which is not possible, Google protects raw video-files using what seems to be a session-based hash that has to be provided in the URL), I decided to take another (dirty) approach; faking it!

The solution is entirely javascript-based and is as un-elegant as it is simple; create a html-file with a script include of http://futtta.be/newTube/newTube.js and a div with “id=newTube” containing a link to a YouTube-page and the script automagically takes care of the rest. Check out http://futtta.be/newTube/ to see it in action.

The result is an embedded YouTube player which will display the HTML5-version if you’re running a browser which supports mp4/h264 playback (i.e. a recent version of Chrome or Safari) and if you enrolled in the beta. If either of these preconditions aren’t met, you’ll just see the plain old Flash-player.

Don’t get your hopes up too high,  newTube is probably not as obvious as normal YouTube embeds (for reasons I’ll get into in a follow-up post, when I have some time to spare that is). You’ll have to wait for someone (YouTube, Dailymotion, Vimeo, … are you listening?) to offer real embeddable html5-video (with support for both mp4/h264 and and ogg/theora).

But I did have fun creating the very first html5-capable embedded YouTube-player ;-)

13 thoughts on “Embedding YouTube HTML5-video with newTube

  1. der Flo

    Thank you very much, i included it on my webpage. Great work …

    BTW: i changed it from (div id=”newTube”) to class=”newTube”, so it is possible to have multiple videos on one page.

    1. frankPost author

      thanks sammy. resizing will probably not be possible, as the size of the player is the size it has on YouTube itself.

  2. busa

    thank you . great work!
    i was trying to have more than 1 video in a single page,, but the getElementsbyClassName seems not no work.
    i change from id to class in html code and getElementById to getElementsbyClassName in the js but the result is no video!

  3. busa

    i add you getElementByClassName-code js and change from id=”newTube” to class=”newTube” but it doesn’t seem to work..

    1. frankPost author

      ok, different approach: enter your video’s like this and all should be well (you’ll be eating my bandwidth though ;-) ):