Skip to main content


Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: ListenBrainz-SMP (Read 671 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.


An implementation of ListenBrainz for foobar2000 using Spider Monkey Panel, which allows to retrieve/set feedback for tracks within foobar2000 library and create playlists based on user or site-wide recommendations statistics.

  • Love/Hate tracks. Or clear any feedback set.
  • Find loved/hated tracks from server on library. (*)
  • Create playlist fron Top Listens, either by user or site-wide. (*)
  • Create playlist based on user's recommedations: 'Top artist', 'Similar artist', 'Raw recommendations'.(*)
  • Non-found tracks on library can be replaced with YouTube links (requires foo_youtube).
  • Requires an user token.

(*) Involves content resolution by Artist, Title or Recording MBID. Displays found matches.

To send listens on playback
Listens syncing is not managed by this script. It's recommended to use foo_listenbrainz2.

Compatible with (toolbar)
  • Search-by-Distance-SMP: creates intelligent "spotify-like" playlist using high-level data from tracks and computing their similarity using genres/styles.
  • Playlist-Tools-SMP: Offers different pre-defefined examples for intelligent playlist creation.
  • Device-Priority-SMP: Automatic output device selection.

See _TIPS and INSTALLATION (txt) and the Wiki. Not properly following the installation instructions will result in scripts not working as intended. Please don't report errors before checking this.

Download latest release (or nightly releases) at github:

Re: ListenBrainz-SMP

Reply #1

[1.0.0-beta.10] - 2023-06-27

    Feedback: love/hate feedback can now be saved as tags (in addition to the online syncing). Tag is configurable; 'FEEDBACK' by default.
    Playlists Recommendations: added Playlists recommendations for the user associated to the token (found at[USERNAME]/recommendations/). For ex. Daily Jams, Top Discoveries of [YEAR], Top Missed Recordings of [YEAR], ... Automatically refreshed every 30 min or after clicking on the button (list is refreshed the next time the menu is opened).
    Playlists Recommendations: daily jams are automatically enabled when the user sets the token, token is retrieved from other panels or by using a new menu entry at Playlists recommendations submenu. It's done by following 'troi-bot' user. Must only be done once. This playlist is just a mix of music already listened to.
    Playlists Recommendations: added setting to only find matches by MBID. Greatly speedups the process of searching matches in library.
    Similar users: recommendations by similar users. A mix from the ones available at 'User recommendations' is chosen for a random similar user. Meant to discover similar music to the one you like.
    Track Recommendations: added entries to find similar artists or recordings to the focused track's artist. Also by multiple tags and folksonomy. Tracks output are preferred by higher rating and not live tracks (if possible). Delete '[foobar_profile]\js_data\presets\global\globQuery.json' and '[foobar_profile]\foobar2000\js_data\presets\global\globTags.json' files after installation.
    Track Recommendations: supports -full- tag retrieval from WilB's Biography script. i.e. genres, styles, locale tags, etc. are added to the file tags on the submenus as available values. Bio tags state is displayed at tooltip, warning when tags are not found (usually requires some seconds).
    Track Recommendations: supports 'locale' tag retrieval from World-Map-SMP, independently of Bio panel. i.e. it looks at the local database for matches by artist (so it works even for artists not found by Bio panel, multi-value artists tags and artists manually tagged by user on the panel). Bio and World Map tag retrieval can coexist, duplicates are removed in any case.
    Track Recommendations: supports 'LASTFM_SIMILAR_ARTIST' tag retrieval from foo_uie_biography, independently of Bio panel. Bio and foo_uie_biography tag retrieval can coexist, duplicates are removed in any case.
    Track Recommendations: supports 'SIMILAR ARTISTS SEARCHBYDISTANCE' tag retrieval from Search by Distance-SMP, independently of Bio panel. Duplicates are removed in any case when merged with other similar artists tags. This tag must be pre-calculated, since it's retrieved from files or database, and its based on similar artists from your library (instead of charts/popularity/other people's listening habits).
    Forced query: added forced query to pre-filter library for all lookups. Greatly speedups the process of searching matches in library.


    YouTube: YouTube searches are now cached (during the same session). i.e. matches are found much faster for tracks already searched.
    YouTube: YouTube searches now have 'MUSICBRAINZ_TRACKID', 'MUSICBRAINZ_ALBUMARTISTID', and 'MUSICBRAINZ_ARTISTID' tags if available.
    Feedback: report will also compare online values against the file tags (if available) and show total number of loved, hated and mismatched tracks.
    Feedback: retrieving loved/hated tracks from library will also output library tagged tracks (if available), without duplicates by MBID.
    Feedback: menu entries will be disabled when selection count is higher than the API recommendations.
    Feedback: in case sending feedback to server fails (usually due to rate limits), connection will be retried once a few ms later. Any error will be reported via console/popups.
    Feedback: only updates tracks on server if the current feedback differs, this way the timestamp does not get changed.
    Feedback: improvements when handling tracks without MBIDs.
    Feedback: when network is not available, feedback will be cached and send later -every 10 min- during the same session or on future sessions.
    Playlists: matches on library -for playlist creation- are now preferred by higher rating and not live tracks (if possible).
    Playlists: optimizations finding tracks on library.
    Playlists: standardized playlists names, similar to playlist created by
    Remove duplicates: when removing duplicates, tracks left for comparison are now preferred by default higher rating and not live tracks. Delete '[foobar_profile]\js_data\presets\global\globQuery.json' and '[foobar_profile]\foobar2000\js_data\presets\global\globTags.json' files after installation.
    ListenBrainz: key for the token is cached during the same session.
    ListenBrainz: user name is cached during same session.
    ListenBrainz: updated getFeedback method (with POST), without limits on data size.
    UI: all reports are now formatted as tabulated tables, making them easier to read.
    UI: tooltip now reports if user playlists recommendations are available and feedback for the selected track.
    UI: button is now animated during all asynchronous tasks (including daily jams retrieval).


    Feedback: retrieval of tracks with feedback on server was incomplete due to API limits of number of items get per request. Now requests are paginated, untill all results are get.
    ListenBrainz: Lookup for missing MBIDs setting was not honored (always active).
    YouTube: rare errors parsing some titles/artists on YouTube.
    UI: tooltip flickering while pressing Shift/Ctrl over a button in icon-only mode.

Re: ListenBrainz-SMP

Reply #3
This was requested some time ago.
Next version will have customizable tag remap for the 'track recommendations' submenu (in fact the entire entry list is customizable), along a new recommendation mode.

Re: ListenBrainz-SMP

Reply #4
[1.1.0] - 2023-10-05

    Track Recommendations: tag remapping is now available (configuration) along customizable entries (advanced configuration) for 'Tracks recommendations'.
    Track Recommendations: new submenu at 'Tracks recommendations to get popular tracks by the chosen similar artist, like the one found at tools.


    Configuration: expanded user configurable files at '[FOOBAR PROFILE FOLDER]\js_data\presets\global' with new queries. File will be automatically updated with new values (maintaining the user settings).
    Configuration: improved the user configurable files update check for missing keys.


Re: ListenBrainz-SMP

Reply #5
v1.2.0 - Auto-update + toolbar customization

## [1.2.0] - 2023-11-15
### Added
- Auto-update: added -optional- automatic checks for updates on script load; enabled by default. Compares version of current file against GitHub repository. Manual checking can also be found at the settings menu. For buttons within the toolbar every button will check for updates independently (although the toolbar menu has an entry for batch checking). Setting may also be globally switched at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json', by changing 'bAutoUpdateCheck'. It will apply by default to any new installed script (previous scripts will still need to be manually configured to change them).
- Buttons bar: added some safe-checks to panel properties.
- Buttons bar: added custom button hover color and customization.
- Buttons bar: added custom offset for buttons along X/Y axis.
- Buttons bar: added full size mode for buttons, which will use full Width/Height according to Y/X orientation.
- Added setting to disable popups related to features not being supported by the OS (at startup). Found at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json', by changing 'bPopupOnCheckSOFeatures'. By default popups are always shown. This setting will never be exposed within foobar, only at this file.
### Changed
- Configuration: improved user retrieval on mouse over button, limited to run once per 2500 ms.
- UI: toolbar's color menu entries now show the color name along the menu entry. 'none' equals to no color.
- Buttons bar: renamed background buttons to 'Use themed buttons', which depends on the windows theme.
- Helpers: updated helpers.
### Removed
- Configuration: unnecessary logging on mouse over button if no user was provided.
### Fixed
- Feedback: minor fix to cache reports when an upload throws an error.
- Crash without lastfm tools button also loaded.

Spoiler (click to show/hide)