You're giving hulu too much credit. It's actually very simple what they're doing. Basically it goes like this:
At ad point, send request for ad. If request is successful and ad plays, continue to show. Else give error message and no show for you.
It's that simple, remove the ad servers from your hosts file and you'll see it working again.
Or reroute them to a shorter ad? Hmm... I wonder if that would work...
So I messed around with it, got hulu working with no ads, just get a "can not load ad" message, have to wait a grueling 30 seconds. Then the entire video played uninterrupted (I skipped past the ad points and it played immediately).
So here's what I did, I removed only the dev and urlcheck from the hosts, left the ad servers in place and changed 127.0.0.1 (loopback) to 0.0.0.0 (invalid ip). what this does is basically tells my phone that the ads are at 0.0.0.0, since that doesn't exist, my phone ignores it, and moves on. The removed servers are a double check system. Hulu sends those out to verify you're not blocking. Those go through fine, hulus like "ok, play the video!". since there's no video as my phone simply did not even bother with it, hulu assumes the server is down and is not your fault, after all, these things happen. Unfortunately they still have to give you 30 seconds of reading time for 1 message. If you watch shows that are interrupted 2 or 3 times though, this should work fine as you can just go get a soda or something while it counts down. So here's a link to the hosts file I'm using, let me know how it goes and I'll see what needs changing
Just fyi, this is the same hosts file found here:
Except I changed all blocked from 127.0.0.1 to 0.0.0.0 so it's completely ignored and no request is even attempted. Will make your browsing 0.00001 seconds faster!
Oh, and I removed 3 hulu servers to get it to work. I use hulu+ all the time, but if you get an ad, it's possible it was on one of those servers, I'll update here if I get one and post a new hosts.
***last edit lol
I actually let it play through the video this time. It looks like it's timed. Skipping through after the error message works fine, actually watching a video will make it pause for 30 seconds on the error message at least once per show.
I'll see if I can change the apk to drop the 30 seconds to 1. I'll check it tomorrow lest I forget ha