Skip to main content

pre-commit.ci status

Chill Electronica Streams

Description

This project is a directory of chill electronica streaming radio stations. If you like DEF CON radio or Groove Salad on Soma.fm, this is for you.

This project provides three things:

  1. A directory of streaming radio station URLs
  2. A Python API for accessing that directory
  3. A command-line utility to present a menu and launch VLC with a selected URL

Installation

Requirements

  • OS:
    • Probably most modern (reasonable) Linux distros, but late Ubuntu releases are known to work
    • Late macOS versions (tested on macOS 11.4 with up-to-date homebrew installed)
    • Windows probably won't work (but might be easily made to, let me know)
  • Python >= 3.8 (3.9 preferred)
  • VLC, with the vlc command line utility on your $PATH (the homebrew VLC cask on macOS sets this up for you)
    • Alternatively you may set VLC_PATH to point to a vlc executable:
    • e.g. export VLC_PATH=~/Applications/VLC.app/Contents/MacOS/VLC

Note: VLC has a bug on Apple Silicon and ncurses is broken. Workarounds:

  • Recommended: create a symlink inside ~/.terminfo:
% mkdir ~/.terminfo
% # if TERM=xterm-256color:
% ln -s /usr/share/terminfo/78 ~/.terminfo/x
% # if TERM=screen-256color:
% ln -s /usr/share/terminfo/73 ~/.terminfo/s
  • Install the x86-64 version
  • Run with --gui, disabling ncurses

Installation, but for real this time

You can install directly from PyPI:

pip3 install --user Chill-Streams

CLI utility: vlc-radio

The vlc-radio utility starts up VLC Media Player playing one of the stations in the directory.

It has a few modes of operation:

  • VLC running in text (ncurses) mode or GUI mode
  • An interactive menu of stations to select from
  • Direct play by station number
  • Direct play by station name
  • If a partial station name is provided and the match is ambiguous, a reduced menu is presented
  • First match: if the match is ambiguous, directly play the first option

CLI Options

usage: vlc-radio [-h] [-f] [--gui] [--write-shell-script] [--version]
                 [station]

Chill Streams: Chill electronica streaming [version 0.1.1.dev0]

positional arguments:
  station               Index or (partial) name of station to play

optional arguments:
  -h, --help            show this help message and exit
  -f, --first-match     Choose first partial station name match
  --gui                 Disable ncurses interface, run VLC in GUI mode
  --write-shell-script  Write a shell script that sets up environment and
                        executes vlc-radio
  --version             Print version string and exit

If you just run 'vlc-radio', you get a selection menu of what station to play: Chill Streams

But, if you already know what station you want, you can ask for it directly: Play station 8

If you know the name or partial name of a station, you can ask for it. If the match isn't ambiguous, vlc will play the station directly. If it is ambiguous, you'll get a reduced selection list:

Groove Salad?

Note that case and whitespace is ignored when asking for a station, so "DEF CON" and "defcon" are equivalent.

If you just want the first match (e.g., "groove salad" not "groove salad classic"), use the -f or --first-match option:

first match

Bootstrap Script

You can use the --write-shell-script option to write a shell script that will boostrap vlc-radio for use in minimal environments. This is useful, for example, to create a dedicated terminal profile that just runs vlc-radio with specific station. Since no shell gets initialized, $PATH may not be set, and the location of VLC may not be known.

Below is such a profile in iTerm2:

iTerm2 dedicated profile

Credit

Thanks to nick3499 for the original project this is forked from, and for curating a comprehensive directory of shoutcast stations.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chill_streams-0.4.4.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Chill_Streams-0.4.4-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file chill_streams-0.4.4.tar.gz.

File metadata

  • Download URL: chill_streams-0.4.4.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for chill_streams-0.4.4.tar.gz
Algorithm Hash digest
SHA256 4182d4f8f462922759be20a847b40118e630bd92a8650c7f916dd57f429b7bd3
MD5 cd500a4d7d4f6a1098148cea12bbba2e
BLAKE2b-256 ecf19848ed1c453dba0525489bb144de70811e18801e637d50cf9522618e21c5

See more details on using hashes here.

File details

Details for the file Chill_Streams-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: Chill_Streams-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for Chill_Streams-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7c2c93de87a317f4762acbe9a45747bc7202622fc5ec7f509302c1daf6572df4
MD5 3c7ed5b333944962622380e0cda9919a
BLAKE2b-256 2e6ad9286a103d923eec0eb6919a4051c4f533ad2a3e1b9af609ef70df9e819b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.4 This release

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0.post0

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1.post0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page