zik-0.1.0 is not a library.
zik
A TUI web radio player with a real-time audio visualizer, built with Rust and ratatui.
Plays HLS/m3u8 radio streams via mpv and displays a spectrum visualizer captured from PulseAudio/PipeWire system audio output.
Dependencies
Runtime
- mpv - audio playback
- PulseAudio or PipeWire (with PulseAudio compatibility) - audio capture for the visualizer
Build
- Rust (edition 2024)
- libpulse development headers
Arch Linux
Debian/Ubuntu
Build
The binary is at target/release/zik.
Install
Configuration
Create ~/.config/zik/config.toml:
[]
= "Magenta"
[]
= "https://stream.radiofrance.fr/fip/fip_hifi.m3u8"
= "https://stream.radiofrance.fr/fiprock/fiprock_hifi.m3u8"
= "https://stream.radiofrance.fr/fipjazz/fipjazz_hifi.m3u8"
= "https://stream.radiofrance.fr/fipgroove/fipgroove_hifi.m3u8"
= "https://stream.radiofrance.fr/fippop/fippop_hifi.m3u8"
= "https://stream.radiofrance.fr/fipelectro/fipelectro_hifi.m3u8"
= "https://stream.radiofrance.fr/fipworld/fipworld_hifi.m3u8"
= "https://stream.radiofrance.fr/fipreggae/fipreggae_hifi.m3u8"
= "https://stream.radiofrance.fr/fipnouveautes/fipnouveautes_hifi.m3u8"
[ui]
| Key | Description | Default |
|---|---|---|
bar_color |
Visualizer bar color | Magenta |
Available colors: Black, Red, Green, Yellow, Blue, Magenta, Cyan, White, DarkGray, LightRed, LightGreen, LightYellow, LightBlue, LightMagenta, LightCyan.
[radios]
A map of name = "url" entries. Each entry is a radio station with an HLS/m3u8 stream URL. You can add any stream that mpv supports.
Usage
# Play the first radio alphabetically
# Play a specific radio
Keybindings
| Key | Action |
|---|---|
Enter |
Play / stop selected radio |
j / Down |
Next radio |
k / Up |
Previous radio |
s |
Toggle radio selector panel |
Esc |
Close selector panel |
? |
Toggle keybindings help |
q |
Quit |