Persistent keep-as-is flag?

Beets and I are chewing through a sizable heap of very miscellaneous mp3s, and I’m impressed by how few things I’m encountering that I can’t coax beets into doing the way I want… but there are a couple. For those rare cases, I assume the obvious thing to do is to skip them for now, tag them exactly the way I want using Picard or Puddletag, then hit “Use as is” when importing them to beets.

The problem is: what if I later make a change to my schema and need to do a re-import to apply it? I don’t want to have to remember the cases where I wanted beets to leave the romanized track titles (for example) and get prompted for each one and have to hit “Use as is” over and over when I already made the decision when I imported them the first time…

So, is there any mechanism to flag an album or track (or better yet, particular fields of an album or track) as “hey beets, just trust me on this and don’t ever ask again”?

Hmm, that’s a good question. There’s not a perfect built-in way to do exactly what you’re asking, but here are a few scattered thoughts:

  • What do you mean by “a change to my schema”? If you just mean how your filenames are generated, i.e., your paths: configuration, then you can use beet move to avoid a full re-import.
  • You might be able to identify the things that have been imported as-is by looking for empty MBIDs: for example, beet ls -af mb_albumid::^$. Or perhaps for an empty data_source field, which could be even more reliable. Then you could consider using that query (or its inverse) to re-import the beets-tagged and non-tagged albums separately.
  • Instead of using “as-is” and then using another tool to change the tags, you might take a look at the edit plugin.