explaingit

beetbox/beets

Analysis updated 2026-06-24

15,125PythonAudience · generalComplexity · 2/5LicenseSetup · easy

TLDR

Beets is a command-line music library manager that auto-tags albums using MusicBrainz and runs plugins for art, lyrics, ReplayGain, and transcoding.

Mindmap

mindmap
  root((beets))
    Inputs
      Audio files
      Folder paths
      MusicBrainz IDs
    Outputs
      Tagged library
      Album art
      Lyrics
    Use Cases
      Music library cleanup
      Auto-tag imports
      Web music server
    Tech Stack
      Python
      SQLite
      MusicBrainz
      pip
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Auto-tag a folder of ripped CDs against the MusicBrainz database

USE CASE 2

Fetch missing album art and embed it in MP3 or FLAC files

USE CASE 3

Calculate ReplayGain volume across an entire library in one pass

USE CASE 4

Serve a personal music collection over HTTP with HTML5 audio

What is it built with?

PythonSQLitepip

How does it compare?

beetbox/beetsrossant/awesome-mathbudtmo/docker-android
Stars15,12515,09715,091
LanguagePythonPythonPython
Last pushed2026-05-19
MaintenanceMaintained
Setup difficultyeasyeasyhard
Complexity2/51/53/5
Audiencegeneralresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Pip installs the core but most useful features require enabling optional plugins and editing a YAML config.

MIT license, you can use, modify, and redistribute it freely with attribution.

In plain English

Beets is a command-line tool that organizes a personal digital music collection. The README describes it as a media library management system for obsessive music geeks. The core idea is to clean up the metadata attached to your music files (artist names, album titles, track numbers, and so on) so that the collection becomes consistent, then offer a set of tools for browsing and listening to it. The central feature is an automatic tag corrector. When you run beet import on a folder of music, beets looks up each album against MusicBrainz, a community-run database of music information, and proposes corrected tags. The README shows a sample session where it identifies a Ladytron album with 98.4% similarity and rewrites several track titles. It can also pull metadata from Discogs and Beatport, or guess from filenames and from acoustic fingerprints generated from the audio itself. Beets is built as a Python library with a plugin system, and most of the extra capabilities ship as optional plugins. The README lists examples: fetching album art, fetching lyrics, tagging by genre or tempo, calculating ReplayGain volume levels, transcoding audio to a different format, finding duplicate tracks and albums, finding albums with missing tracks, embedding or extracting cover art, and serving the library through a web browser using HTML5 audio. It can also act as a backend for music players that speak the MPD protocol, and the README says writing your own plugin is straightforward if you know a little Python. Installation is a single pip install beets, with packages also available in several Linux distribution repositories. The documentation site at beets.readthedocs.org hosts a Getting Started guide and per-plugin pages. The project was created by Adrian Sampson and has accumulated many contributors over time. Help and news are organized through a GitHub issue tracker, GitHub Discussions, and a Mastodon account at @b33ts.

Copy-paste prompts

Prompt 1
Give me a beets config.yaml that imports new music into ~/Music sorted by Artist/Album/Track
Prompt 2
Show me how to enable the fetchart and embedart plugins and run them on an existing library
Prompt 3
Walk me through writing a small beets plugin that adds a custom field for vinyl rip flag
Prompt 4
Explain how to use beets to find duplicate albums in my library and merge their metadata
Prompt 5
Configure beets to transcode my FLAC library to 256kbps MP3 for a phone sync folder

Frequently asked questions

What is beets?

Beets is a command-line music library manager that auto-tags albums using MusicBrainz and runs plugins for art, lyrics, ReplayGain, and transcoding.

What language is beets written in?

Mainly Python. The stack also includes Python, SQLite, pip.

What license does beets use?

MIT license, you can use, modify, and redistribute it freely with attribution.

How hard is beets to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is beets for?

Mainly general.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.