Meet the Uberplayer.

uberplayer

Finally I can present you one of my newer interface experiments that has grown to something quite nice in the meantime.  With the transition from small movieclips to longer and bigger full length flicks, sites like Youtube still don’t really get the idea that the movie player has to give the user space, feel a bit like a theater for a overall greater experience. What we still receive is a bloated page with thousands of comments below, tags and whatever – things the user really doesn’t need or want to see while watching. This is why I started a new experiment – building a movieplayer for the web that doesn’t suck.

Shows only what’s needed

The first idea of the interface was that everything that’s not required during movie playback will simply not be visible. This effectively means that if the video is playing, nothing else should be shown. Under that requirement, I thought it will also need at least movie information somewhere, and a search interface.

The Uberplayer has slide-in elements for controlling the video. Every function or visibility can be controlled through either the mouse or the keyboard. At initialization and pause, all controls are automatically shown, since you’re not focussing on the video. During video playback, move your mouse towards the bottom and the search slides in – move it to the top and you’ll see current video information and the search bar.

Coverflow

I can also proudly state that this is the first time I actually integrated my experimental Coverflow plugin into an actual application. After you entered a search term and pressed return, the bottom view slides in and presents the search result thumbnails in a really nice flowing coverflow like view if you are using a webkit enabled browser. If not, don’t worry – the fallback looks nice nontheless! Additionally, the click-through rate is minimized by switching coverflow states on mouse over – clicking opens the new movie.

Integration with Youtube

I choose to integrate with Youtube because it allows me to do searches to their API’s through their JSON API. What does that mean? It means that the Uberplayer is completely backendless, therefore doesn’t need any server software / logic. It’s all JavaScript, baby!

The second reason was that Youtube has a nice chromeless player, which worked really well for my kind of interface. The only drawback is that the chromless player doesn’t support HD playback at this point, but I hope they’ll give us that feature eventually.

Feature overview

To get an idea, here’s a quick walk through all features that are probably worth mentioning and explain how the player works.

  • Full-screen playback at all times (toggle full screen mode on your browser for a better experience)
  • Fluid slide-in interface (move your mouse towards the bottom or top to blend in controls)
  • Click on the video to toggle pause state and blend in all controls
  • Rich keyboard interaction
    • down‘ toggles the search results view
    • up‘ toggles movie information and search bar
    • space‘ toggles pause state
    • s‘ focusses search bar and let’s you type in a new search (‘escape’ cancels)
    • left‘,’right‘ let’s you navivate through search results when the search results view is active
    • return‘ opens a new movie when the search results view is active
  • Automatically generates hash urls that you can bookmark or send to someone – they will not only open the movie, but also the attached search results
  • Completely backendless through Youtube’s JSON API

What’s left to do

This is a very early preview release, so please be merciful. Some things I would like to do for the next version is a playlist manager (sliding in from the left), and if I only could get access to a chromeless Vimeo player, that would totally kick ass.

Anyway, check it out, and leave a comment!

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Blue Dot
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis

33 Comments

Twitted by danwellman  on May 7th, 2009

[...] This post was Twitted by danwellman – Real-url.org [...]

Bohdan Ganicky  on May 7th, 2009

Hi Paul,

I’m getting this error when I click on a video thumbnail:

fp.player.element is null
http://paulbakaus.com/lab/interface/uberplayer/js/player.js
Line 30

FF 3.0.10 – Linux

paul rostorp  on May 7th, 2009

Great, well done!

Paul  on May 7th, 2009

@Bohdan: that’s weird. It seems the youtube player cannot be properly initialized on Linux. I’ll look into it, thanks!

d3r1v3d  on May 7th, 2009

Looks fantastic, Paul. Seems like you’ve put a lot of effort into making it slick and easy to use. I’m very impressed!

Cheers.

- Gavin

lrbabe  on May 7th, 2009

This is great, and thank you for the links to the chromeless youtube and the json API as well!

keif  on May 7th, 2009

Doesn’t work in chrome.

I dig it – it’s the way youtube should be.

vsync  on May 7th, 2009

Psssh very nice :)

jkarczm  on May 7th, 2009

good job guys, i like it!

Ajax Girl » Blog Archive » Uberplayer shows us what JavaScript media players can look like  on May 7th, 2009

[...] Media Players seem to be a hot topic right now. After the upgrades to Scott Schiller’s SoundManager, Paul Bakaus of the jQuery UI team now puts a firm stake into the ground with the uberplayer. [...]

jpjoyal  on May 7th, 2009

Wow this is very nice, I bit choppy on the animation though (on FF3, when a thumbnails video is cliked, it goes at the top which is nice but the anim is choppy)

Also I think its missing some sort of spinner for when the video is really slow to load. Not sure it you can do something on your side though

Nikola  on May 7th, 2009

Very nice indeed. Works on Kubuntu with FF3

manxomfoe  on May 8th, 2009

Love the work and the design! One bit of feedback: if you are moving your mouse out of the window area by the top or bottom, you leave the screen dimmed. Maybe this is only on Chrome/Vista, but that’s what I’m seeing.

ziggy  on May 8th, 2009

Does nothing for me. Image flies to the top but nothing plays. Tried ff3.5 and ie8.

墨尔本  on May 8th, 2009

This is so cool!!!
Thanks for sharing.

ziggy  on May 8th, 2009

Hmm. I can’t get youtube at all right now for some reason, so it’s a connection issue, not your widget.

Uberplayer shows us what JavaScript media players can look like « Internet Turnkey Websites  on May 8th, 2009

[...] Media Players seem to be a hot topic right now. After the upgrades to Scott Schiller’s SoundManager, Paul Bakaus of the jQuery UI team now puts a firm stake into the ground with the uberplayer. [...]

subin  on May 8th, 2009

Excellent. For once I was pretty sure that all of it was a flash…. ;D

Nice Work

Paul  on May 8th, 2009

thanks for all the great comments! some answers:

@jpjoyal: Wanted to implement that but forgot about it. Will definitely be added to the next revision (it’s possible, youtube gives you enough callbacks).

@manxomfoe: The dimming is supposed to be a feature, but it should only happen when a panel is shown. If it’s happening for you without any panel shown, then that’s a definite bug.

Paul  on May 8th, 2009

Nice!

Can we use it for our own sites?

Also, needs a volume control :)

Uberplayer shows us what JavaScript media players can look like | Guilda Blog  on May 8th, 2009

[...] Media Players seem to be a hot topic right now. After the upgrades to Scott Schiller’s SoundManager, Paul Bakaus of the jQuery UI team now puts a firm stake into the ground with the uberplayer. [...]

simonmcmanus  on May 8th, 2009

Nice! Ive been working on something similar which also uses jQuery UI at goodtube.me.

Your code will come in handy in a number of places.

Thanks

BTW vimeo say they are working on the javascript api at the moment.

John Dowdell  on May 10th, 2009

Hi, if you’re seeing differences among browsers (in letting JavaScript command Flash), then please let that browser vendor know you’d like more consistent abilities, thanks.

jd/adobe

The Ashes » Blog Archive » Uberplayer shows us what JavaScript media players can look like  on May 10th, 2009

[...] Media Players seem to be a hot topic right now. After the upgrades to Scott Schiller’s SoundManager, Paul Bakaus of the jQuery UI team now puts a firm stake into the ground with the uberplayer. [...]

Mike  on May 11th, 2009

This is great, but a tad overkill for a JavaScript implementation? I feel bad saying that because you did such an amazing job, and that should not be underestimated! But once you have a full window video going, the controls and thumbnail slider gets really clunky, and I’m using Chrome which has a pretty fast JS engine – I can only imagine how slow it would be in IE. For me, this sort of a thing is something better done in Flash. Yes you can do it in JS – you’ve obviously proven that much – but for a slick interface that has responsive controls, Flash (or Silverlight) would be a much better alternative.

jinjaDev » Blog Archive » js video player - Meet the Uberplayer  on May 12th, 2009

[...] Written purely in javaScript. It’s a thing of beauty! – Paul Bakaus [...]

Paul  on May 12th, 2009

@Mike: It’s largely not due to a performance reason within JavaScript, but somehow the video overlays are not handled very well by the browsers. However, things seem only behave slowly when the video is running – most often I click on the video, so the controls fade in, and then pick a new video. Then again, right now it’s more a experiment – I’ll try to optimize performance for an actual release!

links for 2009-05-12 « boblog  on May 12th, 2009

[...] Meet the Uberplayer. With the transition from small movieclips to longer and bigger full length flicks, sites like Youtube still don’t really get the idea that the movie player has to give the user space, feel a bit like a theater for a overall greater experience. What we still receive is a bloated page with thousands of comments below, tags and whatever – things the user really doesn’t need or want to see while watching. This is why I started a new experiment – building a movieplayer for the web that doesn’t suck. (tags: youtube javascript webdesign) [...]

Uberplayer: A Media Player Made With JavaScript | Web Developer Blog - Downloadtube.com  on May 19th, 2009

[...] to Paul Bakaus blog post about Uberplayer, “Every function or visibility can be controlled through either the mouse or the keyboard. At [...]

squarecat  on June 2nd, 2009

Oh man, how can I take a look at your jQ UI slider (scrubber) events??

I’ve been working on a JW Player-based (AKA Longtail Video) media player for a couple weeks and, despite my rudimentary JS skills, I managed to pull it together using jQuery and interacting with the Longtail JS API.

One of my final issues is getting IE to recognize the actual scrub event that passes the jQ UI slider’s position to player. And my slider performs horribly in Opera, so I am obviously doing a poor job (though I am quite proud of the slider concept, yours is the only other implementation I’ve seen.)

Perhaps I was anxious to find out and overlooked it with Firebug, but it’s likely I wouldn’t recognize your method as I’m quite sure my have done it is quite laughable and convoluted.

zzzombie  on July 15th, 2009

Just a short message to say that YouTube now allows to integrate HD videos with the chromeless player. All you have to do is adding the &hd=1 parameter when calling the chromeless player (not the movie you load in it) e.g. :

swfobject.embedSWF(‘http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=xxx&hd=1″, movieDOMid, width, height, “8″, null, vars, params, attributes);

Paul  on July 20th, 2009

@zzzombie neat, I’m going to give it a try!

EM  on October 5th, 2009

[...] to Paul Bakaus blog post about Uberplayer, “Every function or visibility can be controlled through either the mouse or the keyboard. At [...]