Using get_iplayer to download content from the BBC iPlayer in Linux [(X)ubuntu]

I couldn’t find a really simple guide that explains how to download TV and Radio shows from the iPlayer using get_iplayer so I thought I would write one. get_iplayer can do a lot of things including streaming and PVR style recording and other guides that I have found seem to focus more on that sort of thing. This will be much more basic and concentrate on one simple task.

This guide explains the process in Xubuntu Linux but will work in any other flavour of Ubuntu, for example Kubuntu, Lubuntu or the main Ubuntu version. It will also work in Linux Mint. The process is likely to be very similar in other distros like Debian, Fedora and OpenSUSE but I haven’t tried it.

There is a Windows version of get_iplayer and I would imagine that the commands are the same but again I haven’t tried it.

It is possible to use a proxy with get_iplayer to enable you to download content from the iPlayer from outside the UK. I won’t be covering that.



Open a terminal and type:

sudo apt-get install get-iplayer

Please note the dash (get-iplayer) rather than underscore (get_iplayer). Installation is the only time a dash is used. After this it will always be an underscore.

Enter your password and then say yes.




First you need to decide where you want to save the file that you will be downloading. If you are happy to save it to your home folder then you just need to open a terminal and run the relevant command. Otherwise you will have to cd to the folder where you want to save it first. Some distros and desktop environments have a right click “open terminal here” option which saves a bit of time. This is among the many reasons that I like Xubuntu.

Once you have the terminal open in the correct folder you need to copy the URL of the programme. The easiest way to do that is to go to the page where you would normally watch the show and copy everything in the address bar. It should look something like this:


The only part of it that get_iplayer actually needs is the pid (programme ID). In this case it is b03bvsw2. It makes no difference if you use the whole URL and it is probably easier so I will be doing that in this tutorial.

The command that you need to type into the terminal is the following:


get_iplayer --raw --modes=flashhd

(To paste things into the terminal you need to either right click paste or Ctrl+Shift+v)


The –raw part means that it won’t convert the file that it has downloaded. You will get a file that ends .flv and can be played in VLC (and many other media players including MX Player on Android). My rule is that if VLC will happily play it, there is no need to convert it. Should you want to convert the resulting file, I suggest either Handbrake or VLC.

The –modes=flashhd part is where you specify which stream you will be saving. In order of best quality to worst quality you have the following options: flashhd, flashvhigh, ,flashhigh, flashstd, flashnormal, flashlow. I generally go for flashhd or flashvhigh for programmes that are not available in 720p.

After the –pid= you can either paste the full url or just the pid which in this case would be b03bvsw2.

If you get an error about the pid already being in the cache (most likely because you have downloaded the programme before) then you will need to add –force to the end of the command so it looks like this:

get_iplayer --raw --modes=flashhd --force


Sometimes I find that there are interruptions in the download and usually it will just automatically resume but occasionally the file will become corrupted and the download will fail part way through. You will know that this has happened if the downloaded file still ends .partial.flv (it will look like this while it is downloading). If this happens, the easiest thing to do is delete the file and then rerun the command with –force added.



The process is very similar for radio downloads. Again go to the page where you can play the show in question and copy the URL. Open a terminal and type the following:


get_iplayer --raw --modes=flashaacstd

You have a few –modes= options. I’m not that experienced with radio downloads but you can chose from¬† flashaaclow, flashaacstd, rtspaaclow and rtspaacstd.


The resulting .flv file isn’t much use so I suggest using Audacity to convert it to flac, ogg or mp3.

Lightweight Desktop Linux

Full featured Linux distros like Linux Mint, Ubuntu, or Fedora are an ideal alternative to Windows or Mac OS X on a modern laptop or desktop computer but not everyone is fortunate enough to have the latest hardware so sometimes a lighter alternative might be more suitable. There are loads of Linux distros out there and a lot of them can be run on extremely old hardware, often with surprising success. This is a summary of some of the lightweight Linux distros and desktop environments that I’ve tried.


Desktop Environments

The main full featured (or big and bloated) desktop environments are Cinnamon (first developed for use in Linux Mint), Mate (a fork of Gnome 2), Gnome 3 (default in Fedora), Unity (first developed and used in Ubuntu) and KDE. I might go into why I don’t use any of those at some point in the future but for now I will be ignoring them.



One step down in weight is Xfce. This is what I use on even modern machines that are well capable of running heavier environments. Although it started as a lighter alternative to Gnome, it has steadily increased its footprint and feature set to the point where it is entirely usable as part of an everyday operating system. It’s extremely customisable and can be made to look enough like good old Windows XP to keep me happy. It’s also possible to make it look completely different with docks or by positioning the panel(s) where ever you want them.

Default Xfce (Ubuntu 13.04)
Default Xfce (Ubuntu 13.04)

To install it on Ubuntu you have two options. Pure Xfce or Xfce with a few tweaks in the form of Xubuntu. Personally I prefer Xubuntu.

For pure Xfce open a terminal and type

sudo apt-get install xfce4

For Xubuntu type

sudo apt-get install xubuntu-desktop

Once it’s installed just log out and then choose Xfce from the session menu.


The same goes for other desktops.



LXDE (Lightweight X11 Desktop Environment) is another step down in weight. In my opinion it is just as usable as Xfce but runs that little bit faster using fewer resources. The only reason that I don’t use it is that I settled on Xfce before I had heard of LXDE and I fear change. I am the type of person who finds something they like and sticks with it. Again it is very customisable and by default looks somewhat like Windows XP in terms of layout. Admittedly it does look a bit old school in its default state but you can change the look and feel very easily to suit your taste.

LXDE was chosen as the default desktop for Rasbian which is the main officially supported distro for the Raspberry Pi.

Default LXDE (Ubuntu 13.04)
Default LXDE (Ubuntu 13.04)

Again to install LXDE on Ubuntu you have two options, pure LXDE and Lubuntu.

sudo apt-get install lxde


sudo apt-get install lubuntu-desktop



Fluxbox is a window manager that is very minimal and very lightweight. It does have a taskbar by default but the only way to access programs is to right click on the desktop which brings up a menu. Although it is possible to customise it quite a lot, doing so involves editing configuration text files rather than using a GUI. I wouldn’t really recommend it.

Default Fluxbox (Ubuntu 13.04)
Default Fluxbox (Ubuntu 13.04)

To install it on Ubuntu:

sudo apt-get install fluxbox



Very similar to Fluxbox, indeed originally sharing the same roots, Openbox is even more minimal. After installing it on Ubuntu and logging into it, you are met with a plain grey screen. Again right clicking brings up the menu. It’s possible to install panels and docks but again it involves editing config files. Thankfully there are graphical configuration tools to make it easier. LXDE uses Openbox as a base and this shows that it doesn’t have to just be a blank screen. In a choice between Openbox and Fluxbox, Openbox wins hands down.

Default Opebox (Ubuntu 13.04)
Default Opebox (Ubuntu 13.04)

To install it in Ubuntu:

sudo apt-get install openbox

If you have LXDE installed, Openbox will already be installed.


Tiling window managers

There are lots of tiling window managers but the whole concept doesn’t appeal to me at all. Some of them are extremely lightweight so I am giving them a brief mention.

There are a myriad of other desktop environments and window managers but I don’t have time to investigate them all.


Lightweight distributions

There are a number of Ubuntu variants that each come with a different desktop environment that has been customised. There are also derivatives of those variants.

For Xfce there is Xubuntu.

For LXDE there is Lubuntu and Peppermint.

For Openbox there is CrunchBang which was originally based on Ubuntu but has since moved to Debian (which is what Ubuntu and all of its derivatives use as a base). Although I haven’t used it for a while, my memory is that it is a really usable distro if you want something really light that can run on old hardware.

Then there are some other lightweight distros. From here on we are entering hobbyist territory. I wouldn’t recommend any of the following for day to day use for various reasons.


Puppy Linux

Puppy Linux is a distro that runs from RAM. It is possible to install it to a hard disk but it is not recommended. The .iso file isn’t much more than 100MB which is pretty small compared to Ubuntu and Mint which are around 1GB. I used it quite a lot 4 or 5 years ago and used to really like it. It was really fast and allowed me to resurrect an ancient IBM Thinkpad A20m (originally running Windows 98) into a machine that was capable of browsing the web and even watching the odd video.

When I decided to write this piece I thought I would have good things to say about Puppy but alas not. It seems that since my last dealings with it, there has been major fragmentation within the project. There are now two websites ( and, one being called the official site (.com) and the other being called the community site. Both sites have various versions that are compatible with Ubuntu packages and Slackware packages but there seem to be different version numbers of each on each site. Obviously I could investigate this properly and try the various versions but I don’t want to. The nature of free/open source software means that there will always be fragmentation but I think that they should clarify their version system.

I tried two Ubuntu compatible versions and although they had different colours and desktop backgrounds and had slightly different menus, they struck me as broadly similar. I very briefly tried to connect to my wireless network but the wizard failed. Again I could have tried harder like I did back in the day with my Thinkpad but instead I just plugged in my ethernet cable. This time the wizard worked.

One program that I always try to install when I try a new distro is VLC. I do that for two reasons. Firstly it is a great media player that will play almost any video file, regardless of codecs. The second is that it has a lot of dependencies and so it is a good test of distro’s packaging system. Debian (and thus Ubuntu/Mint etc.) uses APT which is a very clever solution to the problem of dependencies. I am used to typing in one command to refresh the list of available packages (apt-get update)¬† and then one command to install a program (apt-get install vlc). I sometimes use the excellent GUI Synaptic, in which case I just click a button to refresh the package list and then search for, select and install the program. APT makes this process trivial.

With Puppy it is a different story. I admit that I don’t know enough about Puppy to install programs using the command line so I had to rely on GUI tools. I managed to find the package installer from with the menu (each version had it in a different place) and after searching for VLC I clicked on it. It attempted to install it but gave me an error, suggesting that I refresh the package list. The button to do that was two screens deep but I found it. Clicking it in one version caused it to start refreshing and then just freeze. At that point I gave up and tried the other version. I went through the same process only this time the package refresh worked. Slowly. Very slowly in fact. It must have taken about 15 minutes to complete the job. This wasn’t because of slow download speeds, it was because it processed each available package individually and there were an awful lot of individual packages. When it finally finished I installed VLC and it worked very well. I was able to stream a 720p video from my desktop machine and it played perfectly on full screen.

Overall I wouldn’t recommend Puppy for use beyond a bit of tinkering. One of the main reasons for that is that it doesn’t have users and instead always runs as root. Running programs like web browsers and email clients as root is a recipe for disaster so it strikes me as odd that the developers have taken this decision and stuck with it for the ten years of the project’s history.

Puppy Precise
Puppy Precise
Puppy Lucid
Puppy Lucid


Damn Small Linux

Once upon a time, DSL was the daddy of lightweight desktop Linux. At 50MB, it seemed like it wasn’t possible to make a functional operating system any smaller. A lot has happened since 2008 when it last had a stable release and quite frankly it has become irrelevant. I didn’t try the latest release candidate but version 4.4 that I tried seemed pretty terrible. That might sound harsh considering it is such a small .iso and there was a time when it seemed really impressive but now that Tinycore exists I just don’t have much time for it.

I couldn’t get wifi or ethernet working (admittedly I didn’t try very hard at all) and it wouldn’t even boot properly on my old test laptop. Without a network connection there wasn’t much I could do with it. It’s worth checking out briefly, maybe the newer release candidate is much better. Maybe I will revisit it if that ever becomes a stable release. I didn’t use it long enough to work out how to take a screenshot but there are a couple on the project’s website (1 and 2)



Originally derived from Damn Small Linux, Tinycore takes it to the next level. There are 3 versions which are clearly explained on the website. As this is about desktop Linux I will ignore the smallest one which at 8MB only has a command line interface. The 12MB version (called Tinycore) contains just enough to boot to a desktop and install programs. There is also a 64MB version which comes with various programs and utilities.

I tried the 12MB version. It is remarkable that they have managed to develop a usable distro that is so small. By usable I mean I was able to install Firefox and VLC really easily and at least browse to my Desktop and stream a video. There was no sound and the screen resolution wasn’t right, despite my brief attempt to correct it. I’m really impressed with Tinycore and think that if I spent enough time with it I could customise it enough to do almost everything I can do with a fuller featured distro like Xubuntu. Unfortunately I don’t have the time so I won’t be doing that.

I highly recommend checking it out. It is after all a very small download that can be put onto a USB stick using Unetbootin. It definitely wins the prize for size vs usability.



In conclusion

If you have a modern machine and want it to work perfectly and absolutely fly then I recommend Xubuntu.

If you have a slightly older but still reasonable machine then I recommend Lubuntu.

If you have a machine that has seen better days then I recommend Crunchbang.

If you have an ancient machine or just like tinkering then I recommend Tinycore.


Obviously this is not an exhaustive list and there are hundreds of lightweight distros out there. This is just my round up of a few of them.

Also this round up is very Debian/Ubuntu centric. That’s because having tried most of the major distros, I believe Debian to be by far the best base and Ubuntu (minus Unity) to be the best overall distro.