The Reason Google TV Can’t Spoof Its Useragent to Access Sites Like Hulu (At Least Right Now)


hulu google tv notification

After reading the news this morning that more premium sites have started blocking access to Google TV, I wanted to find what was going on. I decided to see what the folks where saying on the original post that broke the news about Google TV’s built-in useragent switcher that would allow users to spoof which browser they were visiting a site with.

Well, everyone confirmed that Hulu and other sites like Fancast are no longer working when switched to “Generic” mode or via a custom useragent string (examples). Any how… I gathered a helpful nugget of information from the thread — Google TV’s native useragent string:

Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Large Screen Safari/533.4 GoogleTV/162671

With this string I went out and did some tests and discovered (really I should say re-discoved) that full useragent switching is a known problem Chrome has presently. I experienced this issue when I was trying to get my Chrome browser on Ubuntu to trick a website into thinking my computer was an iPad using the device’s useragent string with the User-Agent Switcher for Chrome extension. The iPad useragent string worked with Firefox using the proven User Agent Switcher add-on, but not with Chrome under Linux. Comments under the Chrome extension pointed out the following fact:

The user-agent switcher does not modify HTTP headers because the Chrome Extensions API doesn’t yet have a way to change them. This means sites like whatismyuseragent.com WILL NOT DETECT A CHANGE change :( (I will add this as soon as Chrome adds an API for it.) Until Chrome adds this, sites that sniff user-agent strings at the network level will see through the spoofing. Fortunately, most sites just detect the user-agent at the JavaScript level. Also, spoofing the user-agent string does not solve all incompatibilities, and may introduce other incompatibilities.

So there you have it! [UPDATE: read the last paragraph dated 11/14/2010] The reason the Linux/Chrome-based Google TV can’t spoof websites presently with custom useragent strings is because the Chrome Extensions API does not support it. Proof of what I’m taking about is shown here in this combined browser screenshot (Firefox above, Google Chrome below) — note the useragent strings whatsmyuseragent.com detected when the Google TV useragent string was selected for each browser.

whatsmysueragent screenshots

Now all Google TV/Chrome developers need to do is unlock/add the capability to modify HTTP headers via its useragent switcher and Google TV will technically be able to access any site at will.

UPDATE!!!!!!!!

I guess I should have reviewed my earlier iPad useragent spoof post. It turns out that if you launch the Chrome browser via the command line with the custom useragent string of your choice it will modify the HTTP headers.

google-chrome -user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Large Screen Safari/533.4 GoogleTV/162671"

Proof below. Chrome browser now identified as Google TV on whatsmyuseragent.com. Of course, you can use any useragent string you like. Now someone needs to figure out how to make the Chrome browser in Google TV launch with the setting of their choice by default.

whatsmyuseragent google tv useragent on chrome

* Can someone in the U.S. do me a favor and tell me if the following useragent string works on Google TV after they’ve rebooted the device (Go to Settings > Advanced User agent > Custom value)? Leave your results in the comments. Thanks! Hulu access works using the IE7 useragent via the command line with Chrome. I’m thinking… if you need to reboot Google TV after adding a custom useragent, it might stick (unlike a Chrome extension).

Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)

UPDATE 11/14/2010

Hey, Gang! I’ve got good news and bad news. Good news is that I was in Best Buy today and got a chance to play with Sony’s Internet TV. I was able to copy and paste the Windows / IE7 useragent string into the custom value field and reboot the system (FYI, you have to be in TV mode to actually reboot — it won’t work if you try while you’re in the Google TV interface). Whatsmyuseragent.com identified the TV as a Windows machine running Internet Explorer 7 via the Chrome browser. The bad news… Hulu still was able to identify the source machine as a Google TV device :( I’m not sure how they’re doing it. But if I had to guess, I’d say they’re double checking the device’s system specs via Javascript which can provide OS, screen resolution, and hardware details.

* Quick follow up…. While Hulu still doesn’t work with a custom useragent string, it does work with other sites that previously blocked Google TV. Luckily, most of the other sites aren’t as advanced as Hulu with their blocking methods.

UPDATE 1/11/2011

GTV Hacker discovered that by switching the Flash player included with Google TV with a generic Flash player one is able to access Hulu. Trouble is… you’ll have to root a Logitech Revue to make it happen. Details here.




Tags: ,
Filed in: Industry Buzz, Software, Streaming Media Devices


  • http://pulse.yahoo.com/_SOSF4ON75CFVWHO45DV5HVYHSE Gene

    I can connect a Linux PC to my TV and play Hulu, etc. I can connect a Windows PC and play Hulu, etc. But I can’t connect what is effectively an Android PC and play Hulu, etc. Sounds like discrimination, I don’t get the logic.

  • http://www.google.com/profiles/mtthwgrms Matthew Grimes

    I can give this a shot tonight but here’s a problem I had noticed when changing the string to a generic value, sites developed “for TV”, you know those that are in the “Spotlight” section of Google TV, no longer give the TV view. That is they default back to a regular web view as if at a desktop. It’s kind of a chore switching back and forth. Right now I’m using the Spotlight sites quite a bit- trying to give them a fair chance, show interest by giving traffic and hoping every little bit counts towards the growth of this platform.

  • http://twitter.com/agrundner Alexander Grundner

    Thanks, Matthew. Please report back. I can see your point about switching the useragent back and forth as being a bit of a pain. Best solution for Google TV to implement would be a “Custom Domain List” feature, like with the extensions/add-ons, where certain useragent strings are assigned to specific sites. BTW, I’m going to check out some of the Spotlight sites (http://www.google.com/tv/spotlight.html) for fun with my new Google TV useragent string in Chrome ;)

  • http://twitter.com/michymak Michele Berardi

    Hello i did this script for MAC and WindowsGoogleTV.command#bin/bashcd //Applications/Google Chrome.app/Contents/MacOS/Google Chrome -psn_0_426088 –user-agent=”Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Large Screen Safari/533.4 GoogleTV/161242″

    This for PC

    GoogleTV.bat

    @echo off
    ::
    :: Written by Michymak

    echo.
    echo.

    “C:UsersMicheleAppDataLocalGoogleChromeApplicationchrome.exe” –user-agent=”Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Large Screen Safari/533.4 GoogleTV/161242″

    change your path

  • http://www.google.com/profiles/mtthwgrms Matthew Grimes

    Same result as your update yesterday. I believe the Flash player is putting off a unique ID which they are using to block the access.

  • http://plunker.com Chris Merrill

    I tried it and am now able to watch things that I could not previously. Specifically – fancast – which linked to cbs.com

  • http://twitter.com/agrundner Alexander Grundner

    Hey, at least we achieved partial success. Not all sites are as advanced at Hulu in their blocking methods.

  • http://twitter.com/rothkj1022 Kevin Roth

    Any update now that the Google TV Honeycomb update (finally) came out?  Seems to me someone out there should be smart enough to write an app for the Android market that can spoof the flash id in Chrome…