IDK if I’d recommend this to others, but I don’t trust unsupervised metadata lookup (I’m anal like that), so I lookup metadata with musicbrainz picard and then feed the files to beets only to keep my library organized.
My beets doesn’t do any lookup (no lookup plugins are enabled, none_rec_action: asis, fetchart configured to only look at the local filesystem).


Picard adds IDs too (well, I think it only adds musicbrainz ids, per default anyway, but those are the only ones I care about).
The lookup is automatic as well (you can review or intervene if it fails to identify the release).
It also has a plugin for replay gain (I redo that step in my script anyways) and can be configured to delete any previous tags if you re-process music that you had previously tagged with some other software (IIRC it doesn’t clean them up per default).
If you’ve not used it, I recommend giving it a try before deciding how to go on.