This tool allows you to search, index and record/stream:
- BBC iPlayer TV – up to 3200 kbps HD 720p H.264 / Quicktime / MP4
- BBC Live TV – 500 kbps H.264 / MP4
- BBC iPlayer Radio – up to 192 kbps MP3 / AAC and Realaudio
- BBC Live Radio – up to 192 kbps MP3 / AAC, WMA and Realaudio
- BBC Podcasts – up to 192 kbps MP3 / AAC
- BBC iPlayer TV subtitles – SubRip / srt
Unlike the web sites above, get_iplayer has PVR-like capabilities (like Sky+ / TiVo / Series-Link); You can save lists of programme searches which are automatically recorded when they become available so that you can watch them when you choose and on devices that cannot run Adobe Flash Player – even if you don’t have adequate broadband speeds or if your broadband streams too slowly at peak hours when you want to watch a programme.
The iPhone H.264 feeds from the BBC are higher quality than in the Flash iPlayer (normal quality). See the beebhack wiki for a comparison. They are intended for the Apple iPhone and are consequently difficult to download for any other OS. The same goes for the iPhone MP3 radio streams. get_iplayer also allows recording of the high-quality (even HD 720p) flash based content using flvstreamer. None of the above content is ‘protected’ by DRM. get_iplayer cannot remove DRM.
Myself and a few others worked out how to work around these problems and now have tools which essentially simulate an iPhone as far as the BBC web servers are concerned.
get_iplayer, does the recording, indexing and searching of the iPlayer TV/Radio programmes and podcasts available. It can even stream the iPlayer TV programmes while recording them to mplayer, vlc or xine, etc. It does not circumvent any digital rights management security (see the BBC’s website on how to do that with the Windows-only DRM content they provide). get_iplayer does not circumvent any effective technological measures. The BBC, for example, does not implement any such measures. They use RTMP which is a streaming protocol now publicly published by adobe. Sometimes they use RTMP ‘SWF verification’ which has proven to be ineffective in it’s current BBC implementation (flvstreamer cannot handle such verification requests so the stream is dropped and is then automatically resumed). The iPhone streams are also unprotected and use plain progressive download HTTP protocol. The WMA and realaudio streams and likewise unprotected. The BBC may at some point choose to effectively protect their streams with DRM or some ‘effective technological measure’ in which case get_iplayer will no longer be a useful tool for those streams. The BBC do implement DRM on their adobe air downloadable files and therefore get_iplayer is not useful with those. The BBC iPlayer TV only works in the UK so that they can limit the reach of their output to UK TV License fee payers who fund iPlayer (although legally you do not require a license to watch non-live iPlayer output).
The script is primarily intended for use for recording and playing back TV and Radio content on devices that cannot support adobe Flash/Air/Silverlight, systems which run entirely on open-source software (i.e. no Adobe flash/air or Silverlight), recording content for mobile devices that have no access to broadband/wi-fi or running on devices that have such limited memory that running a browser with a flash player or AIR is not possible (or not permitted). For me this would be an Xbox running Xebian Linux with Freevo or XBMC. The Xbox only has 64MB of memory and struggles enormously with Adobe flash (Adobe doesn’t permit you run flash player or AIR on a games console either). One major use of get_iplayer is for those unfortunate enough to have slow broadband speeds; get_iplayer can pre-record the programme you wish to watch so that you do not get the endless re-buffering that you experience with the flash player. Some ISPs actually throttle iPlayer streaming during peak hours. get_iplayer can actually lessen the ISP’s (and BBC’s) traffic load if the PVR functionality is used off-peak. Please use this tool responsibly and don’t try to download all BBC programmes for example. There is a built-in ‘limit matches’ option to stop get_iplayer doing this just in case you accidentally set it up wrongly.
Of course, to respect the content providers’ wishes and fair-use legislation in your jurisdiction, you should keep the recorded content for no longer than is locally acceptable (30 days seems to be accepted in the UK for TV video recordings for example), not attempt to obtain it from outside of the UK and not redistribute it. get_iplayer is not intended for use in making illegal copies of copyrighted content. Please respect the rights of the content owners when recording. get_iplayer will attempt to remove it’s recorded content which is more than 30 days old. Podcasts and certain radio programmes can be kept for longer but you must investigate this on a case-by-case basis.
- Recording/Streaming of TV, Radio and Podcasts from BBC sites
- Recording/Streaming of Live BBC iPlayer TV & Radio
- Recording/Streaming of Embedded media in BBC Learning Zone, Archive and News sites
- PVR functionality allows predefined searches to be recorded from a scheduler such as cron or Windows scheduler
- Queuing of programmes for batched recording or for recording off-peak
- Resume recordings of partially recorded content
- Stream iPlayer or podcast content via mplayer or xine while recording it
- Allow multiple programmes to be recorded in one command
- Indexing of all available programmes
- Script update capability
- Advanced Searching on programme name, episode, description, channel or category, etc
- Limit search by programmes made available after a specific number of hours
- Removal of recorded content which is more than 30 days old
- Meta-tagging of recorded iPlayer iPhone/H.264 and mp3 files for importing into iTunes
- Plug-in based architecture to allow new channels and sites to be added by 3rd-parties
Reported to Work on:
It has been tested by users under Linux (Fedora, Centos/RHEL, Ubuntu, Debian, OpenSuSE, OLPC, ArchLinux, Puppy, NSLU2), MacOSX, iPhone and Windows XP/VIsta/7 (Cygwin, Strawberry Perl)