MB release blacklist

I’m tagging my extensive J.S. Bach collection and frequently beets pulls in a huge Complete Bach Release
https://musicbrainz.org/release/d996abaa-ce14-45c7-944a-9c62adee19fe

I have standalone recordings that were aggregated into this release but I do not have the whole box. This release gets eventually eliminated, but it does take time.

What I’m looking for is a blacklist to ensure that beets does not consider this release, an opposite of --search-id. Does such a flag exists ? Or is there perhaps a trick that will accomplish the same ?

As an alternative, what would be the best spot to hard code exception in the source code ? I can manage basic python.

I don’t think we currently have such a thing. I think the place to “filter out” matches, if you want to get your hands dirty, would be the beets.autotag.hooks module, which is where data sources are all aggregated—so it might be possible to hack in a check for a given ID.

1 Like

Thanks, will try and report back.

It did not work for me in

beets.autotag.hooks.

This change is crude, but it works. Change made to autotag/mb.py

def album_for_id(releaseid):
“”“Fetches an album by its MusicBrainz ID and returns an AlbumInfo
object or None if the album is not found. May raise a
MusicBrainzAPIError.
“””
log.debug(u’Requesting MusicBrainz release {}’, releaseid)
albumid = _parse_id(releaseid)

# nadl40 start
if albumid == 'd996abaa-ce14-45c7-944a-9c62adee19fe':
    log.debug(u'---------------> nadl40 blacklist albumid {}', albumid)
    albumid = ""
# nadl40 end

if not albumid:
    log.debug(u'Invalid MBID ({0}).', releaseid)
    return
try:
    res = musicbrainzngs.get_release_by_id(albumid,
                                           RELEASE_INCLUDES)
except musicbrainzngs.ResponseError:
    log.debug(u'Album ID match failed.')
    return None
except musicbrainzngs.MusicBrainzError as exc:
    raise MusicBrainzAPIError(exc, u'get release by ID', albumid,
                              traceback.format_exc())
return album_info(res['release'])

Is there a chance to have a new option in config for the new release ?

1 Like

Great! It’s a pretty specialized thing, but if you have the bandwidth to turn it into a complete pull request, we can certainly at least consider adding it.

Not sure I understand. Just to open a ticket ? For a while I thought you were asking me to make a change
:slight_smile:

I could do that, in Classical world boxes are getting bigger and bigger and they do not contain much new material, its all repackaging so I can make a decent case. How do I open a ticket ?