It’s fixed now. See below.

The iPlayer appears to have changed somehow. As soon as I can get hold of a session trace, I’ll work out what’s changed and fix my downloader.

In the meantime, here’s a snippet from the iPlayer source code to amuse you:

var _uaMatch = {
  'apple-i-family' : /(iphone|ipod)/,
  'nokia-s60-webkit-family': /(n95|n96|n78)/,
  'samsung-win-mobile': /sgh-i900/ //"SAMSUNG -SGH-i900/1.0 Opera 9.5"

So you can now use the iPlayer if you’re using an iPhone or an iPod Touch, or a Nokia N95/N96/N78, or a Samsung SGH-i900. That’s it. I wonder how long they can keep up this piecemeal approach to mobile support before it overwhelms them. If they’d only used open standards … Ironically, of course, they are using open standards, just obfuscated.

I’ve really got to get hold of an iPod Touch. It would make all this reverse engineering so much easier. Anyone got an old one going spare?

Update: Apparently it’s genuinely broken. Even from a real iPhone.

Update 2: It’s broken for some people using iPhones. Not sure what’s going on.

Update 3: There was a small change to the iPlayer that broke downloads. Thanks in no small part to Mike Trim, I’ve published a fix. It will be available on the project page shortly.