Skip to main content

Streamtuner2 is an internet radio browser

Project description

Streamtuner2 lists radio directory services like Shoutcast, Xiph, Live365, MyOggRadio, Jamendo. It allows listening via any audio player, and recording of streams via streamripper.

Download

This isn’t yet a proper Python package, but a PYZ application.

http://sourceforge.net/projects/streamtuner2/files/streamtuner2-2.1.9.pyz/download

It’s primarily here for beta testing.

Reusable components

A few components are reusable, and possibly of interest. (Public Domain, not even attribution required).

The uikit module provides a few Gtk abstractions

  • Mainly the TreeView list construction columns() which accepts a column-mapping structure and simpler dict-lists.

  • A pixbuf reader from internal PYZ package contents with some auto-decoding.

  • Widget wrpaping with background, alignment, hbox packing etc.

The action module contains a few utility functions for converting playlist formats:

  • M3U,

  • PLS,

  • XSPF,

  • JSPF,

  • ASX/WVX,

  • ASF,

  • SMIL,

  • .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 title, playing description, genre, streaming url, bitrate, format, etc.

Other available channel modules:

  • shoutcast

  • xiph

  • radionet

  • radionomy

  • myoggradio

  • jamendo

  • youtube

  • ubuntuusers

  • filtermusic

  • difm

  • dirble

  • internet_radio

  • radiobrowser

  • surfmusik

  • magnatune

  • listenlive

  • windowsmedia

  • 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…(?)

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page