Why Can’t YouTube’s Player Auto-Detect When A User Should Get HD Quality?

For all the praise that the industry and the media continues to give YouTube, I don't understand why those same people never hold YouTube up to the standards that other media companies are held to. While everyone wants to discuss the business model behind YouTube, no one ever seems to question why the videos look so bad and why some of the most basic features that other sites have had for years are completely lacking with YouTube.

While the media was quick to cover how YouTube was moving to HD quality video last year, I didn't see a single person commenting that the YouTube player does not currently have the ability to auto-detect when a user should get the HD copy instead of the SD copy. This technology has been around for years and most sites have been using it for quite a long time. Why isn't YouTube? Why do I have to manually click on an HD icon to actually get the HD stream? Why can't YouTube auto-detect that I am on a fast enough connection to get HQ the quality video to begin with? It is so annoying that when you visit a page where the video is set to auto-start, you have to click on the HD icon to get the one you want and then wait again for it to re-buffer.

Today on YouTube's blog, they are asking people to send them ideas on how they can improve the service and to vote on what they think are the most important features that are missing, or not needed at all. First suggestion, FIX ALL THE BUFFERING ISSUES! A quick look at the comments section on YouTube's own blog shows I am not the only one who continues to have buffering problems – for the last THREE years! (2007, 2007, 2008, 2009)

YouTube needs to get with the times and have a user interface that actually takes advantage of some of the technology that has been in the industry forever. YouTube does not use any streaming protocols, only downloads via HTTP, has no player auto-detection feature and lately, 50% of the time myself and many others upload a file to YouTube we get an error message of "try again later." In addition, while YouTube has very limited functionality for variable bit rate (VBR) encoding for HD quality videos, they don't have the option at all for SD quality videos and default to a constant bit rate (CBR). The whole point of VBR is to improve the user experience by providing higher quality video without the need for the video to re-buffer. It's a standard on the web today, but apparently YouTube has not realized that.

If this was the search business and Google was missing some of the most basic features that every other search engine had, the media would hold Google accountable for it and there would be a lot of discussions taking place on the subject. Of course, we know Google does not have any of these problems in their search business but if they did, they would address them and correct them very quickly. But with YouTube, they don't seem to follow the same strategy. The service has been bad for years, the user experience is still very poor, the quality of the videos is not up to par with others on the web and the the YouTube platform has a long list of really major problems that still aren't being addressed or corrected. Users of YouTube are complaining about these problems in public forums, yet the media and many in the industry continue to heap praise on the company even though they are not doing anything to address the poor user experience.


Bandwidth Pricing Trends: Cost To Stream A Movie Today, Five Cents: In 1998, $270

Detailing Netflix's Streaming Costs: Average Movie Costs Five Cents To Deliver

Platform Overload: How Many Content Platforms Can Survive On TVs And Devices?

TV Everywhere: The Future of Television, or Another Over-Hyped Promise?

  • Jim

    I’m a little confused that you condemn them for not using streaming protocols AND for not offering VBR. Unless I am mistaken, streaming in 2010 still demands CBR files. If you want VBR, most are still of the opinion that you will have to go with HTTP progressive download. I’m involved in a startup that initially attempted true streaming of VBR flash content, and had to abandon in favor of CBR.

  • Dan, you are spot on. YouTube are not a business platform. All business’s should stay away from a low-end platform and stream-line there business with quality. It seems when it comes to video platforms, even the “coolest” company will choose the most “uncoolest” company to show it products. Why ?

  • Charles

    Could not the same be said for Hulu, who also do not auto detect if you can accept 480p? No reason to deliver more bits for higher quality if the engagement metrics are roughly the same…

  • Streaming does not demand CBR files. Many sites on the web are doing VBR with streaming, including for live content.
    @ Charles: Yes, the same could be said for Hulu expect everything we have heard from content owners and others is that the engagement times for HD video are FAR better than SD video, at least that is what the content owners say. But your point is very valid, if it is so much better, why aren’t more doing HD video? Because they can’t afford to deliver all of the extra bits.

  • Hi Dan, I think their problem or challenge lies in the fact that the higher resolution HD videos place significantly higher demands on the users CPU and GPU. Even today many users’ systems struggle to play 720p Flash video, so even if use bandwidth detection – without any system performance detection – they risk connecting a user to a video that plays very poorly. Certainly a shift to a real-time streaming protocol would assist deploying more complex frame rate monitoring, system checks and an ability to adjust resolution quality dynamically without interrupting the playback. I guess you may have a better insight on how use of true streaming might affect their ability to scale and their cost base.

  • Josh

    A minor correction: YouTube does have bandwidth detection. You can alter your account’s setting (always high, always low or auto-detect) here: http://www.youtube.com/account#playback/quality
    If you’re not logged in, you’ll be prompted to login first. From there, click on “Playback Setup” on the left to see the option.

  • Hi Josh, I’m not talking about having a way to manually change your settings, that’s not “auto-detecting” and changing the quality of the video, in real-time.

  • Rob

    Forget detecting HD, how about not rebuffering 10x for a 3 min video? That’s with 320×240 too. Crap.

  • I am generally struck by the lack of advances by YouTube in enhancing basic video consumption experience of viewers and generally plodding pace of innovation ever since the acquisition. Another simple example: how about allowing scrolling through the comments about a video without necessitating shoving the video, that may still be playing, out of the viewable portion of the browser?
    Per some of what’s in here, seems basic to do auto-detect, and when switched to the HD stream, message to the viewer: “Video play quality issues? Click here to ratchet down bandwidth settings for better assurance of smoother play” and that could link to the manual settings in which someone who’s challenged by resources besides bandwidth, like CPU, could basically instruct: “never serve me in HD unless I specifically request for a particular stream”

  • The fact that Youtube delivers their files over HTTP is precisely why the service (and online video in general) were able to become so popular. While streaming protocols have (and still do) fail over small, unstable or walled connections, a simple download always succeeds. No special cases, no proprietary protocols; just the same old HTTP packets any internet-related hardware and software is optimized for.
    The concept of this download bar on the player that tells you which part of the video can be viewed is a way better user experience than the left-in-the-dark spinning wheels and stuttering videos occuring with streaming protocols. If it were for user experience, streaming protocols would have been phased out already. Content protection is the reason they still exist.
    The HD button on the Youtube player also serves user experience. It gives viewers the choice of watching the HD stream, even if their bandwidth does not allow it. This is impossible with a streaming protocol. Vimeo does the same thing, which made them the service that kickstarted online HD viewing. The Apple trailers site does the same too, which makes it thé destination site for watching movie trailers (and the only popular Quicktime-driven site out there).

  • Hi Dan,
    Just trying to get a better understanding of what you mean by real-time auto-detecting since @Josh pointed out that you can setup your viewing preferences to play HD always, never, or when possible.
    Do you mean you would like to see the quality of the video change while watching it ? So, if you start watching a video in HD and your connection slows half way through YouTube switches over to SD ?

  • Yes, I could have explained that better. I do mean just that, that the player would auto-detect the users connection speed and adjust to it.

  • Chris Ceppi

    FWIW, on my YouTube “Playback Setup” something called “Choose my video quality dynamically based on the current connection speed” is the default selection…and then there are options for turning off auto detect.

  • Bobby

    My biggest issue is with the flash container itself-not the H264 codec. I can’t play youtube videos at all-without stuttering and rebuffering stops-until the entire thing has downloaded because of the extreme overhead that this container demands. I wish there was a way to change my preferences to something like “Use mov container (and related player).”

  • Doesn’t Silverlight do just what you want, with adjusting the playback experience based on the connection quality – during playback? I think it does. I also think that beta was better than VHS and HDDVD was better than BlueRay and .wma is better than .mp3…. But what is better is not always what gets the highest adoption rates and what gets consumed most. That’s unfortunate, but will always be.

  • A few points:
    I know you’re comparing YouTube to other sites, but keep in mind that the traditional media companies (cable) don’t auto detect HD either. You have to manually go to a separate channel.
    Someone already mentioned this, but HD detection can’t just be based on connection speed. It’s probably more dependent on the users computer performance. Auto-detecting and dealing with that isn’t really possible.
    Maybe YouTube doesn’t automatically show HD BECAUSE of their buffering problems? HD is only going to exacerbate the problem. You can easily create an account and just set High Quality as your default.

  • @Toby: Yes, Silverlight does support this, but I don’t see Google using a Microsoft product any time soon.

  • Fred

    Automatically streaming higher quality content might “cost” the user more in connection fees. Just b/c my connection can support the HD content doesn’t mean I want it. I’m not sure I need my all my YouTube videos in HD if it puts me into a higher usage/cost bracket.

  • ddn

    FYI, for whatever reason, YouTube intentionally throttles video downloads. They give you approximately the first 3 megabytes at full rate, and then drop down to a roughly 100Kb/sec. There are parameters in the URL string for the flv file that control this. 100Kb/sec would be barely enough to not buffer under perfect conditions, but in reality it’s not.
    It’s very easy to demonstrate this using curl with the URL string of a .flv from youtube.
    Why they do this is beyond me..? I guess it’s typical Google to buy a service and then let it die on the vine.

  • bob Gold

    YouTube doesn’t make money afaik. That’s a big reason why it doesn’t have state of the art tech. That and it started out with old tech. I’d bet the process of changing over everything to new tech is much harder than starting from scratch.
    I do agree about buffering though and it is a problem on many sites. Why does a video start playing and then have to buffer 30 times before it is finished? Video should take twice as long after buffer to resume playing

  • So, then an answer to your subject line is, “YouTube’s player can’t auto-detect when a user should get HD quality because it uses Flash, which does not currently do that (unlike Silverlight, which does do that very well).” Sounds like a comment to give feedback to Adobe!

  • Whats amazing to me is that the press hasn’t verified the quality of embedded yt video vs. youtube’s domain.
    I categorically see better quality inside their site, and I’m left wondering if it is done on purpose.

  • anon

    Hi, I have the opposite problem and I’m wondering if you guys know what to do… How can I disable auto-detect in sites such as mtv or comedycentral? What if I wanted the higher quality stream even though I have a bad connection, but am willing to wait it out? Is there a way around that?

  • SynErr

    Google owns the media. Why would they admit they fail?

  • John Adams

    Oh, YouTube most certainly DOES check connection speed before presenting the visitor with any HD videos. I’ve tried it and sure enough they do exactly that.

  • Someone already mentioned this, but HD detection can’t just be based on connection speed. It’s probably more dependent on the users computer performance.

  • Cedrick the streamer

    google now owns youtube for awhile and they still don’t have a proper player. It doesn’t load. If you “rewind” want to see an earlier section, the buffering restarts instead of going right to the scene.