Where to listen to music but better



Tags: software

Editted 12/12/25

I listen to a lot of music. Pretty much every moment while I work I have some sort of music on in the background. Thus, I've spent a lot of energy choosing the searching for the best music player.

There is an abundance of music players to pick from including alternate clients for spotify and general music players for local files.

Spotify

The quickest and most convenient option for most people would to be to use either the spotify desktop app or website. One thing to note is that spotify doesn't actively support the development of the official linux client and but let engineers to do in their free time.

Spotify also isn't a very ethical company, most recently the ceo investing 600 million into a german military software company that manufactures strike drones. Great to see where the spotify premium money is going.

If you do still insist on using Spotify, Spicetify lets you modify your spotify client to add extensions themes and more. Extensions include visualisers, ui tweaks and adblock to avoid paying for premium.

Alternatively, there are various open source spotify clients however that offer slightly different features.

NCSpot

ncspot is an ncurses Spotify client written in Rust using librespot.

What ncspot looks like

ncspot is a very simplistic alternate client that runs in the terminal. Compared to other options, its lacking in features but lets you do all of the essential functions of listening to music and searching. It's a good option if you want the least possible performance impact and aren't interested in discovery features or album art.

spotify-player

spotify_player is a much more featured spotify player than ncspot. Its got more decorated ui and has support for rending the album art.

what spotify_player looks like

Album art rendering

Despite the various alternative options, I still use the default desktop app, all other clients are lacking in terms of discovery tools for finding new music compared to the recommendations of the normal app.

Downloading music

There are various legal ways you can get music from online onto your device.

Bandcamp

Bandcamp is very lenient with letting users listen to music for free. For most albums on the platform, you can listen to them for free multiple times before needing to purchase. When you do purchase an album you get complete download access to multiple formats.

yt-dlp

yt-dlp is a command line tool that allows you to download audio and video from various online sources. It's pretty useful if you find a video online and aren't able to download it normally. You can paste the link to the content into yt-dlp and it will download it for you. It's quicker and way less sketchy than those youtube to mp3 websites.

To download just the audio of a youtube video you can use this command in the terminal for yt-dlp

yt-dlp -x -f bestaudio URL

The -x flag extracts it to audio and -f bestaudio makes it download only the audio format data.

You can also use yt-dlp -t mp3 URL to download as an mp3 file.

The arch wiki lists out some more useful yt-dlp commands.

Music players

With your downloaded music, you'll obviously need a program to play it. These are a few of the options that I've tried thus far.

Windows

Foobar2000 and musicbee seem to be the most popular choices for windows music players right now. Musicbee is fairly simple to set up and has a very customisable UI while I've found foobar is for more technical users. Personally I like musicbee given its relatively modern and simple to setup.

Linux/Macos Terminal clients

cmus

cmus was the first music player I got working. It's lightweight and simple to set up. It has all of the necessary features to play your music and not much more. I was pretty content with using this for a while before I found rmpc.

MPV

Not to be confused for mpd, mpv is an application for playing media files and works perfectly fine for audio files as well.

MPD Clients

MPD is a popular backend for playing music, primarily on linux systems though it may work on macos and windows. There are dozens of frontends available.

It takes a bit of time to set up an mpd configuration but not many options need to be enabled in order to get it into a functional state for just playing back local files on a single machine.

One of the biggest draws of using MPD to me is that MPD itself is a daemon which means that the backend for your music player is competely seperate from where you control it. This means you can close your client and the music will still play in the background, saving you from needing to keep another window open in the background.

For a mostly complete list of clients see MPD's website but I'll list the ones I like below.

It is possible to still track your listening activity using services like last.fm on many of these players including mpd. I use mpdscribble. Last.fm is used on my website's homepage to show what I'm playing.

RMPC

RMPC (Rusty Music Player Client) is my favourite MPD client right now. It looks greats, is more customisable than any other player I've used and is still getting developed and improved right now. It displays album art amazingly and lets you customise exactly how big you want it to be. See this video by bread on penguins.

NCMPCPP

The worst named piece of software I've ever seen. The title stands for NCurses Music Player Client Plus Plus, inspired by another mpd client called ncmpc. Development for this project is currently inactive but its a decent minimal client.

Wrap up

Right now my current setup consists of mpd with the rmpc client. My configuration can be found on github if you are interested.


Back to blogroll