beetbox / beets

music library manager and MusicBrainz tagger
http://beets.io/
MIT License
12.57k stars 1.8k forks source link

`beet write` continuously writes mb_artistid and mb_albumartistid (1.7.0_pre20240501) #5265

Open MorgothSauron opened 1 month ago

MorgothSauron commented 1 month ago

When I execute the beet write command it will try to write mb_artistid and mb_albumartistid tags every single time the program is executed.

It appeared when version 1.7.0_pre20240501 was installed on my Gentoo system. I got this version because I configured portage, the package manager, to install the "unstable" version (media-sound/beets ~amd64).

Previous version was 1.6.0 and it didn't show this behavior.

I will probably downgrade to 1.6.0, but I wanted to submit this bug in case there is something specific with the 1.7.0 version.

Problem

Running this command in verbose (-vv) mode:

$ beet -vv write album:"For All Kings"

Led to this problem:

$ beet -vv write album:"For All Kings" 
overlaying configuration: /home/mcarpentier/Music/.beets/config.yaml
no user configuration found at /home/mcarpentier/.config/beets/config.yaml
data directory: /home/mcarpentier/.config/beets
plugin paths: 
lyrics: Disabling google source: no API key configured.
fetchart: google: Disabling art source due to missing key
fetchart: lastfm: Disabling art source due to missing key
Sending event: pluginload
library database: /home/mcarpentier/Music/.beets/BeetMusicLibrary.blb
library directory: /home/mcarpentier/Music
Sending event: library_opened
Parsed query: AndQuery([SubstringQuery('album', 'For All Kings', fast=True)])
Parsed sort: NullSort()
Anthrax - For All Kings - Impaled
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - You Gotta Believe
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - Monster at the End
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - For All Kings
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - Breathing Lightning
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - Breathing Out
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - Suzerain
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - Evil Twin
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - Blood Eagle Wings
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - Defend Avenge
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - All of Them Thieves
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - This Battle Chose Us
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Anthrax - For All Kings - Zero Tolerance
  mb_artistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
  mb_albumartistid:  -> b616d6f0-ec1f-4c69-8a79-12a97ece7372
Sending event: write
Sending event: after_write
Sending event: database_change
Sending event: cli_exit

I filtered on a specific album because I don't want tags to be overwritten on the whole library. I only have FLAC file in my library.

It will repeat every time I run the write command.

The files are modified according to the "stat" output (Modify matches when I ran the beet write command).

$ stat 01\ Impaled.flac 
  File: 01 Impaled.flac
  Size: 11241570    Blocks: 21960      IO Block: 4096   regular file
Device: 0,36    Inode: 13139015    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/mcarpentier)   Gid: ( 1000/mcarpentier)
Access: 2022-10-23 19:39:04.298317103 +0200
Modify: 2024-05-27 18:56:38.947141933 +0200
Change: 2024-05-27 18:56:38.947141933 +0200
 Birth: 2022-10-23 19:39:04.298317103 +0200

Same thing happens if I disable plugins (beet -vv --plugins= write album:"For All Kings")

The files are changed because they will be included in the next backup.

Setup

My configuration (output of beet config) is:

lyrics:
    bing_lang_from: []
    auto: yes
    force: yes
    fallback: ''
    bing_client_secret: REDACTED
    bing_lang_to:
    google_API_key: REDACTED
    google_engine_ID: REDACTED
    genius_api_key: REDACTED
    local: no
    synced: no
    sources:
    - google
    - genius
    - tekstowo
    - lrclib
    dist_thresh: 0.1
# --------------- Main ---------------

library: /home/mcarpentier/Music/.beets/BeetMusicLibrary.blb
directory: /home/mcarpentier/Music

ui:
    color: yes
    colors:
        text_success: green
        text_warning: yellow
        text_error: red
        text_highlight: red
        text_highlight_minor: lightgray
        action_default: turquoise
        action: blue

import:
    copy: no
    write: yes
    move: yes

# --------------- Plugins ---------------

plugins: embedart fetchart info lyrics edit
embedart:
    auto: yes
    maxwidth: 0
    compare_threshold: 0
    ifempty: no
    remove_art_file: no
    quality: 0
paths:
    default: $albumartist/$album%aunique{}/$track $title
    singleton: Non-Album/$artist/$title
    comp: Compilations/$album%aunique{}/$track $title
fetchart:
    auto: yes
    minwidth: 0
    maxwidth: 0
    quality: 0
    max_filesize: 0
    enforce_ratio: no
    cautious: no
    cover_names:
    - cover
    - front
    - art
    - album
    - folder
    sources:
    - filesystem
    - coverart
    - itunes
    - amazon
    - albumart
    - cover_art_url
    store_source: no
    high_resolution: no
    deinterlace: no
    cover_format:
    google_key: REDACTED
    google_engine: 001442825323518660753:hrh5ch1gjzm
    fanarttv_key: REDACTED
    lastfm_key: REDACTED
edit:
    albumfields: album albumartist
    itemfields: track title artist album
    ignore_fields: id path
presentday-presenttime commented 1 week ago

I am also having this issue on version 2.0.0 same issue as: #5043