A wishlist


#1

I am new to beets. I saw the tagline, “Beets is the media library management system for obsessive-compulsive music geeks.” I apparently am in the target market! I’m not ready to work hard on beets yet, but I expect to be later, once I am done with my first pass of ripping everything.

There is a thread Library maintenance with beets on the MusicBrainz community. I wrote up a wishlist of beets features there. I thought I’d cross-post it here. Maybe people will point to existing beets plugins which already do what I want. Maybe it will spark ideas in other people. I hope you find it interesting.

I have a collection of about 400 albums (mostly classical and opera, several with multiple CDs), ripped, and tagged with MusicBrainz IDs, in a 134GB directory tree on my file server. Right now I am still trying to work through my backlog of CDs to rip properly. For now, I only retag the ripped audio files when something is clearly wrong or changes. I retag using Picard, a subdirectory at a time, corresponding to an album or an album-artist.

I would like to use beets to manage the whole thing. I anticipate having to help write several plugins to make it work. Among them:

  • A beets plugin to import a full-CD unitary FLAC file, and split it into per-track FLAC files according to a CUE sheet (I rip first to a unitary FLAC file for a CD archive)
  • A beets plugin to replicate the tagging which MusicBrainz Picard does for me now. And, it want it to do better; for instance, to reliably populate the Composer tag, and Artist tags for the various performers, in my audio files.
  • Better yet, a beets plugin which lets me make local overrides for the MusicBrainz metadata. For instance, I would rather use “Don Giovanni” in my track titles than the style-guide-approved Work name Il dissoluto punito, ossia il Don Giovanni, K. 527. I want to have these overrides in a static file, so I don’t need to keep retyping them as I take advantage of the better metadata from MusicBrainz over time.
  • A beets plugin which is a better version of “export to MP3, with total size budget”. I want the export to select the most-liked tracks by tags and ratings, and sync them to a target directory (my laptop, my other laptop, my phone, my spouse’s phone) but making clever use of a second directory tree as a tagged MP3 cache. The better export will skip converting audio data from FLAC to MP3 if the existing MP3 audio data match the current FLAC data. The better export won’t bother updating files in the target directory if they are already there and still current. The better export will ensure that the target directory is no larger than the size budget, while being sure that only full albums get exported.
  • A beets plugin which is an ISRC submitter, which only submits ISRCs that aren’t already in MusicBrainz.
  • A beets plugin which is a to-do list and metadata bug tracker. I want to configure it to know what metadata I want MusicBrainz to have for each album in my collection, then give me a prioritised list of tasks I could do to improve my collection’s metadata using the physical Releases I have on hand. For instance, it could list for me the Releases which have no cover art; my task would be to scan my physical Release and submit to the Cover Art Archive. Or, it could tell me which audio files lack a Composer tag and should have one. Or, I could say that I a particular music file is lacking an Artist tag for one of the performers, and that turns into a task for me to improve the Release metadata, and let the improvement percolate back down to the audio file.

My thanks to everyone who was built beets into the tool it is now. I hope to take my turn helping in the future. Maybe, some months from now, I’ll be back posting about how I’m making each of these wishes come true.


#2

Hi! I’m glad you’re interested in beets, and thanks for cross-posting! These are all useful ideas. Here are some notes:

  • An existing feature request for “cue sheet multiplexing”: https://github.com/beetbox/beets/issues/136
  • Your “local overrides” idea is intriguing. For an old and limited version of this idea, see the rewrite plugin.
  • I’m very interested in your “metadata to-do list” idea! Most of these checks can be accomplished with beets’s query syntax, which can find all your music that’s missing a composer, for example.

Please let us know if you have any questions about the code!


#3

I am working currently on a plugin to get the performers and work titles here: https://github.com/beetbox/beets/issues/2452 . Maybe you can look at it and tell me if you have some suggestions?