A simple terminal UI player for di.fm Premium
If you're seeing this on Github, this repository is a mirror of https://code.adriano.fyi/me/di-tui/
This app began as di.fm player, but now supports the whole Audio Addict network
- Classical Radio
- DI.fm
- Radio Tunes
- Rock Radio
- Jazz Radio
- Zen Radio
Binary releases are available in releases.
go install github.com/acaloiaro/di-tui@latest
di-tui is currently in nixpkgs/nixos-unstable.
nix run github:acaloiaro/di-tui
There are two authentication options
- Enter your username and password directly into
di-tuiwith the--usernameand--passwordswitches - If you're justifiably uncomfortable with entering your username/password into this application, copy your "Listen Key" from (https://www.di.fm/settings) and create the following file:
token: <YOUR LISTEN KEY>
album_art: <BOOLEAN>| key | description |
|---|---|
| token | string Your di.fm authentication "Listen Key" found at https://www.di.fm/settings |
| album_art | boolean Enable/disable album ASCII art |
DI.fm is the default network, but other audio addict networks can be chosen with the --network switch.
| switch value | network |
|---|---|
| classicalradio | Classical Radio https://classicalradio.com |
| di | DI.fm https://di.fm |
| radiotunes | Radio Tunes https://radiotunes.com |
| rockradio | Rock Radio https://rockradio.com |
| jazzradio | Jazz Radio https://jazzradio.com |
| zenradio | Zen Radio https://zenradio.com |
Favorites are a merge of your remote favorites and an optional local list in
~/.config/di-tui/config.yml. If no local favorites are configured, the remote list is
used as-is.
Use Shift+F to toggle a channel as a favorite from either pane, and Shift+K/Shift+J
to reorder. Changes are written to config immediately.
Local favorites can also be defined manually:
favorites:
- name: Trance
channel_id: 123Channels removed via Shift+F are stored with hidden: true, which suppresses them even
if they appear in your remote favorites.
Both linux and MacOS depend on pulseaudio to be running.
By default, pulseaudio on MacOS runs as "root", which is not ideal. PulseAudio is best run by non-root users. By symbolically linking the pulseaudio plist file into your user's ~/Library/LaunchAgents/, it runs as your user.
brew install pulseaudio
ln -s $(brew info pulseaudio | grep "/usr/local/Cellar" | awk '{print $1}')//homebrew.mxcl.pulseaudio.plist ~/Library/LaunchAgents
brew services start pulseaudio
apt install pulseaudio
MPRIS is a D-Bus specification allowing media players to be controlled in a standardized way, e.g. with playerctl.
di-tui supports a very limited set of MPRIS commands. The limited set is due to the fact that di-tui is a streaming audio player, and it doesn't make sense to support next, previous, seek, etc., because audio streams have no next or previous track; or the ability to seek forward.
play-pause Toggles Play/Pause, e.g. playerctl --player=di-tui play-pause toggles play/pause on di-tui if it's the active player
track The currently playing track
artist The currently playing artist
status The status of the player, e.g. playing, paused, stopped
playerName The name of the player: di-tui
By default, di-tui respects your terminal's color scheme. However, there are four color settings that one can change by adding a theme to config.yml.
Tomorrow-Night inspired theme
theme:
primary_color: "#81a2be"
background_color: "#2a1f1a"
primary_text_color: "#969896"
secondary_text_color: "#81a2be"