[Nexus 7 General] nigelhealy:
Just thought I'd post a little bit about how you can have media streaming to work reliable which has any kind of GeoIP, e.g. watching BBC iplayer from outside UK, or ITVplayer outside UK.

So we all know how to get Flashplayer on Android 4.1 Jelly Bean, its download the flashplayer apk and the Firefox Beta, I'll not cover that.

I also assume you have a UK proxy server you control, like a Linux server in the remote country.

The core problem is there isn't a FOXY PROXY plugin for Firefox Beta on Android yet. Foxy Proxy is brilliant it lets you control precisely which URLs to route over a proxy, so e.g. you can simply use a *bbc* and *itv* through the proxy.

A little known fact is that the remote site's GeoIP checker is not the same remote IP as that which does the media streaming, so you need only be routing through the proxy for traffic-light traffic and go direct to the media streaming IP otherwise. With FoxyProxy the media streaming sites are not (for some reason) URLs from the media service. e.g. BBC's streaming is a *llnl* service, ITV's player is 99.3.0.0/16 for media streaming.

So given the browser does have a "whitelist" or "blacklist" capability you get from FoxyProxy addon for Firefox, you have to the mirror opposite with the Proxy settings.

The only way I've found to do this is ProxyDroid, it has the concept of "proxy all but not these" so it has a blacklist. So what I have to do is have Proxydroid route ALL traffic, EXCEPT and then give the list of the exceptions. If I want to watch the remote media content then enable ProxyDroid, it connects as if its in the remote country but bypasses the proxy for the bandwidth-heavy task.

Having the exception list for Proxydroid makes a real difference, it moves from unwatchable to performing very well.

To get the exception list, well either someone can do the effort for you and post the blacklist online but to be honest all that the media streamers will do is change their IP addresses so that cat'n'mouse game you'd lose eventually.

So a more assured way is for the remote proxy server to be running a traffic analyser. A simple one is Darkstat. Install it on the remote system.

Then, clear the darkstat database (stop darkstat, rm the deb, start darkstat). Then on your Nexus 7, enable ProxyDroid, and begin streaming media. As you're proxying through the remote server anyway, in browser to go the darkstat web server (e.g. 192.168.0.1:667, whatever is the IP on the LAN of your proxy server and the port you've configured) and look for the BANDWIDTH HEAVY traffic. Then, disable proxydroid on the Nexus, and place the bandwidth heavy subnet in the blocklist in proxydroid, e.g. if ITVplayer is streaming off 199.3.x.y then tell Proxydroid to not use 199.3.0.0/116, that will allow all those IP 193.3.something.something to bypass the proxy.

Overall, this is quicker to do with a Tablet and a desktop PC side by side than all on the tablet as its lots of swapping between windows, until you've got the exceptions subnets list.

However, it all works. The method is universal, it will work with any country, any kind of geoIP blocker and you only need a Linux server in the country which does GeoIP, either from a friend telling it won't saturate their upload bandwidth after you've done the traffic analysis.

Also, as this method bypasses the proxy server for bandwidth-heavy, you have a proxy server with little bandwidth, because you're only using to find the bandwidth-heavy IPs to bypass the proxy.

Makes a big difference.