beets icon indicating copy to clipboard operation
beets copied to clipboard

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

Open friedrich-daniel opened this issue 4 years ago • 5 comments

Expected result

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

Observed result

  • import behaviour 1 if comp is TRUE and albumartist is set beet import modifies 'comp: True -> False'

  • import behaviour 2 if comp is TRUE and albumartist is not set beet import modifies 'albumartist: -> Various Artists'

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 avatar Sep 25 '21 13:09 friedrich-daniel

Which additional information are required?

friedrich-daniel avatar Sep 26 '21 15:09 friedrich-daniel

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.

sampsyo avatar Sep 27 '21 02:09 sampsyo

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.

friedrich-daniel avatar Sep 29 '21 17:09 friedrich-daniel

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!

sampsyo avatar Sep 30 '21 21:09 sampsyo

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

friedrich-daniel avatar Oct 01 '21 14:10 friedrich-daniel