Skip to main content

Chill electronica streaming

Project description

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.

Project details


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

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

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.

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