/spty

A simple Spotify CLI using Click and Spotipy

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

spty

A simple Spotify CLI made with Click and Spotipy

This was done as a personal exercise in making CLIs. It's inspired by shpotify which is available for MacOS.

Setup

pip install spty

Alternatively, you can fork the repo if you wish to play around with it.

Shell Completion

This is optional, but enabling tab completion will let you explore and issue commands faster without having to consult --help.

For zsh:

_SPTY_COMPLETE=source_zsh spty >> ~/.zshrc

For bash:

_SPTY_COMPLETE=source_bash spty >> ~/.bashrc

Connecting with your Spotify

spty does not communicate with your local Spotify app directly but rather over API calls. It's a remote controller. As a prerequisite, you'll have to "create" a Spotify app at Spotify for Developers.

See their App Settings guide for more instructions. Note that your app's name and description doesn't matter as much for this CLI.

Usage

A spotify app must be running before the CLI can be used.

spty                      Show all commands
spty config               (Re)configure your Spotify app values

spty play                 Play or resume playback
spty play TRACK           Find a track and play it
spty play album ALBUM     Find an album and play it
spty play artist ARTIST   Find an artist and play its discography
spty play list PLAYLIST   Find a playlist and play it

spty pause                Pause the playback
spty stop                 Stop the playback
spty replay               Replay the current song
spty next                 Skip to the next song
spty previous (prev)      Play the previous song

spty fast-forward (ffwd)  Fast-forward by SECONDS (10 by default)
spty rewind (rew)         Rewind by SECONDS (10 by default)
spty seek                 Play current song at TIMESTAMP (e.g. 1:30)

spty vol                  Show current volume
spty vol up               Increase volume by 10
spty vol down             Decrease volume by 10
spty vol PERC             Set volume to PERC (0-100)
spty repeat               Set repeat mode (track, context, or off)
spty shuffle              Toggle shuffle or explicitly turn it on/off

spty status               Show playback status
spty status track         Show track title
spty status title         Show album title
spty status artist        Show artist/s
spty status -v            Show playback status, including shuffle and repeat state

spty share                Show the current song's url and uri
stpy share url            Show the current song's url
stpy share uri            Show the current song's uri