Things I know about beets

evakhoury1 pts0 comments

Things I know about beets | Lucy McPhail's blog

Skip to main content

Things I know about beets

22 July, 2026

god damn lucy I need you to just list everything you know about beet. You keep saying things that make me go “whaaa what I wish I knew that before”

Louis Pilfold

Sure thing! I’ve been using beets for a few years now to organise my music library, and I’ve picked up a few tricks along the way. In short, beets is a media library management system, which helps you catalogue your music collection and improve its metadata by drawing from databases like MusicBrainz and Discogs. I’m not going to cover the basics here though; for that, I’d recommend going straight to their getting started guide. These are a handful of slightly less common features that I find myself using :)

First, a note on enabling plugins, since I’m about to talk about a few of them. In order to enable a plugin, you can add that plugin’s name to the plugins option in your config.yaml file. You can find the location of your config file either by running beet config -p, or by checking the docs. Open your config file in your text editor, and add a section that looks like this:

plugins:<br>- fish<br>- replaygain<br>- fetchart<br>- convert<br>- missing<br>- duplicates<br># whatever else you likefish completions

I use the fish shell, so I really like that beets comes with a plugin to easily get high-quality shell completions for fish. Enable the fish plugin, then run beet fish, and beets will create a file called ~/.config/fish/completions/beet.fish. You should now be able to tab-complete beets commands!

ReplayGain

ReplayGain is a standard for measuring and normalising the perceived loudness of audio tracks. If your music player supports ReplayGain, it can read the relative loudness of each track or album, and adjust the playback gain so that they all sound equally loud.

what did you mean by "track or album"?

When you’re playing back your music, you can choose whether you’d like every track to sound equally loud, or for gain to be applied equally to every track in an album. With the latter option, differences in perceived loudness between tracks in an album are preserved, but whole albums will be normalised relative to each other. Beets’ ReplayGain analysis will compute both, so you can usually choose which you’d like in your music player’s settings. Personally, I use album mode.

To generate ReplayGain metadata from beets, install beets[replaygain] and enable the replaygain plugin, and optionally choose an alternate backend. I use the ffmpeg backend, since it’s pretty quick and supports lots of audio formats. If you’d like to do that, make sure you have ffmpeg installed, and then add this to your configuration:

replaygain:<br>backend: ffmpeg<br>By default, the ReplayGain plugin will automatically analyse new tracks as you import them (which is a little slow, don’t worry if it looks like it’s hanging for a bit), but if you’d like to analyse your existing library, run beet replaygain and it’ll go through everything that isn’t already analysed.

For more details, I refer you to the docs.

fetching album art

I like seeing album art when I’m scrolling through my library! Sometimes you’ll get album art when you download an album, like when you get one from Bandcamp, but sometimes you’ll have to get it yourself. Mercifully, beets can automate the process of trawling the internet looking for album art. Install beets[fetchart] and enable the fetchart plugin, and then whenever you import an album, it’ll automatically search the internet for album art, and save it in the album’s folder as cover.jpg. Like the ReplayGain plugin, you can also add album art to your existing library by running beet fetchart, which will look for album art for any albums in your library that don’t already have it.

Some music players, such as iPods, don’t check for a cover.jpg file, so you’ll have to embed the album art into each audio file. Beets also has a plugin for this: install beets[embedart] and enable the embedart plugin (you’ll also need fetchart to get the images in the first place), and then beets will automatically embed images whenever fetchart gets a new cover.

Once again, for more details, see the docs pages for fetchart and embedart.

converting between formats

The beets convert plugin is a real multi-tool. You can use it to re-encode files in your library, replacing the old ones, or to automatically encode files as you import them. My favourite use, though, is to transcode lossless files to opus in order to save space on music players, while keeping the original lossless files in my library. It’s also useful if you’re using a music player which has limited codec support, like the stock firmware on an iPod, and you need to transcode your library in order to play it at all.

In order to do that, enable the convert plugin, and then add this to your configuration:

convert:<br>format: opus<br>never_convert_lossy_files: yes<br>Then, run beet convert --dest...

beets album like plugin replaygain library

Related Articles