From 6b034da14772e7d224e1fd8d2646deb7524c5035 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0ar=C5=ABnas=20Nejus?= Date: Sun, 28 Sep 2025 23:55:04 +0100 Subject: [PATCH] musicbrainz: browse directly --- beetsplug/musicbrainz.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/beetsplug/musicbrainz.py b/beetsplug/musicbrainz.py index 2d3c95f43..018f2387c 100644 --- a/beetsplug/musicbrainz.py +++ b/beetsplug/musicbrainz.py @@ -118,8 +118,6 @@ BROWSE_INCLUDES = [ "recording-rels", "release-rels", ] -if "work-level-rels" in musicbrainzngs.VALID_BROWSE_INCLUDES["recording"]: - BROWSE_INCLUDES.append("work-level-rels") BROWSE_CHUNKSIZE = 100 BROWSE_MAXTRACKS = 500 @@ -144,6 +142,11 @@ class MusicBrainzAPI: def get_recording(self, id_: str) -> JSONDict: return self._get(f"recording/{id_}", inc=" ".join(TRACK_INCLUDES)) + def browse_recordings(self, **kwargs) -> list[JSONDict]: + kwargs.setdefault("limit", BROWSE_CHUNKSIZE) + kwargs.setdefault("inc", BROWSE_INCLUDES) + return self._get("recording", **kwargs)["recordings"] + @singledispatchmethod @classmethod def _group_relations(cls, data: Any) -> Any: @@ -594,12 +597,7 @@ class MusicBrainzPlugin(MetadataSourcePlugin): for i in range(0, ntracks, BROWSE_CHUNKSIZE): self._log.debug("Retrieving tracks starting at {}", i) recording_list.extend( - musicbrainzngs.browse_recordings( - release=release["id"], - limit=BROWSE_CHUNKSIZE, - includes=BROWSE_INCLUDES, - offset=i, - )["recording-list"] + self.api.browse_recordings(release=release["id"], offset=i) ) track_map = {r["id"]: r for r in recording_list} for medium in release["media"]: