beetbox / beetbox/beets

mbsync doesn't handle merged albums

Open
#5,399 0 comments 0 reactions 0 assignees View on GitHub
mbsync
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

### Problem

I noticed I have different artist for VULTURES 1 and VULTURES 2, so I ran `mbsync` to try to fix this:

```sh
% beet -vv mbsync VULTURES
```

The output looks fine, but I was confused that nothing seemed to change:

```
...
Sending event: library_opened
Parsed query: AndQuery([AnyFieldQuery('VULTURES', ('artist', 'title', 'comments', 'album', 'albumartist', 'genre'), SubstringQuery), NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([AnyFieldQuery('VULTURES', ('album', 'albumartist', 'genre'), SubstringQuery)])
Parsed sort: NullSort()
Requesting MusicBrainz release 3e62072c-2c9d-45e7-815e-9746a72591e7
Sending event: mb_track_extract
...
Sending event: mb_album_extract
Sending event: albuminfo_received
mbsync: applying changes to Kanye West, Ty Dolla $ign - VULTURES 1
```
It turns out the release I used in the beginning has been merged into another release, which `mbsync` doesn't seem to notice.
Original url: https://beta.musicbrainz.org/release/3e62072c-2c9d-45e7-815e-9746a72591e7
New url: https://beta.musicbrainz.org/release/ac54ae52-6423-4835-952c-9a320d442f13

I don't know what the cleanest solution would be, but one approach could be checking if the url redirects and in that case update the ID to match the new page.

### Setup

* OS: Arch Linux
* Python version: 3.12.5
* beets version: 2.0.0
* Turning off plugins made problem go away (yes/no): didn't try

Contributor guide

Open the contributing guide

Research direction

Start with the mbsync command and reproduce the reported VULTURES case using the two MusicBrainz release URLs in the issue. Trace how the original release is resolved and how merged releases are handled; done means mbsync recognizes the merged release and applies the expected metadata update.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.