Last Updated on February 21, 2023
First launched in 2008, Spotify is a digital music streaming service with a freemium business model. You can listen to a huge library of music and podcasts for no charge if you are prepared to have shuffle play (with limited skips), interrupted listening and lower audio bitrate. Alternatively, there’s the option of Spotify Premium. In the UK, a subscription costs £9.99 per month for an Individual account. This gives you streaming music at 320 kbps, the ability to download music, and full functionality.
Spotify provide a semi-official app for the service. But third-party clients are available for Spotify Premium users. Spotify blocks API access to their audio for non-premium members.
spotify-player is a command-line Spotify client that’s written in Rust. It uses the librespot library to make an integrated Spotify client. The software is published under an open source license. Like other third-party clients, you’ll need a Spotify premium subscription to use it.
There is a package available in the AUR (for Arch and Arch-based distros) but it doesn’t compile in useful optional extras like cover art and lyrics. We therefore took the manual approach by cloning the project’s repository:
$ git clone https://github.com/aome510/spotify-player
Change into the newly created directory:
$ cd spotify-player
Let’s compile the code with the extras we want: cover art and lyrics.
$ cargo install --features lyric-finder --features image spotify_player
Make sure you add ~/.cargo/bin to your PATH. With the bash shell, add the following line to .bashrc:
Exit the shell or use the source command as usual.
On first run, you are prompted to enter your Spotify account name and password.
spotify-player uses a file named app.toml to configure general application settings. There are bound to be a few configuration changes you’d like. For example, the software defaults to a volume level of 50. We prefer a higher setting. Copy the app.toml file from the examples directory of the project’s GitHub repository to ~/.config/spotify-player/. Change the line
volume = 50 to something more sensible such as
volume = 90.
The Configuration Documentation explains other settings you can change in app.toml. See the Summary section for the link. The documentation explains how to change things like keyboard shortcuts too.