Audio and video · Edition No. 36 · 30 Sep 2026

beetbox/beets

Catalogues a music collection and corrects its tags against a public music database.

← Audio and videoRead the whole edition →

15560 stars · MIT — read from /blob/master/LICENSE, plain unmodified text, 'Copyright (c) 2010-2016 Adrian Sampson' · v2.14.1 of 2026-09-17, the yearless GitHub date confirmed by PyPI · Track this in Scout

Catalogues a music collection and corrects its tags against a public music database.

▶Repo detailsthe review · specs · pros & cons · install

What it is

A Python program at 15,560 stars, created in August 2010, that keeps a searchable catalogue of a music library and matches each album against the MusicBrainz database. Almost everything beyond the core is a plug-in: artwork fetching, loudness levelling, acoustic fingerprinting, lyrics and genres.

What it is good for. Anyone with a large local music collection assembled over years from different sources, where half the albums have wrong track numbers and no artwork. It is also the right tool when files need to end up in a predictable folder shape for a media server to read.

Stars15560
LicenceMIT — read from /blob/master/LICENSE, plain unmodified text, 'Copyright (c) 2010-2016 Adrian Sampson'
Latestv2.14.1 of 2026-09-17, the yearless GitHub date confirmed by PyPI
Good
  • MIT, read from the licence file and plain.
  • The matching is genuinely good, because it identifies the album rather than trusting whatever text the files arrived with.
  • Actively released: version 2.14.1 is dated 17 September 2026.
Watch for
  • A plain install gets the cataloguing but not the features most people came for. Acoustic fingerprinting needs a separate program called Chromaprint plus an audio decoder chain, and the loudness plug-in needs an outside program for every one of its five methods — the names differ on Ubuntu, Arch, macOS and Windows, and this is where most people give up.
  • It rewrites tags and moves files by design. Importing is a change to your collection, so a backup before the first large import is the honest precaution, not an optional one.
  • The Python version window is narrow at both ends: 3.10 or later is required and the package refuses to install above 3.14, so a very new Python will not work.
  • 636 open issues against 78 open pull requests, and the loudness plug-in alone offers five different back ends with different format coverage and two that cannot work in parallel. That is configuration effort, not a single blessed path.
Similar repositories
  • metabrainz/picard

    Tags files against the same public music database and can also use acoustic fingerprinting, but it is a desktop window you drag files into rather than a catalogue you can query.

    Track this in Scout
  • Lidarr/Lidarr

    Also renames and sorts a music collection, but its purpose is watching feeds and acquiring new releases rather than fixing files that are already on the disk.

    Track this in Scout
  • puddletag/puddletag

    A spreadsheet-style tag editor for Linux where many files are edited by hand, the opposite approach to automatic matching.

    Track this in Scout
Install
uv tool install beets
Screenshots
beetbox/beets: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.