A way to query whether items have been tagged by beets?

I went the fast way and imported my collection without any tagging, planing to come back and incrementally tag it using beet import -L.

As I probably won’t be able to tag it all in one session, is there some way to query items that haven’t been tagged by beets (probably by an inverted query) so I don’t have to skip through the ones I already processed?

I thought of doing this process by artist first letter (beet import -L albumartist::^[aA],etc), or by the ones that don’t have MB IDs (`beet import -L mb_albumid::^$) but that’s not very robust.

I suppose I could also use noimport but that would mean keeping track of what I have tagged somewhere else. Appreciate any ideas here!

Just came across data_source while exploring beet fields. Is it safe to assume that untouched files will match data_source::^$?

Yes, that’s the idea.

1 Like

great, thanks!

Related question: beet list -f $path data_source::^$ prints empty strings for me, although the query without formatting works fine. What could be going wrong here? Other queries with this particular formatting also return empty.

Relatedly, beet info -l -i 'path' artist:Lee Marrow prints all item fields, whereas beet info -l -i 'title' artist:Lee Marrow just prints titles as expected.

You may want to put quotes in -f '$path'. Otherwise, your shell is probably substituting that for an empty string. (Try typing echo $path, for instance, for a glimpse at what your shell is seeing.)

Bullseye. unset $path did the trick, thanks again!

aaaand it’s back, and unset no longer works. Is this something beets is doing or bash itself? Any ideas for a permanent fix? echo $album also returns an empty string, for instance…

How about the single quotes I mentioned above?