iranman/beets-web-manager — explained in plain English
Analysis updated 2026-05-18
Review and approve new music imports into a Beets library through a web UI instead of the command line.
Verify track metadata and fix duplicate or messy files across a large music collection.
Chase down missing tracks through Soulseek and keep a Plex library synced automatically.
| iranman/beets-web-manager | 100/awesome-machine-learning | adam-s/car-diagnosis | |
|---|---|---|---|
| Stars | 8 | 8 | 8 |
| Language | Python | Python | Python |
| Last pushed | — | 2024-08-07 | — |
| Maintenance | — | Stale | — |
| Setup difficulty | moderate | easy | moderate |
| Complexity | 3/5 | 1/5 | 3/5 |
| Audience | general | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires an existing Beets library and a properly configured .env file with authentication set before first use.
Beets Web Manager is a self-hosted web app for managing a music library that uses Beets, a popular command line music organizer. It adds a browser interface on top of Beets for reviewing new imports, fixing playlists, chasing down missing tracks, cleaning up duplicate files and folders, checking metadata, and keeping a Plex library in sync, all from one screen meant for a single administrator rather than a public audience. The backend is written in Flask and reads and updates the Beets library directly, while a React and Next.js frontend is built as static files and served by that same backend. It can match releases and recordings against MusicBrainz, verify tracks using audio fingerprinting through AcoustID, look for missing tracks through Soulseek, and optionally use an AI provider to suggest metadata fixes, though the author is clear that AI suggestions are checked against other evidence before anything is changed. A background job system handles longer running tasks with logs, retries, and cancellation. MusicBrainz lookups work out of the box with no account needed. AcoustID fingerprinting also works without your own key through a shared, rate-limited test key. Plex sync, Soulseek downloading, and AI metadata suggestions are all optional and the app works fine without them. The app requires at least one form of login before it will respond to anything beyond a health check: either a bearer token for scripts, which the app will generate automatically and print once if you never set one, or a browser password that must be at least 32 characters and include upper and lower case letters, a number, and a special character. The project is intended for local or self-hosted setups and ships with a Docker Compose file that runs the app as a non-root user bound to localhost by default. The author describes the code as vibe-coded but says real effort went into security hardening. The README does not state a license.
A self-hosted web dashboard for managing a Beets music library, covering import review, playlist repair, metadata checks, and Plex sync.
Mainly Python. The stack also includes Python, Flask, React.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly general.
This repo across BitVibe Labs
Verify against the repo before relying on details.