January 5, 2007

Consolidate your radio streams with streamtuner

Author: Michael Stutz

Streamtuner is a point-and-click GUI browser for the thousands of Internet radio streams available today. It lets you play streams and manage your favorites in a single window -- like a Linux tuner for Internet radio.

Streamtuner has a GTK 2.0 interface and is published under the revised BSD license. It lets you use plugins to browse and search popular portals including SHOUTcast and Icecast.

You don't need streamtuner to listen to Internet radio stations, of course -- the usual method is to go to a station's stream page, or its entry in a portal like SHOUTcast, and click on the stream link to start an audio player. But streamtuner gives you a way to consolidate all of your favorite streams, find new ones, and play and record them in one place. It's essentially an X Window front end that pulls together all the existing pieces; the play and record mechanisms are farmed out to other applications (XMMS and Streamripper are the respective defaults).

Installation

The streamtuner home page has links to the source as well as RPM packages for Fedora Core and SUSE; Debian also has a package. As long as all the dependencies listed on the home page are met, installation from source or package is almost instantaneous. The home page lists the required packages, but depending on your distribution, the actual name and number of files you'll need may vary -- meeting all the GTK dependencies takes several Debian packages, for instance. You'll need Python and PyGTK, and you'll have to install libXML if you want support for the Xiph (Icecast) plugin. If you want to record streams, make sure that you have Streamripper.

To run the program, type streamtuner in an xterm. When it starts, streamtuner opens to a Preselections tab, where you're given half a dozen streams to pick from. Think of these as the preselections you'd find on a car radio -- a rental car, where undoubtedly you're going to disagree with the taste of the presetter. Clicking launches a stream in XMMS; if the station is maxxed out with users or the stream isn't available (a few of the default preselections no longer work), you'll get an error. (You can change the player to Amarok or anything you want by setting it in Preferences, which is found in the Edit menu.)

When you click on a tab for one of the plugins, streamtuner displays a list of available streams. Folders along the left side further categorize them -- SHOUTcast, for instance, has folders for Top Streams and a dozen genres. To listen to a station, just double-click it. This opens XMMS, and once the stream is buffered, it begins to play. To switch to a different station, double-click it.

After you've selected a tab, click Reload to refresh the listing and reflect what the stations are currently playing.

These are the tabs that Streamtuner comes packaged with:

  • Bookmarks - the stations that you've bookmarked, if any
  • Preselections - a listing of saved settings. You can add, edit, or delete them.
  • Live365 - plugin for the Live365 directory
  • Local - a local directory tree for audio files
  • SHOUTcast - plugin for the SHOUTcast network
  • Xiph - plugin for the Xiph.org ICEcast network
  • Google Stations - plugin for stations listed in the Google Directory
  • basic.ch - plugin for live and archived DJ mixes from basic.ch
  • punkcast.com - plugin for Joly MacFie's New York cable-access archives, punkcast.com

To search for a specific station, song, artist, keyword, or category inside a portal such as SHOUTcast, click on the Search folder, then click Reload, and a dialog box opens for your search terms. You can't search across plugins, and you can't search the station playlists -- only station names, genres, descriptions, and their current tracks are searched.

When you find a station that you like, right-click it and choose Add Bookmark; then it will appear in the Bookmarks tab until you delete it (by pressing the Delete key when you've selected the entry).

Click to enlarge

You can also use streamtuner as a searchable interface to your local audio files. Click the Edit menu and select Preferences. Under General is a space to select your music folder -- put the name of the directory tree where you keep audio files on your system. Those files will then be listed in the Local tab, with subdirectory folders listed down the left.

If you have streamripper installed, you can record from streams you're listening to. By default, the record button opens streamripper in a new xterm window, where it uses metadata in the selected stream to rip the individual tracks into their own files, which are named according to artist and title and are kept in a subdirectory (off your home directory) that's named after the station.

But streamripper doesn't record the data that's being sent to XMMS -- it opens a whole new connection to the selected station. This eats up your bandwidth as well as that of the station, which can be a real problem for smaller stations. You can fix this by adding the -r and -z options to the streamripper command line in the Preferences menu. Change it to make an aircheck, or a continuous recording of the actual broadcast in a single file, by giving the -a option. You can also use another program entirely -- for example, when a station broadcasts an Ogg stream with a URL containing a .ogg file, you can make an aircheck of it by just calling wget, so in Preferences you'd use xterm -e wget %q as the record command.

The real power of streamtuner comes into play when you use it to manage your favorite stations by adding them to the Preselections tab. Then it's just like a radio tuner with a huge number of presets: suddenly you no longer need to remember the many names and URLs of stations you like, or mess with their stream files. Instead, everything's in one place and you just click to play or record.

Drawbacks and limitations

Streamtuner is not without its drawbacks. First of all, it could use more plugins to reflect the growing number of stream portals, and the Live365 plugin needs to be fixed -- it no longer works.

It also has its share of usability problems. You should be able to sort and organize bookmarks and keep them in folders, but you can't even move them, aside from using the rudimentary sort controls. The Preferences dialog could also use improvement -- you can't paste the X selection in it, so you have to awkwardly type out long command lines. And it would be really nice if you could tweak each individual stream: you might want to make Ogg airchecks for one stream while ripping individual MP3 tracks from another, or set the volume levels a certain way.

Streamtuner doesn't have a man page, and its default setup assumes packages that not everybody has -- it calls Epiphany as the Web browser for opening links and uses Yelp, GNOME's help viewer, for viewing its built-in XML documentation file.

Finally, there's no real way to automatically cycle through streams or even mix them together, which would come in handy with the hundreds of scanner stations that are out there.

But complicating everything is the fact that the software has been orphaned right on the verge of its 1.0 release. Developer Jean-Yves Lefort says that he has no plans for taking it from 0.99.99 to 1.0, or for even fixing the Live365 bug.

"Instead, I'd like to write a successor," he says, "which would be a complete GNOME music player with stream directory browsing functionalities. However, I'm currently busy with other projects."

Unfortunately, that means that streamtuner's problems aren't going to be fixed unless someone new takes it up.

Conclusion

Streamtuner really needs a maintainer -- the bugs have to be fixed -- and considering its popularity, which seems to be growing, it's surprising that this hasn't happened yet.

But even with its many problems, it's a useful piece of software, and it makes you wonder why nobody else is doing something similar. A good Internet radio tuner application could take streaming radio to the next level.

Click Here!