beet
Manage and organize music libraries
TLDR
Add music from a specific directory to the library, attempting to get correct tags for it from MusicBrainz
Add a single song to the library, attempting to get correct tags for it from MusicBrainz
Query library
Show entire library statistics
Show statistics for a specific query
SYNOPSIS
beet [options] command [arguments]
PARAMETERS
-h, --help
Show this help message and exit.
-v, --version
Show version number and exit.
-c CONFIG, --config=CONFIG
Path to config file (default: ~/.config/beets/config.yaml).
-d DIR, --directory=DIR
Library directory (default: ~/Music).
-l DB, --library=DB
Path to SQLite library database (default: library.db in directory).
--verbose
Increase log verbosity.
--debug
Print debug output.
-C, --no-colors
Disable colored output.
-p PLUGIN, --plugin=PLUGIN
Load plugin (repeatable).
--format-item=FORMAT
Template string for displaying items.
--format-album=FORMAT
Template string for displaying albums.
DESCRIPTION
beet is the command-line tool for beets, a Python-based music management system for audio collectors. It automatically tags, organizes, and queries music libraries using metadata from sources like MusicBrainz. Import new files with fuzzy matching to identify tracks and albums, rewrite tags, fetch artwork, and embed lyrics. Files are moved into an artist/album structure defined in config.
Query your library with SQL-like syntax: beet ls artist:"Led Zeppelin" year:>1975. Edit tags in bulk, update database from files, or convert formats via plugins like convert. Supports plugins for Discogs, Spotify, Chromaprint fingerprinting, and web UI.
Beets stores metadata in a SQLite database separate from files, allowing flexible querying and reporting. Highly customizable via YAML config for paths, matching thresholds, and formats. Ideal for large collections needing organization and accurate tagging beyond basic tools.
CAVEATS
Requires beets Python package (pip install beets). Writable library directory needed. Initial setup involves config.yaml editing for paths and preferences. Plugins may require extra dependencies like ffmpeg.
COMMON COMMANDS
beet import [path] - Autotag and add music.
beet ls [query] - List items/albums.
beet modify [query] field=value - Batch edit tags.
beet update [query] - Refresh database from files.
QUERIES
Use SQL-like syntax: artist:"Pink Floyd" album:dark genre:rock year:1973.. Paths with path:, paths with ~ for regex.
HISTORY
Created by Adrian Sampson in 2010 as a music geek's tool. First stable 1.0 in 2013. Evolved with plugin ecosystem; version 2.0 (2024) added async operations and improved matching.


