Don’t get over-excited, you can’t stream them yet!
July 26th 2009 addition: I’m being disingenuous here, Dave Johnston has created a free Android application called Beebplayer which you can grab from the marketplace. It’s fantastic! It gives you access to the standard mobile streaming encodes the BBC provide which work great but don’t match the quality of the encodes provided for the iPhone. This guide focusses on getting a copy of an iPlayer video for viewing off-line in a format which is just about as good as you could want quickly.
The bbc provide access to iPlayer for the iPhone but not via flash, they actually provide a http stream with h264 video and AAC audio in it. Hang on! The G1 could play that!!!! Read on to find out how to do it.
Well, it can’t – not directly. The BBC have encoded their programmes for iPhones in a friendly format of 480×270 (16:9 widescreen), 400Kbps H.264 video and 116Kbps AAC audio which the G1 can play fine.
The problem is that the .mov container is slightly different to the .mp4 container in how it stores AAC audio and the G1 won’t play the audio on the device.
I’ve attached a package to help you download and convert programmes from iPlayer for the G1.
* Unzip it somewhere
* Find the programme you want on iPlayer and navigate to the screen that shows the flash movie, ready for you to click play
* Run the program ipdl.exe ( by Paul Battley – he maintains this actively so if you have problems, get the updated ipdl.exe from there ), paste in the url from your web browser and then click download
* Choose where you want the file to download and wait for it to complete
* Drag the .mov file you have downloaded over onto the convert.bat file
* The batch file will strip the raw video and audio out and recombine into an Android friendly mp4 file!
The length of the download depends on the length of the BBC programme but the conversion at the end is very quick as no re-encoding is required. As a result, the quality is as good as it can possibly be for the G1.
Enjoy!

Pointless, as you need to be near a laptop with web access, and as you can stream over wifi from BBC using beebplayer.
Voo, not really – this is about watching videos from iplayer on your android phone and not about streaming. Remember, you can’t stream them over 3g with t-mobile and until yesterday, it seemed that beebplayer was being blocked by some ISPs. This is all about taking a copy of a program you missed to be watched on the move and the quality is far superior to the 3gp stream beebplayer gives you.
Excellent – works perfectly on my HTC Magic – many thanks!
ipdl now downloads mp4, but no sound when played on my Hero
Actually downloading mp4 from iplayer is no different. Just that the input and output file extensions are now the same, just tweaking the batch file to change the name of the output works fine.
Pete, it might dump them in an mp4 container now but the audio and video are still combined in a way that Android struggles with. I’ll have to update this though as Paul Battley’s ipdl has been updated a few times recently.
Recently got an LG GW620 Android 1.5 device, and this works a treat…
Have you seen the “Get_iPlayer” project over at http://linuxcentre.net/getiplayer?
It seems as if it would be fairly easy to get a PVR set up to record iPlayer stuff in the right format to just put on Android…
(or use the PVR to do the recording, Set up a batch file to copy the completed progammes to a working directory, do the mp4box conversion (en masse), move the completed files to an “AndroidTV” directory ready to copy over (or sync) to an Android, then set this to run on a schedule using windows scheduler…)
OK, done some work on this, and, if I’m right the code here, if put into a batch file, will do the trick:
dir %1 /b > %1.txt
cd %1
for /f “delims=.” %%a in (c:\wip.txt) do (
..\MP4Box -raw 1 “%%a.mp4″ -out “%%a.h264″
..\MP4Box -raw 2 “%%a.mp4″ -out “%%a.aac”
..\MP4Box -fps 25 -add “%%a.h264″ -add “%%a.aac” -new “%%a.mp4″
del “%%a.h264″
del “%%a.aac”
)
cd ..
Basically use Notepad to create a Batch file (I call it Batchconvert.bat) copy the above into it and save into the same directory as mp4box.
Save the iplayer files into a directory in the same directory as mp4box.
Once this is done you can drag the folder containing the iplayer mp4s over the batchconvert.bat and it will convert all files in the directory.
Then manually copy the files somewhere else ready to copy to the Android’s MicroSD card.
Argon0, that’s very interesting.
I had been using get_iplayer for some time but found conversion a chore.
I like the idea of running the pvr as I think they have a full web interface there? Looks like the sort of thing that would live nicely on a linux box too. You are going to have to encode that for android though, no fiddling with the container like we have both done in our scripts with mp4box.
I’m going to take a look at mplayer for linux (although I am sure there are win32 builds) and see if some sort of pipeline can be set up. IE, I drop a file in a folder and it gets picked up in a scheduled job and stored ready for transfer to either my G1 or the PS3.
Get_iplayer has the webPVR now (which works properly from Firefox but not I.e.), and if you use the iphone format for recording it stores it in .mov format. You can then use the batch file I created above to batch convert it all..
Except – get_iplayer puts names as they are on iplayer, so if you use the “.” as a delimiter (as above) it doesn’t work, as it breaks at the first “.”.
If you could guarantee that every program would have ONE “.” in it as well as the “.” for the extension you could stitch it back together again. I guess you could use the “FOR” loop with the “tokens” created with the first “FOR /F %%a” until it found “mov” as a token, then tell it to ignore the token, but, atm, its a little beyond me….
Instead I create the wip.txt manually then use find and replace in wordpad to replace “.mov” with “|mov” and use “|” as the delimiter instead… I guess I could use sed or similar (if I can find Dos/windows scripatble variant) to do the replace automatically – actually that’s an idea, will look at and post back…
Ahah, the sed-3.59.exe can do exactly what I need it to do.
So replace dir /b >wip.txt with
dir /b > wip1.txt
sed-3.59 “s/.mov/|mov” wip1.txt >wip.txt
replace the “delims=.” with “delims=|” and away we go (of course this only works if the file is in mov format… could put a test in for this anyway… Or do
dir *.mov /b >wipmov.txt
dir *.mp4 /b >wipmp4.txt
sed-3.59 “s/.mov/|mov” wipmov.txt >wip.txt
sed-3.59 “s/.mp4/|mp4″ wipmp4.txt >>wip.txt
to create the work file…
Except its easier to create two batch files, one for each extension… Otherwise you need to get cute later on in the batch file (if exist %%a.mov gotto movextract else if exist %%a.mp4 goto mp4extract else Echo “no files here”… or similar)
Sorry to use your site as a “thoughtbox” recently….
I’ve written a couple of Batch files to do what I have been talking about – see
https://docs.google.com/leaf?id=0B9hCz1HWHSeHZTg2OTA1N2ItMzZhNi00OGE0LWI1MmYtMzI5MThlZTU3OTBi&hl=en
Its a zip file, which contains two batch files called BatchConvertMP4.bat and BatchConvertMOV.bat. It needs to be extracted into the same directory as MP4BOX and the JS32.dll, and SED-3.59.exe (from downloads section of http://sed.sourceforge.net/). I’d put it all together in one package but not sure of licensing implications…
It’s fine by me, that’s what comments are (hopefully) for!
Oh, and to work properly the files to be converted need to be in a subdirectory of the same drive as the executables…
Trackback this post | Subscribe to the comments via RSS Feed