When trying to watch a TV show on hulu (u.s.) or iplayer (u.k.) from inside Germany, one is usually greeted with messages like these:

iPlayer:

iplayer geolocation error

Hulu:

hulu geolocation error

These services usually use your IP address to determine what country you’re from. An obvious solution would be to just run the whole traffic over an HTTP proxy that is standing inside of the country in question. The problem is that while browsers tend to honor HTTP proxy settings, the flash player will try a direct socket connection first. This could be circumvented by blocking ports, but that is one of the more annoying solutions to the problem.

Something interesting can be seen by looking at how the iPlayer does the geo locating. It will check the IP and, if successful, pass out the URL for the actual streaming video. This URL can be accessed from anywhere, the only problem is to somehow get at it.

While VPN solutions work, they usually will tunnel ALL of your traffic over the comparatively slow VPN connection, will require manual enabling/disabling, won’t work with e.g. the apple tv out of the box and are in general a pain to set up. If you want to go this way, I recommend taking a look at privateinternetaccess.com. I used to just grab cheap VPS systems from lowendbox.com, but seeing as privateinternetacces provides me with endpoints in 9+ countries (US for Hulu, NL for NFL Gamepass, UK for iPlayer, Switzerland for Zattoo, …) for 40$ a year, I’d rather just save myself the hassle.

As mentioned, there are however good reasons why one might not want to have all traffic being routed over a VPN connection. I recently came across a pretty interesting service that has a different approach to this problem. The service is Unblock US and they provide a DNS based solution to the whole ‘geolocation-check’ topic. After you signed up (free 1 week trail without payment details) you’ll have to use their servers as DNS servers.

What they will do is redirect all DNS requests to geo-location checks to their own IPs where e.g. a squid server will forward the connection with an IP address that matches the country in question (e.g. the US for Hulu and the UK for iPlayer). The advantages of this approach are:

  • Only the necessary traffic will run over the slow proxy. Most of the time, the real video will come directly to you via your regular internet connection

  • You can just put the DNS servers into your router and all of your devices (iPad, AppleTV, Laptops, … ) will be able to automagically use the geo-restricted services

  • While the service provider might redirect any website to their servers, they still can’t fake an SSL certificate, so anything important should still be safe (you hopefully ARE using SSL/TLS!)

  • In contrast to a VPN solution, this allows you to access services from more than just one country (e.g. Netflix from the US, iPlayer from the UK, TruTV from Germany, TF1 from France)

The price for the service isn’t too bad either. When prepaying for a year, it will come down a little bit less than 3 Euro/month. Monthly payments will be approximately 3.50 Euro/month.

A downside of this approach is, that they have to ‘whitelist’ services and figure out which URLs/Domains are responsible for the GeoIP checks. With a VPN, you can use ANY service within that country without further actions.

While I haven’t signed up with them so far, I’m seriously considering it once I have some free time on my hands to actually watch all the tv and movies.

Comments