Cmus and Scrobbling

I recently made the switch to cmus for playing my music collection and have been very happy with it. It is quite fast and uses hardly any resources, but one of the first things I needed to accomplish was being able to scrobble my music to

I was a long time user of, but I feel it has become too much of a monster (and a dying one at that), and this prompted me to switch to I really only scrobble my music so I can go back later and see my listening habits, however, I also like being able to share that history with others.

Cmus allows you to scrobble your music using status display programs. I initially tried a few listed on their website, but I was unable to get any of them working. I tried again and eventually got CmuScrobbler working with perfectly.

CmuScrobbler is written in Python and supports scrobbling to and It is currently unmaintained, but in its current state, it does work fine. It even cached all of my listens during the recent outage and scrobbled everything when the site came back up. It requires just a little configuration to get it up and running, but it takes no time at all.

The first thing you’ll want to do is head over to the GitHub page for CmuScrobbler and download Open it up in your favorite text editor and make the appropriate changes at the beginning of the file. If you are using like me, you’ll want to comment out the lines for and uncomment the lines for You should have something like the following:

{ 'username':      'USERNAME',
  'password':      '5f4dcc3b5aa765d61d8327deb882cf99',
  'cachefile':     '/home/user/.cmus/cachefile',
  'scrobbler_url': '',
  'pidfile':       '/home/user/.cmus/pidfile',

Your password will not be entered in plain-text, Instead, you will need to enter a hashed version of it. There are instructions on how to do this below the configuration in You will need to open up a terminal and launch Python. Then enter the following two lines:

>>> from hashlib import md5
>>> md5('password').hexdigest()

You should get a hashed version of your password. Copy this over to the password line in

Looking at the INSTALL guide in GitHub, you will also see you will need an additional Python library to get things working. The author says you need a patched version of the Python library scrobbler until his patches get accepted upstream. I have no idea if they ever were, so I went ahead and decided to just install his patched version. If you are on Debian/Ubuntu, you might need the python-setuptools package, but you can install it using the following:

sudo easy_install

I moved into the .cmus directory in my home folder, but you can really move it anywhere you prefer. You will need to make the program executable:

chmod a+x

Then in cmus, set it to be the status display program:

:set status_display_program=/path/to/

If you configured everything correctly, you should now be scrobbling to the service of your choice! Feel free to reach out to me if you come across any issues.