Skip to content
Another terminal-based Spotify client
Branch: master
Clone or download
Latest commit be02531 Jan 16, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml Jan 9, 2020
spotui add resiliance to track playing fn Jan 16, 2020
.gitignore initial Jan 8, 2020
.travis.yml initial Jan 8, 2020 Create Jan 8, 2020
LICENSE initial Jan 8, 2020
Pipfile tidy up deps Jan 8, 2020
Pipfile.lock tidy up deps Jan 8, 2020 Update Jan 9, 2020 0.1.7 Jan 16, 2020


Version Badge License Badge Code size Badge

Spotify in the terminal.


Getting Started

Install with pip install spotui

Then install spotipy with: pip install git+ --upgrade

(if anyone knows a way to add this version of Spotipy as a dependency let me know)

Register a developer application at: Once you create the application you'll need to edit it to add a Redirect URI. Use something like 'http://localhost:8888/auth' (it doesn't matter what you use really as long as it matches what's in your config file).

Run spotui to generate a sample config file at ~/.config/spotui/.spotuirc or create one manually with the following:

  user_name = *Your spotify username*
  client_id = *Your application client ID*
  client_secret = *Your application secret*
  redirect_uri = http://localhost:8888/callback

Once you're done start the app with spotui, log in via your browser and copy the URL of the broken web page you're taken to. (This ugly authentication process is part of the underlying Spotipy library I use so don't blame me 😜)

This app acts like a kind of remote control for Spotify. The best way to use it is in conjunction with Spotifyd which means you won't need to actually have Spotify open. Alternatively, you can just open Spotify on your computer, phone etc. (press d to pick the device to play on).



tab Switch section

k/ Up

j/ Down

Enter Select

/ Search

d Open device menu

Esc/q Quit/Back


space Play/Pause

n Next track

p Previous track

Seek 10s forwards

Seek 10s backwards

s Toggle shuffle

r Toggle repeat


  • Why did you make this? To learn Python. This is literally the first thing I've ever made in Python
  • Why should I use this instead of Rigellute's version? You like the way mine looks better? Rigellute's version is great, and it's written in Rust which automatically makes it cool 😎
  • What do I do if something breaks? Raise an issue or submit a PR to fix my crappy code 🙏




You can’t perform that action at this time.