Under Settings > Import List > Advanced List, there’s an option to provide a List URL for a Custom List. What format would that need to be in?
Under Settings > Import List > Advanced List, there’s an option to provide a List URL for a Custom List. What format would that need to be in?
A JSON array that looks like this:
[ {"MusicBrainzId": <id>}, {"MusicBrainzId": <id>}, {"MusicBrainzId": <id>} ... ]
I use it to fetch my Last.fm and ListenBrainz recommendations for example.
Thank you!
Sorry for the necro, but can you expand on how you pull in your ListenBrainz rec?
I have a custom import list that points to the following PHP script on a local webserver:
$API_PLAYLISTS = "https://api.listenbrainz.org/1/user/%s/playlists/createdfor"; $API_PLAYLIST = "https://api.listenbrainz.org/1/playlist/%s"; $EXT_PLAYLIST = "https://musicbrainz.org/doc/jspf#playlist"; $EXT_TRACK = "https://musicbrainz.org/doc/jspf#track"; $TMPL_PLAYLIST = "https://listenbrainz.org/playlist/%s"; $USERS = [ '<musicbrainz-username>' ]; $LISTS = [ "weekly-exploration", "weekly-jam" ]; try { $ids = []; foreach ($USERS as $user) { $lists = fetch(sprintf($API_PLAYLISTS, $user))?->playlists ?? []; foreach($lists as $list) { $meta = $list->playlist->extension->{$EXT_PLAYLIST}; $type = $meta->additional_metadata->algorithm_metadata->source_patch; if (!in_array($type, $LISTS)) continue; list($mbid) = sscanf($list->playlist->identifier, $TMPL_PLAYLIST); $songs = fetch(sprintf($API_PLAYLIST, $mbid))->playlist->track; foreach ($songs as $song) { $meta = $song->extension->{$EXT_TRACK}; foreach ($meta->additional_metadata->artists as $artist) { $ids[$artist->artist_mbid] = true; } } } } json(array_map(fn ($id) => ['MusicBrainzId' => $id], array_keys($ids))); } catch (Throwable $e) { http_response_code(500); json(['error' => $e->getMessage()]); } // -- Util -- function json($data) { header("Content-Type: application/json"); echo json_encode($data); } function fetch($url) { return json_decode(file_get_contents($url)); }
It fetches my “weekly exploration” and “weekly jam” playlists, extracts the artists and returns a list of artist IDs for Lidarr to import.
Thank you. Is there any chance you could share what the final output looks like?
Trying to get our own script working and it would be nice to compare to a known good output
It’s a JSON array like the one I posted in the beginning, so:
[{"MusicBrainzId":<artist1-id>},{"MusicBrainzId":<artist2-id>},...]
.deleted by creator
Ok, one last question, does this mean you are watching the entire artist? What I’m trying to do is watch a specific release/release group via the list, not the entire artist, and I can’t work out the format the custom list is expecting for that
Yep!