Chill electronica streaming
Project description
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:
- A directory of streaming radio station URLs
- A Python API for accessing that directory
- 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 avlc
executable: - e.g.
export VLC_PATH=~/Applications/VLC.app/Contents/MacOS/VLC
- Alternatively you may set
- In order to stream Twitch video channels, the
streamlink
package is required (see installation below)
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
Note: Twitch streams from DEF CON music are possible if
streamlink
is installed, but this is not a hard requirement. If it is not installed video channels will not be presented in the menu or available for playback.
Installation, but for real this time
You can install directly from PyPI:
pip install --user Chill-Streams
# Optional support for Twitch streams
pip install --user streamlink
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:
But, if you already know what station you want, you can ask for it directly:
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:
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:
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:
Credit
Thanks to nick3499 for the original project this is forked from, and for curating a comprehensive directory of shoutcast stations.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for Chill_Streams-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0508e8e24d73c482bda047fb90e5632a4d2c9b95a4ad8986bf69bb57c5c143ac |
|
MD5 | 43c45bf9a50da6f131f13aed21a898b8 |
|
BLAKE2b-256 | 2afd433e3e7cdff077340e8938e4b6b37cbe4305835de809ed068073e7dc55a6 |