In case you are a user of the extensible music server Mopidy and the Mopidy-Listenbrainz extension, I am excited to announce support for ListenBrainz playlists.
With current pull request, the extension exposes your “Weekly jams” and “Top discoveries of the year” playlists!
I’d be happy to have feedback. Let me know whether it works with your Mopidy setting.
How do you resolved tracks to the local collection? I’ve built some tools for this in Troi, so I am wondering if you’re using Troi?
I don’t know Troi, but I’ll have a look soon.
In Mopidy model, tracks have a musicbrainz_id attribute, see Data Model API and the library controller search method support searching by this attribute. So resolving tracks to the local collection is simply a matter of search, but it works if and only if users have tagged their local tracks with tooling supporting Musicbrainz metadata.
Hope it answers your question.
Also, once this is merge, please consider sending a PR to add a link here:
We now have datasets that can making looking up tracks in MB much easier, even if they were not tagged with MB! Check out this blog post for some more details:
Unfortunately, in our precise case, we’re given a musicbrainz track id (coming from a Listenbrainz recommendation playlist) and we’re wondering whether there’s a corresponding track in Mopidy’s library. That library is the union of the libraries controlled by extensions ; the data can be local or remote (for example the Spotify or the Bandcamp extensions). I don’t see how the clever tagging system described in the link could help…
Nonetheless very interesting and I’ll test it to tag my local library.
Ah, ok. For this situation exists another workflow:
Fetch the metadata (its included in the JSPF file!) if needed, so that you have the artist/release and track name.
Build an index of all available (to play) tracks, fetching their artist and track name.
Use the fuzzy index (super fast to build, even faster to query) to try and find local matches based on both MBIDs and metadata if the MBIDs do not resolve.
Troi does this for resolving playlists to a local collection – its essentially exactly the same workflow and it works quite well!
Here is the fuzzy index, but do take a look at the code in the content resolver directory, since other bits might be useful for you: