diff --git a/beetsplug/musicbrainz.py b/beetsplug/musicbrainz.py index ceb931179..e33cc4fce 100644 --- a/beetsplug/musicbrainz.py +++ b/beetsplug/musicbrainz.py @@ -771,6 +771,7 @@ class MusicBrainzPlugin(BeetsPlugin): ) -> dict[str, str]: criteria = { "release": album, + "alias": album, "tracks": str(len(items)), } | ({"arid": VARIOUS_ARTISTS_ID} if va_likely else {"artist": artist}) @@ -826,7 +827,7 @@ class MusicBrainzPlugin(BeetsPlugin): def item_candidates( self, item: Item, artist: str, title: str ) -> Iterator[beets.autotag.hooks.TrackInfo]: - criteria = {"artist": artist, "recording": title} + criteria = {"artist": artist, "recording": title, "alias": title} yield from filter( None, map(self.track_info, self._search_api("recording", criteria)) diff --git a/docs/changelog.rst b/docs/changelog.rst index 03a2a72ea..88b82e4da 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -37,6 +37,8 @@ Bug fixes: * Fix ``HiddenFileTest`` by using ``bytestring_path()``. * tests: Fix tests failing without ``langdetect`` (by making it required). :bug:`5797` +* :doc:`plugins/musicbrainz`: Fix the MusicBrainz search not taking into + account the album/recording aliases For packagers: diff --git a/test/plugins/test_musicbrainz.py b/test/plugins/test_musicbrainz.py index 100cfc498..aea05bc20 100644 --- a/test/plugins/test_musicbrainz.py +++ b/test/plugins/test_musicbrainz.py @@ -1025,6 +1025,7 @@ class TestMusicBrainzPlugin(PluginMixin): assert mb.get_album_criteria(items, "Artist ", " Album", va_likely) == { "release": " Album", + "alias": " Album", "tracks": str(len(items)), **expected_additional_criteria, }