I have a very large, untagged, randomly named library. Filenames, for instance, might be SP1234.wav, DF4345.wav. All of the tracks are popular music, radio type plays. However, all of the metadata has been stripped. I’ve used MusicBrainz Picard in the past, but I’m hoping to do this completely in bash cli so I can later automate the process.
So, these tracks aren’t in any particular file structure either. There are no albums or artists. Just the tracks. I tried setting up adsubmit and chroma, but I’m not sure that I got it correct. I also went ahead and signed up with discogs, but that returned erroneous data. One directory only matched a handful of tracks and they were certainly all incorrect.
The idea is to import from one directory and copy to another such that artist and track only remain. I would also not mind converting the tracks to something else like ogg or flac.
Of course, I will be continuing to try to figure this out with the docs, but any help would be appreciated. Beets seems like a bit of a behemoth to tackle…
Using chroma is the right idea! Acoustic fingerprinting is the way to recover structure from this.
I would also import all the tracks in singleton mode, i.e., with beet import -s. You may be able to recover album structure later, but this seems like the way to go as a first cut.
Aye, that’s not bad. It’s kind of annoying that it keeps asking me questions, but I get it. Another kind of annoying thing is that it puts tracks in LIBRARY/Non-Album/$Artist/$Track.wav
I would like to output like: LIBRARY/$artist - $track.wav
Fairly confident this is just a config thing.
As I was going through this, I thought it’d it would be cool:
if beet_unsure(track):
output_dir = Path('~/unsure_tracks').expanduser()
finish_beets_stuff(output_dir=output_dir)
else:
finish_beets_stuff(output_dir=normal_dir)
whatever, something like that so I don’t have to keep pushing buttons…
I am not a beets super-expert, but I am confident you can get beets to do your imports in a way that never prompts you for confirmation, and sorts results into three categories/directories: tagged correctly (i.e. strong recommendation), tagged but possibly incorrectly (i.e. non-strong recommendation), and unknown (i.e. no fingerprint match).
I certainly wouldn’t just copy-pasta such a complex config. However, it is jam packed with notes and lots of helpful hints. Thanks for that.
(Also, as a matter of personal principal, I never copy-pasta anything. Even if I want that exact bit of code, I still hand type it out. Makes me think very carefully about every line.)