Acousticbrainz for big libraries

I recently tried out the acousticbrainz plugin and it works kinda fine, but I have a big problem with it: making the necessary computations takes some time (a few seconds per track) and I have a pretty big library. Each time I launch the absubmit command he starts again at the top of my collection and I don’t have the luxury of letting my computer in his corner for a week or more so that he processes everything. Is there a way for beets to remember which ones have already been calculated and sent as there is for the acoustid plugin? I could try to do it by bits (all A artists, then all B ones, even if B alone will take a few days with bach, beethoven, brahms and what not) but I wonder if there is something more simple.

Good point—no; there’s not currently a way to do that. You could keep track of which ones have been analyzed by running beet modify analyzed=true [...] and then using a corresponding query to select tracks that have not been analyzed yet, but that would be a purely manual process. It would be a reasonable feature request, if you’d like to file one on GitHub, to make this a feature of the plugin.

I can do this with a bash loop or a find -exec command as a start, what would be the corresponding query?

I don’t have a specific design in mind. Good luck!

If I were you I’d probably look at the plugin, modify it so that it stores a value in the database (or in the tags?) (so that it remembers which tracks have been analyzed), and eventually make a pull-request on github.

1 Like

I will do that at some point, but I want to get my current ones merged before submitting new ones

I stumbled over this feature request, because I have the same need to process only files which have no acousticbrainz tags on my large lib.

:heavy_check_mark: /data/music/beets/beets [master|:heavy_check_mark:]
10:49 $ beet stats
Tracks: 33572
Total time: 15.9 weeks
Approximate total size: 458.0 GiB
Artists: 2627
Albums: 3012
Album artists: 1511

I guess I can spent some time to implement based on 8h2a idea, but I’m curious if somebody has already started with this.

Will make some try with this:

1 Like