Archive | January 2010

Radio Tray 0.3 released

Yesterday I released a new version of Radio Tray. Slowly, it’s getting to the point I want Radio Tray to be. In this version I wanted it to support most of the playlist formats used by online radios. This includes M3U, popularised by winamp, and the ASX, WAX and WVX formats (used by windows media player). Keep in mind that, although Radio Tray can interpret those playlist formats, the GStreamer libraries, on which it is built, may not support the media stream itself. If it gives an error about missing codecs, it’s probably a missing gstreamer plugin.

I’m happy that by version 0.3, Radio Tray now supports every format that I intended to implement. However, I plan to improve playlist handling a bit. The current implementation is a little naive and it needs some work to become more stable. I’ll be working on that for next version. I also plan to add some gui improvements for v0.4.

I’m also quite happy to see the acceptance of Radio Tray. It has received some very nice reviews, and being such a new and small project this really means a lot. I’ll continue to develop and improve Radio Tray, always by the principle that I like so much in Linux: do just one thing and do it well. So, let’s hope it keeps working well 🙂


Have fun!

Radio Tray now supports more online radios

Last weekend I was able to roll out a new version of Radio Tray. This version brings support for "pls" playlist format. This format is used in many online radios, most noticeably on This was a very important addition because it enables users to play more radios. I’m hoping to add more playlist formats in the future, so that Radio Tray can play most online radios.

Unfortunately, GStreamer doesn’t handle playlists, it needs a direct URL to the media file or stream. That’s the reason why Radio Tray’s first version didn’t support any playlist. Because I have to implement that support myself 🙂 However, adding "pls" support wasn’t as hard as I thought at first. It’s basically an ini file. The only problem is that I have first to probe the URL to check if it’s a playlist file or a media stream. And that was very nice exercise. It made me learn a few things about the old HTTP protocol.

Another thing I made in this version was creating a build script to make the .deb package. I’m already using distutils to create the tarball. For those who don’t know, distutils is a python module for distributing python applications. It’s quite easy to create a build script for distutils, and it gives you a source tarball and a binary tarball. Unfortunately, it doesn’t create a .deb package.
For that, I had to create a simple text control file and use the dpkg-deb command. After reading this nice howto, it was also simple to do. I now have a build script that gives me both the source tarball and debian package. It’s better to automate these tedious tasks 😉

I have a few more ideas for future versions of Radio Tray, but I haven’t decided on the roadmap, yet. However, all suggestions are welcomed!

You can download Radio Tray version 0.2 here.

Announcing Radio Tray

After using so much fine open-source software, I finally released something back to the community. For a long time I intended to create or participate in a Linux project, but for some reason never got the chance to do so. Anyway, it’s not much, but here it is: Radio Tray, a simple online radio player with a very simple interface.

I’ve used countless music players, some of them very good, like Amarok, Rythmbox, Exaile, etc. One needs to have a very strong reason to make a new one, right ?

Well, I created Radio Tray for the same reason many software developers create applications: there wasn’t anything that filled all my needs. And I had the time (not much, but some), so…why not ?

I like to listen to music at work. Not always, but there are times where music really helps relax, think, etc. As I don’t bring my music collection to work (I don’t like to have such personal stuff on company computers), I rely on online radios. And I like online radios, there many good ones. I tried lots of music players, but unfortunately most of them don’t support proxies, which I have to use at work. As for the rest, most of them are more suited to managing a music collection than to play online radios. I wanted something simple and oriented to online radios. I then decided to make one myself 🙂

Radio Tray radio list Radio Tray radio configuration

Radio Tray is written in Python, a language that I was also curious about. I already had developed a few scripts in python, but nothing too big. This was really an excellent opportunity to learn more about this language. I decided to make the user interface very minimal. There’s no main window, just an icon in the system tray. By clicking on it, you get a list of pre-configured radios to select. Right-clicking gives the option to configure the list of radios.

This is the first release, so it may have lots of bugs 🙂 I’m already aware of a serious limitation. Unfortunately GStreamer libraries don’t interpret playlist files, like the pls, m3u or wsx. These are the files that most streaming radios have available at their websites. For an experienced user it’s trivial to open these files (which are text files) and grab the direct URL to the stream. It’s this direct URL that needs to be configured in Radio Tray, for it to work. I’m hoping to solve this playlist issue in future versions.

For me, Radio Tray is useful and the solution to my problem. You can download Radio Tray 0.1 and try it yourself. Feel free to leave any comments.