gitwtfhub

wtf is beets-web-manager?

iranman/beets-web-manager — explained in plain English

Analysis updated 2026-05-18

8PythonAudience · generalComplexity · 3/5Setup · moderate

TL;DR

A self-hosted web dashboard for managing a Beets music library, covering import review, playlist repair, metadata checks, and Plex sync.

Mindmap

mindmap
  root((Beets Web Manager))
    What it does
      Web UI for Beets library
      Import review and cleanup
      Metadata verification
    Tech stack
      Flask backend
      React Next.js frontend
      Docker
    Use cases
      Review music imports
      Fix duplicates and metadata
      Sync Plex library
    Audience
      Self hosters
      Music library owners
    Setup
      Docker Compose
      Configure .env
      Set auth token or password

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

Why would anyone build with this?

REASON 1

Review and approve new music imports into a Beets library through a web UI instead of the command line.

REASON 2

Verify track metadata and fix duplicate or messy files across a large music collection.

REASON 3

Chase down missing tracks through Soulseek and keep a Plex library synced automatically.

What's in the stack?

PythonFlaskReactNext.jsDocker

How it stacks up

iranman/beets-web-manager100/awesome-machine-learningadam-s/car-diagnosis
Stars888
LanguagePythonPythonPython
Last pushed2024-08-07
MaintenanceStale
Setup difficultymoderateeasymoderate
Complexity3/51/53/5
Audiencegeneraldeveloperresearcher

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

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires an existing Beets library and a properly configured .env file with authentication set before first use.

Wtf does this do

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.

Yoink these prompts

Prompt 1
Walk me through setting up beets-web-manager with Docker Compose and configuring my first admin password.
Prompt 2
Explain how the automatic bearer token generation works if I never set BEETS_WEB_AUTH_TOKEN.
Prompt 3
Show me which environment variables I need to enable Plex sync and AcoustID fingerprint checks.
Prompt 4
How does beets-web-manager validate AI-suggested metadata before changing my library?

Frequently asked questions

wtf is beets-web-manager?

A self-hosted web dashboard for managing a Beets music library, covering import review, playlist repair, metadata checks, and Plex sync.

What language is beets-web-manager written in?

Mainly Python. The stack also includes Python, Flask, React.

How hard is beets-web-manager to set up?

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

Who is beets-web-manager for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.