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 on Apple Silicon macOS doesn't support ncurses mode for some reason. I'm pretty sure it's a bug, but I haven't filed one yet. Run with --gui, or install the x86 version

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.0.post0.tar.gz (16.8 kB view hashes)

Uploaded Source

Built Distribution

Chill_Streams-0.4.0.post0-py3-none-any.whl (21.4 kB view hashes)

Uploaded Python 3

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