A retro-style internet radio player for the terminal
Project description
Vintage Radio
A retro-style internet radio player for the terminal.
╔══════════════════════════════════════════════════════════════════════════════════════╗
║ ~ R A D I O ~ ║
║ ╭────────────────────────────────────────────────────────────────╮ ╭────────────╮ ║
║ │ | SomaFM Groove Salad PLAYING │ │ │ │ │ │ │ │ │ ║
║ │ | 00:42 VOL: 60% │ │ │ │ │ │ │ │ │ ║
║ ╰────────────────────────────────────────────────────────────────╯ │ │ │ │ │ │ │ │ ║
║ [ |<< ] [ > PLAY ] [ [] STOP ] [ >>| ] │ │ │ │ │ │ │ │ ║
║ ╭────────────────────────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ ║
║ │ ▶ 1. SomaFM Groove Salad │ │ │ │ │ │ │ │ │ ║
║ │ 2. SomaFM Drone Zone │ ╰────────────╯ ║
║ │ 3. KEXP Seattle │ ║
║ ╰────────────────────────────────────────────────────────────────╯ ║
╚══════════════════════════════════════════════════════════════════════════════════════╝
Features
- Retro radio UI with speaker grill and VU meters
- Real-time audio level visualization via ffmpeg
- 8 beautiful themes (Retro, Synthwave, Dracula, Nord, Gruvbox, and more)
- Add your own stations
- Keyboard-driven interface
Installation
From PyPI
pip install vintage-radio
From source
git clone https://github.com/philjung/terminal-radio
cd terminal-radio
pip install .
Requirements
- Python 3.9+
- mpv - for audio playback
- ffmpeg (optional) - for VU meter visualization
On macOS:
brew install mpv ffmpeg
On Linux:
sudo apt install mpv ffmpeg # Debian/Ubuntu
Usage
radio
Keyboard Shortcuts
| Key | Action |
|---|---|
Space |
Play / Pause |
S |
Stop |
N |
Next station |
P |
Previous station |
↑ / ↓ |
Volume up / down |
A |
Add new station |
T |
Switch theme |
Q |
Quit |
Themes
Switch themes with T:
- Bakelite - Dark brown with brass accents (default)
- Retro Radio - Warm wood tones
- Mint Retro - Silver with teal accents
- Vintage Cream - Light beige and brown
- Synthwave - Neon pink and cyan
- Dracula - Purple and green
- Gruvbox - Orange and earthy tones
- Nord - Cool arctic blues
Configuration
Your stations are stored in ~/.config/terminal-radio/stations.m3u. You can edit this file directly or add stations via the app with A.
Example format:
#EXTM3U
#EXTINF:-1,SomaFM Groove Salad
http://ice1.somafm.com/groovesalad-128-mp3
#EXTINF:-1,KEXP Seattle
http://live-mp3-128.kexp.org/kexp128.mp3
License
MIT
Author
Phil Jung
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vintage_radio-1.0.0.tar.gz.
File metadata
- Download URL: vintage_radio-1.0.0.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93312b2a77f4d697d28daa18aa6eb0b49cf6ce012d50885d0905a2c37fdd6268
|
|
| MD5 |
af719ac2049ac664475dd80754b3d0f9
|
|
| BLAKE2b-256 |
b9123082a5833391f51448b05e267b6dfd8639f9ed7c4d239acdff9b922878c8
|
File details
Details for the file vintage_radio-1.0.0-py3-none-any.whl.
File metadata
- Download URL: vintage_radio-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd099cfbc02b6bc399c4c2ff7cf3ff4951b561cfb3e3c040213b1ff3f30ba83b
|
|
| MD5 |
40a1bc19fb15b445a58a5c4ca559cf46
|
|
| BLAKE2b-256 |
a2dad89c8636aa9434ebb91d72c1aaccfacc85573e0a14d220a93d3bf90bc441
|