Spotify TUI is a Spotify client for the terminal, written in Rust.
In conjuction with Spotifyd, a lighteight Unix daemon, you’ll get a fully-featured terminal application that connects to your Spotify Premium account.

Install Spotifyd

Installation

There are pre-build libraries for different operating systems. For Arch, you can find several packages in the AUR.

I use pulseaudio as my sound server, so I chose spotifyd-pulseaudio-git from the AUR:

yay -S spotifyd-pulseaudio-git

Installation takes a while. The program first runs an installation of Rust and then builds the package.

Configuration

Create a configuration file ~/.config/spotifyd/spotifyd.conf:

[global]
# Your Spotify account name.
username = bob

# Your Spotify account password.
password = password123

# backend
backend = pulseaudio

If you are uncomfortable with saving your password as plain text, you can use alternatives like a keyring or a command that fetches the password.

Running Spotifyd

Create a systemd user script ~/.config/systemd/user/spotifyd.service:

[Unit]
Description=A spotify playing daemon
Documentation=https://github.com/Spotifyd/spotifyd
Wants=sound.target
After=sound.target
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/bin/spotifyd --no-daemon
Restart=always
RestartSec=12

[Install]
WantedBy=default.target

Then enable and start the script:

systemctl --user enable spotifyd --now

Spotify TUI

Installation

For Arch, use the AUR: yay -S spotify-tui

Configuration

Follow the guide from the official docs:

  1. Go to the Spotify dashboard
  2. Click Create a Client ID and create an app
  3. Now click Edit Settings
  4. Add http://localhost:8889/callback to the Redirect URIs
  5. You are now ready to authenticate with Spotify!
  6. Go back to the terminal
  7. Run spt
  8. Enter your Client ID
  9. Enter your Client Secret
  10. You will be redirected to an official Spotify webpage to ask you for permissions.
  11. After accepting the permissions, you’ll be redirected to localhost. If all goes well, the redirect URL will be parsed automatically and now you’re done. If the local webserver fails for some reason you’ll be redirected to a blank webpage that might say something like “Connection Refused” since no server is running. Regardless, copy the URL and paste into the prompt in the terminal.

After you’ve run spt for the first time, you’ll find a configuration file under ~/.config/spotify-tui/client.yml.

Connect With Spotifyd

Make sure that spotifyd.service is running:

systemctl --user status spotifyd.service

Run spt and select a song. Hit Enter.

Spotify TUI will now complain that it doesn’t find a device. Press d and the CLI should show the Spotifyd client. Select it with Enter.

Now it should work.