home / media / beets

beets

15k

Music library manager for importing, autotagging, querying, and reorganizing local audio collections.

$pipx install beets
Language
Python
Stars
14,818
Category
Media & Video
Agent
Ready
Agent Compatibility
JSON Output
Agent Skill
MCP Support
AI Analysis

beets is a local music library manager that imports audio files into a catalog, matches releases against MusicBrainz and other sources, and rewrites tags and filenames to a chosen library layout. Its plugin system extends that core into export, playlist, artwork, transcoding, and player-sync workflows.

What It Enables
  • Import folders of music, match albums or tracks against MusicBrainz, and copy, move, rename, or retag files into a consistent library structure.
  • Query the library, batch-modify metadata, update file tags, and reorganize files from the shell once the collection is in beets' database.
  • Add plugins for jobs like duplicate detection, cover art and lyrics fetching, transcoding, playlist generation, and exporting library data as JSON or JSON Lines.
Agent Fit
  • The core commands work well in local inspect and change loops because the library is queryable from the shell and batch edits can be applied deterministically once configuration is in place.
  • Machine-readable output is real but uneven: the export plugin provides JSON and JSON Lines, while many default commands print human-oriented text or template-formatted output.
  • Best suited to project-specific skills around personal media cleanup or ingestion pipelines, not unattended end-to-end tagging, because the highest-value import flow is interactive by default and plugin dependencies vary.
Caveats
  • Import, modify, move, and write operations can rename, relocate, and retag files, so safe automation depends on a configured library path and good backups.
  • Many useful plugins rely on extra Python packages or external binaries such as ffmpeg, ImageMagick, GStreamer, or Acoustid tooling.