Spotify Player is a fast, easy-to-use, and highly configurable terminal music player written in Rust. It aims to provide feature parity with the official Spotify application, offering a minimalist UI with intuitive paging and a popup system.
Check out the demo of spotify_player v0.5.0-pre-release on YouTube or on asciicast.
Prebuilt binaries can be found on the Releases Page.
Install using Homebrew:
Install using Scoop:
Install from crates.io:
Install as an AUR package:
Or install with full feature support:
Install using xbps:
Install from FreeBSD ports:
Note: Streaming feature is disabled when using the Docker image. Download the latest build:
Use local config and cache folders:
Enable full Spotify Connect support by registering a Spotify application and specifying the client_id in the general configuration file. Refer to the official Spotify documentation for more details.
spotify_player supports streaming using the librespot library. The default audio backend is rodio, but other backends like alsa, pulseaudio, portaudio, jackaudio, sdl, and gstreamer are supported. To install with a specific backend:
Enable lyric support by installing with the lyric-finder feature:
View lyrics of the currently playing track by using the LyricPage command.
Enable media control support by setting enable_media_control to true in the configuration file. Media control uses MPRIS DBus on Linux and OS window event listener on Windows and macOS.
Enable image rendering support by installing with the image feature:
Supports full resolution images in Kitty or iTerm2 terminals. Sixel rendering is also supported:
Enable desktop notification support by installing with the notify feature:
Note: Notification support is limited on macOS and Windows compared to Linux.
Supports seeking to a position of the current playback by left-clicking on the progress bar.
Enable daemon support by installing with the daemon feature:
Run the application as a daemon:
Note: Daemon feature is not supported on Windows and requires the streaming feature and an audio backend.
spotify_player offers several CLI commands for interacting with Spotify, such as get, playback, connect, like, authenticate, and playlist. For more details:
or
Access the shortcut help page by pressing ?
or C-h
. Some useful commands include:
NextTrack
: n
PreviousTrack
: p
ResumePause
: space
VolumeUp
: +
VolumeDown
: -
Mute
: _
Search
: /
ShowActionsOnSelectedItem
: g a, C-space
AddSelectedItemToQueue
: Z, C-z
SwitchTheme
: T
SwitchDevice
: D
Refer to the configuration documentation for details on adding new shortcuts or modifying the default ones.
By default, spotify_player looks for configuration files in $HOME/.config/spotify-player
. This can be changed using the -c
or --config-folder
option.
spotify_player stores cache files in $HOME/.cache/spotify-player
. This can be changed using the -C
or --cache-folder
option.
Logs are stored in $APP_CACHE_FOLDER/spotify-player-*.log
. Use the RUST_LOG
environment variable to define the logging level, defaulting to spotify_player=INFO
.