Respect existing tags on import but run plugins

I want beets to:

  • respect my file’s existing tags,
  • move and organize them based on those tags and
  • run the fetchart, embedart and extrafiles plugins.

My config file is below.

When I set “autotag: no” beets organizes my files based on the existing tags, but doesn’t run the plugins (to the best of my knowledge).

When I set “autotag: yes” beets organizes my files based on the new tags, not the existing ones, but processes the art and moves the extra files as expected.

Am I missing something obvious or is there a config.yaml or bash shell workaround to achieve this? Thanks!

config.yaml
directory: /volume1/Media/Beets/TEST/Lossless
library: /volume1/Media/Beets/musiclibrary-TEST.db
art_filename: %if{$albumartist,$albumartist,$artist} - $album

import:
write: no
copy: yes
autotag: yes
group_albums: yes #Use tags to group albums.

paths:
default: $albumartist/$album%aunique{}/%if{$disc,$disc-}$track $title

plugins:
fetchart
embedart
info

fetchart:
cover_names: cover front folder
minwidth: 300
maxwidth: 1500
sources: google
google_key: *****
google_engine: *****

embedart:
ifempty: yes

No, I don’t think you’re missing anything—that is indeed how it works! If you want autotag: no, you might consider running those plugins separately. Most (all?) such plugins have a command you can run after importing, such as beet fetchart.

Thanks for your help Adrian!

Looks like beets-extrafiles is one plugin that can’t run from the command line…I was hoping to avoid manually moving Artwork directories.

So, import has nothing like zero’s keep_fields whitelist?

PS: Would it be possible to reject all matches and accept the tags asis?
Something like this:


autotag: yes
match:
strong_rec_thresh: 1.0
default_action: asis


I also see this has a selectivetagging function. I’ll try to get that to work.