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

βŒˆβŒ‹ βŽ‡ branch:  streamtuner2

Update for recent change, but also implement JSON extraction while at it.
mario authored 18 days ago last checkin 697df1718
πŸ“‚ cmdline Move action/playback handlers to contrib/cmdline/β€Ήβ€Ί 1550 days ago
πŸ“‚ disabled Normalize all broken plugins with status: broken, and priority: obsolβ€Ήβ€Ί 1519 days ago
πŸ“„ bookmarks_show_extra.py Contrib plugin: show `extra` column in bookmarks (origin channel). Chβ€Ήβ€Ί 1537 days ago
πŸ“„ cachereset.py Switch to XDG_CACHE_HOME/.cache (because that's what the cache files β€Ήβ€Ί 709 days ago
πŸ“„ compound.py Fix missing channel key error. Add icon.β€Ήβ€Ί 2083 days ago
πŸ“„ continuous_record.py Reverted all `module = __name__` assignments, because that was carryiβ€Ήβ€Ί 1492 days ago
πŸ“„ dev_faulthandler.py Stub debugging plugin.β€Ήβ€Ί 2062 days ago
πŸ“„ file.py More special case handling on Windows: file encoding, backslashes, urβ€Ήβ€Ί 1455 days ago
πŸ“„ glrp.csv.gz Compressed GLRP csv playlist.β€Ήβ€Ί 2081 days ago
πŸ“„ glrp.py Reverted all `module = __name__` assignments, because that was carryiβ€Ήβ€Ί 1492 days ago
πŸ“„ gtk_theme.py Reverted all `module = __name__` assignments, because that was carryiβ€Ήβ€Ί 1492 days ago
πŸ“„ housemixes.py Add pq.find() and log.ERR to `pq` wrapper module.β€Ήβ€Ί 249 days ago
πŸ“„ magnatune.py magnatune: radios are gone?β€Ήβ€Ί 245 days ago
πŸ“„ new_favourite_cat.py Fix dict error for new categories.β€Ήβ€Ί 756 days ago
πŸ“„ new_station.py Introduce "New station..." menu entry. (via streamedit / non-functionβ€Ήβ€Ί 1889 days ago
πŸ“„ oggicon.py OggIcon plugin was misplacedβ€Ήβ€Ί 1189 days ago
πŸ“„ podspider.py Fix old module names.β€Ήβ€Ί 1474 days ago
πŸ“„ prefstore.py Fix typo in default config save/load filename.β€Ήβ€Ί 1476 days ago
πŸ“„ publicradiofan.py publicradiofan: strip `/cgibin/wrap.pl…` from some listingsβ€Ήβ€Ί 245 days ago
πŸ“„ punkcast.py Change priority from obsolete to outdatedβ€Ήβ€Ί 1492 days ago
πŸ“„ radiolist.py Apply more `self.status(i / pages)` progressbar calls for some channeβ€Ήβ€Ί 245 days ago
πŸ“„ radionet.py Update for recent change, but also implement JSON extraction while atβ€Ήβ€Ί 18 days ago
πŸ“„ radiosure.py Reverted all `module = __name__` assignments, because that was carryiβ€Ήβ€Ί 1492 days ago
πŸ“„ rcast.py Apply more `self.status(i / pages)` progressbar calls for some channeβ€Ήβ€Ί 245 days ago
πŸ“„ recordflags.py Bug was from wgetΒ΄s --local-encoding (select:/Combobox option)β€Ήβ€Ί 243 days ago
πŸ“„ scripts.py Minor Python 3 fixes (syntax and str.decode)β€Ήβ€Ί 245 days ago
πŸ“„ st2subprocess.py Implement new commandline parsing options, kxrs` cmdline_split as fouβ€Ήβ€Ί 1187 days ago
πŸ“„ startup_workdir.py Reverted all `module = __name__` assignments, because that was carryiβ€Ήβ€Ί 1492 days ago
πŸ“„ streema.py streema: fix url regex (now alphanumeric titles) and urn_resolve pattβ€Ήβ€Ί 581 days ago
πŸ“„ theme_installer.py Updated help.chm, whitespace fixed, new theme download dir back.β€Ήβ€Ί 1477 days ago
πŸ“„ tmp_clean_multiurl.py Reverted all `module = __name__` assignments, because that was carryiβ€Ήβ€Ί 1492 days ago
πŸ“„ url_soundcloud.py Reverted all `module = __name__` assignments, because that was carryiβ€Ήβ€Ί 1492 days ago
πŸ“„ vtuner.py vTuner: minor fix from stream_update regexβ€Ήβ€Ί 551 days ago
πŸ“„ youtube.py <b style="color:red">new channel: peertube</b>. <span style="color:#7β€Ήβ€Ί 246 days ago

contrib

This directory collects a few other channel plugins.

  • Contents: plugins
  • Status: beta
  • Some are going to be outdated, and a few are just idea collections.

You can basically install any of them by copying the *.py file into:

  • The global installation path /usr/share/streamtuner2/channels/

  • Your local plugin ~/.config/streamtuner2/plugins/

  • Or package them even into the PYZ application:

    zip streamtuner2.pyz channels/new.py
    

The new User Plugin Manager easily installs them.

It scans this directory indirectly via:

Which generates a JSON list of available modules. For instance:

{
    "$name": "delicast",
    "$type": "x-py",
    "$dist": "app/streamtuner2/contrib",
    "$file": "http://fossil.include-once.org/streamtuner2/cat/contrib/delicast.py",
    "encoding": "UTF-8",
    "api": "streamtuner2",
    "title": "Delicast",
    "description": "directory of streaming media",
    "url": "http://delicast.com/",
    "version": "0.1",
    "type": "channel",
    "category": "radio",
    "config": "-",
    "priority": "rare"
},

Attachments: