Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


Version 2.1.5 is a beta release

There has been lots of refactoring, and some quite significant changes under the hood.

  • Primarily this new release is more relocatable.

  • It works as a standalone and self-contained PYZ application now.

  • Plugin meta comment blocks are now utilized fully, for initialization and configuration management.

  • A new plugin for Radio-Browser.info and for interfacing with RadioTray was included.

  • The Gtk UI is now queried for more attributes, which allowed the channel tabs to become reorderable in the main window.

  • Images and icons are now embedded into script files.

  • More failure safe guards have been added.

  • And default player applications are now semi-autodiscovered on first initialization. Editing the configuration should give visual feedback on binary existence even.

  • Further improvements to help pages and associated doc files, wiki pages were made.

Gremlins under the bed

  • The command-line flags -D and -d are new, roughly tested, and need better integration.

  • With the new plugin scheme, streamtuner2 depends on an entirely source-based distribution. Running it atop just precompiled *.pyc or *.pyo files won't work.

  • Discovery of data files is left to pkgutil, which in tests was reliable enough across Python 2.7 to 3.4, and is supposed to work on 2.6 even (untested).

  • Image loading via Gdk.PixbufLoader has been unified (not used for favicons yet), and simplifies distribution without too many extra PNG files. It doesn't work for SVG images however, so the main app banner is still a PNG internally.

  • There's still lots of restructuring necessary to move some functions from main into the channels/init module. In particular the row() function and some .current checks are misdesigned. The .first_show() behaviour is still very whacky, and the reason the initially shown streams can be in mismatch to the visually selected category.