My rookie workflow lessons

First, thanks for a great tool. Your “getting started” documentation was extremely helpful and I do feel like I’ve refamiliarized myself with my music collection. I could only find a few examples of work flows and I wanted to describe what I fell into if it might help someone else getting started.

  1. Spend the money and move your music to a solid state disk drive. The first time I ran beet import -A /my/mp3/library it ran for 72 hours. That was with a config that copied from spinning drive to spinning drive. My collection is only about 90GB but that I/Os a killer. The same command, same music copying from solid state to solid state only took a few hours.
  2. Get other tools ready, I ran across Beets when I was rebuilding my music streamer. I’d been running Subsonic for years and when it went closed source, I decided to build a new server and rebuild with Airsonic. As I was rebuilding the streamer and examining my collection, I noticed a lot of discrepancies that needed to be cleaned up. That’s when I came across beets. While developing my workflow I also ended up installing exiftool and id3v2 as support/research tools.
  3. So my basic workflow was to do a massive non-Autotagger copy so I had /Music and /New_Music. With New_Music having some problems and needing cleanup. I should mention I tried running autotagger a number of time but was overwhelmed with the tagging percentages and mostly didn’t know what to accept or not. A challenge with my collection is that it is a large number of ripped CDs that had good metadata and did well. And Lots of single tracks purchased to do play lists, that did not do well.
  4. My music streamer is Ubuntu so my work flow became 4 browser tabs, one in musicbrainz, one in discogs, and one google search and one looking at the collection in airsonic’s visual interface. 2 putty terminals one sitting on top /Music and one sitting on top of /New_Music. Many of the single tracks got thrown into the /New_Music/_ or /New_Music/__ directories and I worked those off last when my skills were better. I had a lot of small discrepancies like “Tom Petty and the Heartbreakers” vs “Tom Petty & The Heartbreakers” and “Tom Petty And the Heartbreakers” that each had some of the albums as separate /New_Music directories.
  5. I started working through the collection alphabetically, finding an artist or artist/album that needed correcting by isolating the incorrect albums or artist with beet ls -p “what ever needed” and “^what ever words not needed” to get it right and then I’d command line substitute “remove -d” for “ls -p” and remove it from the /New_Music. Then sitting on the old /Music tree I’d do beet import /Music/Artist or /Music/Artist/Album. The first ones I’d have to multiple times before I would get it right. To reiterate above, it became key for me to use the “^” negation flag to remove artists and albums from the listing to isolate just my problem paths. For example beet ls -p my girl gives me 29 tracks, but beet ls -p ^Roy ^Various ^Stevie ^Jet ^Jeff ^Talk gives me 10. Then swapping in beet remove -d took them out of the /New_Music and let me reimport them correctly.
  6. My _ and __ directory files took more research just to figure out where the single track came from with a lot of recursive listings and grepping for where the file was from and where it should be. Normally even on my iterative process above I would find the exact id in musicbrainz or discogs and then use the edit Id to paste in the full url to the correct release to get the match.

So while my workflow got me through it, I am certain there are better more logical and efficient workflows with beets and tools that are out there. Plus I feel like I’ve got enough beets legs that I’d be up for doing it over with a smarter workflow. If you have a flow that helped you through that initial learning curve and would help others, please put it out there.

eric s.


This is awesome. Thank you for sharing your experience—it’s super useful.

I’m still moving my music as we speak.

Most of my time is in Google, Discogs, and Beatport getting the URL of the release so beets can autotag correctly. I don’t want to import all the music then tag because my music structure was organized by genre and I wanted to go one genre at a time so I could properly label everything at import time.

I also didn’t want to use autotag because I didn’t want albums like Top 100 ... so I would look up the songs and discover what their original releases were and tell beets to use that instead of what was in the files metadata.

So my workflow involves one terminal for beets, one window for the beets library, one window for the incoming music folder and web browser. In a folder I would beet import -g ./ then let beets try to find the match and if not I would search the web and give it a release. I use the move option in my config so the file then disappears from my old music folder and moves into the new beets library. Once I do maybe an hour of that I search beet ls 'added:2020-08-21T18:30:00..' for songs added in the last hour and I then begin tagging those with my comments, genre, rating, etc. Then do the next batch.

I used to do individual tracks like this but that took way to long.

Also, everyday I backup the beets library, database and config to an external harddrive and then periodically to a second computer.