Picard plugin for manually submitting listens to ListenBrainz

For a while, I’ve been working on a way in Python to submit listens to ListenBrainz. If you’ve arrived from last.fm, you might’ve heard of Open Scrobbler/OpenWebScrobbler, which does the same thing for that service. I used it a lot as Deezer’s last.fm implementation was not great at the time. I basically wanted to do the same but for ListenBrainz, and I decided on making it a plugin for Picard.

For those uninitiated, there may be a reason you want to submit listens manually. Maybe you’re listening on a device that doesn’t support submitting listens (e.g. vinyl turntable, car system, a smartphone running an app that doesn’t support/isn’t supported by ListenBrainz), or you prefer to submit your listens manually for whatever reason.

As long as you have a timestamp from when you started listening (or you had just finished listening), you can submit your listens manually by release or individual recordings via this plugin.

Right now the only limitation is that releases containing recordings that don’t have a timestamp aren’t handled well mathematically (i.e. it will submit as if you’d just listened to all the tracks at the same time). It’s basically untested with macOS since I don’t have a Mac at my disposal It has been tested and working on macOS Ventura by wonder_al, and has been tested on Fedora Linux 37 and Windows 11 by myself.

Do let me know if there are issues (especially you Mac users)! I’m aware that ListenBrainz will have this feature in the future, but I figured - why not share this beforehand?


Thanks so much! I don’t know if I’ll ever precisely track my cassette and vinyl listens, but I’m definitely going to add everything I listen to at least once :heart_eyes:

Here’s a screenshot if anyone’s interested, nice and simple:


Just tried it on macOS Ventura, works perfectly. :+1:

1 Like

Came here to ask if there was a way of manually entering listens (like Universal Scobbler) and found this - thanks so much - going to give it a go!


This screenshot was also very helpful. Cheers! (I’m so happy)


just installed and it works, groovy!