From 93c8950bf40dc40278e3c2aa4cbffd9cb2aab591 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Thu, 2 Oct 2025 08:24:01 -0400 Subject: [PATCH] =?UTF-8?q?Extends=20the=20importer=E2=80=99s=20=E2=80=9Cf?= =?UTF-8?q?resh=20on=20reimport=E2=80=9D=20lists=20so=20album=20flex=20met?= =?UTF-8?q?adata=20from=20new=20releases=20replaces=20stale=20values?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- beetsplug/musicbrainz.py | 23 ++++++++++++++++++++++- docs/changelog.rst | 2 ++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/beetsplug/musicbrainz.py b/beetsplug/musicbrainz.py index 8e259e94b..772972c07 100644 --- a/beetsplug/musicbrainz.py +++ b/beetsplug/musicbrainz.py @@ -29,7 +29,7 @@ from confuse.exceptions import NotFoundError import beets import beets.autotag.hooks -from beets import config, plugins, util +from beets import config, importer, plugins, util from beets.metadata_plugins import MetadataSourcePlugin from beets.util.id_extractors import extract_release_id @@ -55,6 +55,26 @@ FIELDS_TO_MB_KEYS = { "year": "date", } +_MB_REIMPORT_FRESH_FIELDS_ALBUM = [ + "media", + "releasegroup_id", + "data_url", +] +_MB_REIMPORT_FRESH_FIELDS_ITEM = [ + "data_url", +] + + +def _extend_reimport_fresh_fields() -> None: + """Ensure MusicBrainz fields stored as flex attrs refresh on reimport.""" + for field in _MB_REIMPORT_FRESH_FIELDS_ALBUM: + if field not in importer.REIMPORT_FRESH_FIELDS_ALBUM: + importer.REIMPORT_FRESH_FIELDS_ALBUM.append(field) + for field in _MB_REIMPORT_FRESH_FIELDS_ITEM: + if field not in importer.REIMPORT_FRESH_FIELDS_ITEM: + importer.REIMPORT_FRESH_FIELDS_ITEM.append(field) + + musicbrainzngs.set_useragent("beets", beets.__version__, "https://beets.io/") @@ -367,6 +387,7 @@ class MusicBrainzPlugin(MetadataSourcePlugin): from the beets configuration. This should be called at startup. """ super().__init__() + _extend_reimport_fresh_fields() self.config.add( { "host": "musicbrainz.org", diff --git a/docs/changelog.rst b/docs/changelog.rst index e74f0caa2..74093596e 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -19,6 +19,8 @@ New features: Bug fixes: +- :doc:`plugins/musicbrainz` Refresh flexible MusicBrainz metadata on reimport + so format changes are applied. :bug:`6036` - :doc:`plugins/spotify` Ensure ``spotifysync`` keeps popularity, ISRC, and related fields current even when audio features requests fail. :bug:`6061` - :doc:`plugins/spotify` Fixed an issue where track matching and lookups could