A foobar2000 component to submit the music you listened to to ListenBrainz or another ListenBrainz compatible scrobble server (for example Maloja).
This component was originally written by marc2k3. This repository is an attempt to preserve the source code of this excellent component and hopefully to revive the development.
Windows 7 and foobar2000 v1.5 or later. This component is compatible with foobar2000 v2.0, both 32 and 64 bit.
Download the component archive (.fb2k-component) from the release page. Follow the instructions How to install a component in the Foobar2000 Wiki.
ListenBrainz keeps track of music you listen to and provides you with insights into your listening habits. For details see:
There is already a component with the original name here: foo_listenbrainz
In contrast to the above version foo_listenbrainz2 does not block the main thread and does not freeze the UI when submitting. Also, this version submits artist/recording MBIDs if present in your files. This makes artist/title links on your recent listens page clickable and will lead you to the respective pages on musicbrainz.org
Enter your ListenBrainz token and check the other options under File > Preferences > Tools > ListenBrainz 2.
By default the component submits to the ListenBrainz server using the endpoint https://api.listenbrainz.org/1/submit-listens.
If you use another ListenBrainz compatible server, also adjust the URL and use a token provided by your server. Make sure to append /submit-listens to the standard API URL of your server. Otherwise you will get 500 response errors. For Maloja servers the API URL is in the form of https://{hostname}/apis/listenbrainz/1/submit-listens.
Now just listen to your music and watch the Console for server responses and/or check your recent listens page.
For convenience, submissions can be enabled/disabled via the main Playback menu. This option is only available after your token has been set. You can also configure a filter for tracks to never be submitted.
The following conditions must be met for a track to be submitted:
- The track must be at least 5 seconds long. Anything shorter or unknown will be ignored.
- Like Last.fm, you must listen to at least half the track or 4 minutes - whichever comes first.
- The submission must be enabled when the track begins AND at the time of submission during playback.
- The track must contain
ARTISTandTITLEtags as a bare minimum. Any tracks without them are silently ignored.
These additional tags are sent if present:
ALBUM ARTISTALBUMDATETRACKNUMBERTOTALTRACKSDISCNUMBERTOTALDISCSISRCMUSICBRAINZ_ARTISTID / MUSICBRAINZ ARTIST IDMUSICBRAINZ_TRACKID / MUSICBRAINZ TRACK IDMUSICBRAINZ_ALBUMID / MUSICBRAINZ ALBUM IDMUSICBRAINZ_RELEASEGROUPID / MUSICBRAINZ RELEASE GROUP IDMUSICBRAINZ_RELEASETRACKID / MUSICBRAINZ RELEASE TRACK IDMUSICBRAINZ_WORKID / MUSICBRAINZ WORK ID- The track's duration in milliseconds
Note that foobar2000 does not support reading track id (recording) tags that are written to MP3s as UFID by MusicBrainz Picard.
By default details about the media player ("foobar2000" and version) and the submission client ("foo_listenbrainz2" and component version) will be submitted as well. If you dislike this behavior you can disable it in the preferences.
- For artist/work MBIDs, all values are sent.
- By default, only the first value of any multi-value
ARTISTtag is sent. This can be changed in the preferences so all values are sent as a comma separated string. Before this option was added inv1.1.3, only the first value was sent. - For all other tags, only the first value is sent.
This happens automatically so you don't need to do anything to trigger it. If you're offline or ListenBrainz is down, the Console will report each time a listen is cached and the next time you submit a successful listen, an attempt will be made to submit all cached entries.
- Currently there is no support for streams or tracks of an unknown length.
- foobar2000 does not support reading track id (recording) tags that are written to MP3s as
UFIDby MusicBrainz Picard.
foo_listenbrainz2 is published under the MIT license. See LICENSE.txt for details.
