As of 10th December 2010, this program no longer works. Find out why.

One of my recent little projects has been to reimplement my iPlayer downloader in C#.

You can download the program from GitHub.

If you’re on Ubuntu or Windows, you’ll probably have everything you need; otherwise, you can install Mono (most platforms) or the .NET framework (Windows only).

You’ll either be able to run it directly or by using mono iplayer-dl.exe, depending on your platform.

It doesn’t have a GUI. You must run it from a command prompt. Give it a try, and tell me how it goes. It doesn’t have all the features of the Ruby version yet.

So … why did I make it?

Ruby’s fine, and I like Ruby, but it’s not a very good solution for getting programs out to the majority of people, because they need Ruby to run them. Using rubyscript2exe to package up the program with a Ruby interpreter is a solution that I’ve used, but it doesn’t seem to work on 64-bit versions of Windows, and it produces a very large package. It also requires a complete Windows development environment to build a Windows executable, which makes for an uncomfortable development workflow for me.

With .Net and Mono, it’s possible to develop and run the same compiled program on Linux, Windows, and OS X. C# is a reasonably tolerable programming language, with a number of sensible features that are absent from Java—closures, for example.

It’s been an interesting exercise. I suspect that test-driven development isn’t practised at Microsoft: the design of HttpWebRequest, for example, makes it very difficult to test. I’ve made a perfunctory effort at testing, but I’ve not tried especially hard to work past the difficult parts.