As mentioned here I’ve (somewhat) recently moved to using CMUS instead of Rythmbox. Ever since my iPod died completely I’d been relying on a desktop player and offline scrobbling; since I am most likely to listen to music at work, but can’t scrobble because our proxy server blocks it. Rhythmbox supports offline scrobbling (hurray!), but is a bit crap about it (boo!): For unknown reasons it doesn’t log all tracks and - although it did successfully scrobble them to Last.fm when back on line - when I decided I’d move to Libre.fm (but then reconsidered and kept my last.fm account as well) it was even crappier at scrobbling, logging a different number of tracks for each service and then losing all tracks for Libre.fm during submission!

I’d checked (before getting carried away with the geek attractiveness of it) and CMUS supported scrobbling via a few external plugins/scripts and a couple of them also provided offline support. The only one I could get working, however, was Post.FM. Well, I say working, but I’d declared it as working after a quick online test. After a week’s offline scrobbling, and months of scrobbling downtime (I always think of these things such as moving from Rhythmbox to CMUS and Last.fm to Libre.fm as little weekend tasks, but they always take me MUCH longer), I was full of anticipation for getting going with scrobbling again; however, for whatever reason, it wouldn’t scrobble with a big backlog of offline scrobbles. I almost just gave up, but then I figured I’d try to get my head around Perl enough to convert the Post.FM cache to a format that I could use another programme or service to scrobble with, such as the libreimport.py tool.

And that is kind of where I am today:

  1. Using Post.FM (unmodified until I figure out Perl more) to cache offline scrobbles.
  2. Using a complementary Perl script (work in progress) to convert the Perl Storable cache format to a scrobble.log format.
  3. Submit scrobbles to Last.fm and Libre.fm via Scroblr.net (for the time being. I’d prefer to use a command line tool, but Scroblr is quick and painless so I’m in no rush; my initial plan was to use libreimport.py and forward scrobbles to Last.fm from Libre.fm, but it didn’t work out right and I hit this bug with multiple scrobbles appearing on Last.fm; hence going and finding Scroblr.net).