A simple terminal UI player for di.fm Premium
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 | 
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"