Streamtuner2 is an internet radio browser
Streamtuner2 lists radio directory services like Shoutcast, Xiph, Live365, MyOggRadio, Jamendo. It allows listening via any audio player, and recording of streams via streamripper.
This isn’t yet a proper Python package, but a PYZ application.
It’s primarily here for beta testing.
A few components are reusable, and possibly of interest. (Public Domain, not even attribution required).
uikit module provides a few Gtk abstractions
- Mainly the TreeView list construction
columns()which accepts a column-mapping structure and simpler dict-lists.
pixbufreader from internal PYZ package contents with some auto-decoding.
- Widget wrpaping with background, alignment, hbox packing etc.
action module contains a few utility functions for converting playlist formats:
- .URL/DESKTOP files.
Channel data models
Furthermore the various radio directory services are implemented mostly as data models. They’re not completely separated from the application. Currently depend on a prepared requests session, an internal config.conf object, and some utility code. But they can be instantiated and used without active GUI components:
sys.path.insert(0, "./streamtuner2.pyz") from channels.shoutcast import shoutcast parser = shoutcast(parent=None) print(parser.categories) stream_list = parser.update_streams("Pop")
Which returns a list of dictionaries, containing
Other available channel modules:
- tunein, etc.
Using them could perhaps be simplified further, properly separated from the main application and custom config instances etc. You know, if anybody indicated any interest…(?)