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
ARTIST
andTITLE
tags as a bare minimum. Any tracks without them are silently ignored.
These additional tags are sent if present:
ALBUM ARTIST
ALBUM
DATE
TRACKNUMBER
TOTALTRACKS
DISCNUMBER
TOTALDISCS
ISRC
MUSICBRAINZ_ARTISTID / MUSICBRAINZ ARTIST ID
MUSICBRAINZ_TRACKID / MUSICBRAINZ TRACK ID
MUSICBRAINZ_ALBUMID / MUSICBRAINZ ALBUM ID
MUSICBRAINZ_RELEASEGROUPID / MUSICBRAINZ RELEASE GROUP ID
MUSICBRAINZ_RELEASETRACKID / MUSICBRAINZ RELEASE TRACK ID
MUSICBRAINZ_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
ARTIST
tag 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
UFID
by MusicBrainz Picard.
foo_listenbrainz2 is published under the MIT license. See LICENSE.txt for details.