Beets: The music geek's media organizer
21 comments
·November 10, 2025Yodel0914
I spent a couple of nights working out how to configure beets to my liking and have loved it ever since. My “workflow” is now:
- buy album on Bandcamp
- download zip
- beet import {zip file name}
And beets extracts the zip, matches the album to musicbrainz, updates any metadata, and drops the files into the directory structure that I like (naming the files how I like them, too).
Very rarely an album will need some more attention, in which case I use Picard to fix it before using beets to import it.
Hamuko
Isn't beets going to just overwrite whatever you did in Picard?
Yodel0914
No, you can tell it to use the metadata as-is.
Sometimes there’s just weirdness though - for example recently I bought an album and the band included all the tracks from their previous album as bonus tracks. So I used Picard to split them into the 2 “proper” albums.
siddboots
Well, one might use picard to find a musicbrainz release id, so that beetz has something to grab on to when importing.
Hamuko
I mean, you can just do that in the browser too. "Enter ID" allows you to enter the MusicBrainz UUID (or just full URL). You can even do in the command itself.
beet import "Iron Maiden.zip" -S 4500ad36-5f92-4e4c-bb24-3a9a57faf550Semaphor
I recently looked into beets, but it seems it’s focused on automation, is that correct? I often buy stuff that has just been released, and that’s not yet in any database, so no automation works.
My current workflow is download, unzip and manually tag (mainly genres, sometimes badly named artists/albums) with MusicBee (which gives me autocomplete for genres so I can reuse existing ones), and then copy the files to the server for Navidrome to pick them up.
Throwing this out here to see if beets would actually work well with what I want after all.
majkinetor
Looks like a general case. I do the same a lot with Picard and Foobar, but beats can also auto tag based on file name and populate musicbrainz. Set library directory to that of navidrome so it will be coppied there on import.
Hamuko
If you add a lot of new stuff to your library, you'll often need to add them to MusicBrainz yourself. I use beets and I currently have added 2697 releases (2543 release groups) to MusicBrainz.
tuukkao
Beets is what got me into MusicBrainz. It's an incredible resource. To be fair it's not the easiest of things to get started with and the usability could be better (release drafts, anyone?) but it's efficient once you get the hang of it.
non-nil
First: Thank you! Secondly: I wish more people did this. If you end up needing to manually enter the data, at least if you add it to a public database more people can benefit, which also makes it feel less frustrating.
I'm in the midst of a major music library overhaul and would not know how I'd ever get it done without Beets. For example, it's clearing out embedded images, fetching new hi-res artwork and verifying FLAC integrity, as I go through artist by artist.
daiwt
[dead]
adg33
I love beets - the one thing I can't figure out is how to set the genre very wide.
I like having a small number of broad genres - Rock, Hip-Hop, Jazz etc - but the tagging comes up with hundreds of distinct genres :(
globular-toast
I have this problem too. I find it completely useless to have tags like genre=Post Rock Jazz Fusion" or whatever with basically one band in each genre.
The other thing I've never quite got right is how to deal with classical music and popular music with multiple pressings. A lot of the tagging structure seems oriented around popular music with just one pressing. But I have like 10 different recordings of The Planets and several versions of Red Hot Chili Pepper's Californication, for example.
LeoPanthera
Been using this for several years now. It's definitely not for the average user. But nothing is quite so flexible.
aucisson_masque
Well yes, it's not that hard to use but then even using the terminal for an average user is complicated.
There is a webpage on beets website where they list all the functions and explain what it does. Very useful when you go back after half a year and can't remember how it works.
jimbo999
Been using with Claude via MCP to tag a bunch of old ripped CDs - fun with mixed results.
fragmede
is Claude "listening" to the music in order to tag it?
boobsbr
Whatever happened to MusicBrainz Picard?
Yodel0914
Nothing - it’s still getting regular updates.
aleks5678
Thanks. I was looking for something like this.
If you're using Navidrome or similar to stream your music then check out beets-alternatives [0]. It lets you sync (and optionally convert) your library or a subset of it to another location, in my case my music storage mounted with Rclone. It's especially useful if you need to have a different naming structure in your target directory for whatever reason. I like to keep each disc of a multi-disc album in in its own subdirectory but most streaming servers seem to prefer all tracks of an album to be in the same directory. With Beets-alternatives I can have a different naming structure for each collection vs. having to rename my primary collection to suit whatever streaming server I happen to be using.
[0]: https://github.com/geigerzaehler/beets-alternatives