beetbox / beets

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

In as-is imports, avoid inferring comp flag and "Various Artists" altogether #4072

Open friedrich-daniel opened 2 years ago

friedrich-daniel commented 2 years ago

Expected result

no modification of tags with 'autotag: no' while import

Observed result

Hint: It seems that a comp with albumartist is not a comp, but if no albumartist is set, a albumartist is set automatically which makes it indirectly with next import to a not comp.

Inconsistent behaviour.

Version

v1.5.0

Workaround

As workaround I call function align_album_level_fields in file beets/importer.py only if autotag is true

    def add(self, lib):
        """Add the items as an album to the library and remove replaced items.
        """
        if config['import']['autotag'] is True:
            self.align_album_level_fields()
        with lib.transaction():
            self.record_replaced(lib)
        ...

Configuration (output of beet config) is:

directory: ~/MusicNew
library: ~/.cache/beets/musiclibrary.db

import:
    move: no
    copy: yes
    write: no
    autotag: no
    duplicate_action: ask

clutter:

plugins: inline fetchart duplicates

replace:
    \.: ''
item_fields:
    disc_and_track: u'%02i.%02i' % (disc, track) if disctotal > 1 else u'%02i' % (track)

paths:
    default: $albumartist/$album%aunique{} ($year)/$disc_and_track $title
    comp: $genre/$album%aunique{} ($year)/$track $title
    singleton: Non-Album/$artist/$title
    albumtype:soundtrack: Soundtracks/$album%aunique{} ($year)/$track $title
    albumtype:Audiobook: Audiobook/$album%aunique{} ($year)/$track $title
fetchart:
    auto: yes
    cover_names: cover front back art
    sources: filesystem
    minwidth: 0
    maxwidth: 0
    quality: 0
    max_filesize: 0
    enforce_ratio: no
    cautious: no
    google_key: REDACTED
    google_engine: xxx
    fanarttv_key: REDACTED
    lastfm_key: REDACTED
    store_source: no
    high_resolution: no
duplicates:
    album: no
    checksum: ''
    copy: ''
    count: no
    delete: no
    format: ''
    full: no
    keys: []
    merge: no
    move: ''
    path: no
    tiebreak: {}
    strict: no
    tag: ''
pathfields: {}
album_fields: {}
friedrich-daniel commented 2 years ago

Which additional information are required?

sampsyo commented 2 years ago

I suppose the problem is that I don't exactly understand what's happening yet, given the description. Is there any way you could describe the problem at greater length, with more details? I'm not sure how to reproduce the behavior given these notes.

friedrich-daniel commented 2 years ago

In other words :) I have a music library where all tags are set original (from my point of view correctly). If i now import with beet the routine align_album_level_fields will modify the tags. As result the files will be moved in a folder structure which is according the 'modified' tags but not according the 'original' tags. But i like to move files in folder structure according original tags.

sampsyo commented 2 years ago

Got it. Seems like a reasonable change, although I have not thought through all the possible "collateral damage" for as-is imports. Marking as a feature request!

friedrich-daniel commented 2 years ago

In #4073 i have a possible solution for it - what do you think about?