是一款现代、高性能的音乐库元数据(Tag)自动化刮削与标签管理系统,专
3.1K
Music Tagger is a modern, high-performance web application designed for automated music metadata scraping, tag management, and audio library organization. Built for users with large local collections, it provides an effortless information hub natively via Docker.
Note
For the Chinese version of this documentation, please see [README.zh.md](README.zh.md).
| Dashboard & Themes |
|---|
![]() |
![]() |
| Logs & Status | Scraper Pipeline |
|---|---|
![]() | ![]() |
Music Tagger ships with a broad collection of hand-crafted themes — dark, light, and high-contrast variants — switchable instantly from the sidebar without any page reload.
| Light Themes | Dark Themes |
|---|---|
![]() | ![]() |
📸 [Theme gallery screenshots — coming soon]
When multiple scrapers return conflicting metadata for the same track, Music Tagger surfaces every candidate match and lets you decide field-by-field which value wins. Conflict resolution is tracked per-track so you can revisit past decisions at any time.

📸 [Dispute manager screenshot — coming soon]
Every scraping job, metadata write, and system event is captured in a structured log viewer. The built-in cache browser shows what has been fetched from external sources, lets you inspect individual cache entries, and provides bulk-invalidation controls so stale data never silently persists.
| Operation Logs | Cache Browser |
|---|---|
![]() | ![]() |
📸 [Cache browser screenshot — coming soon]
A full-featured in-app experience beyond just tagging:

📸 [Player & editor screenshots — coming soon]
Keep your library clean with automated detection tools:

📸 [File health dashboard screenshot — coming soon]
Create a comprehensive .env file in your preferred working directory (e.g., ~/music-tagger):
# ── Database Credentials (Change to strong secure passwords!) ──
POSTGRES_USER=user
POSTGRES_PASSWORD=your_strong_postgres_password
POSTGRES_DB=music_tag_client
DATABASE_URL=postgresql+asyncpg://user:your_strong_postgres_password@db:5432/music_tag_client
# ── Core Services Paths ──────────────────────────────
REDIS_URL=redis://redis:6379/0
CELERY_BROKER_URL=redis://redis:6379/1
CELERY_RESULT_BACKEND=redis://redis:6379/2
# ── Application Runtime Policy ──────────────────────────
DEBUG=false
SECRET_KEY=change-me-to-a-strong-random-secret
ALLOWED_ORIGINS=http://localhost:8000,http://localhost
SCAN_WORKER_THREADS=8
# ── Volume Mount Configurations ─────────────────────────
# IMPORTANT: Provide the ABSOLUTE path to your local music directory!
MUSIC_DIR=/path/to/your/music
Caution
If exposing to the public internet, ensure `POSTGRES_PASSWORD` and `SECRET_KEY` are adequately changed.
In the exact same directory, create your docker-compose.yml config:
services:
db:
image: postgres:15-alpine
container_name: music-tag-db
env_file:
- .env
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: music-tag-redis
ports:
- "6379:6379"
volumes:
- redisdata:/data
restart: unless-stopped
command: ["redis-server", "--appendonly", "yes"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
app:
# Pointing to our bundled production release image
image: fanss/music-tagger:latest
container_name: music-tag-app
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
ports:
- "8000:8000"
env_file:
- .env
volumes:
# Automatically mounts the directory you established inside the .env file
- ${MUSIC_DIR:-/path/to/your/music}:/music:ro
restart: unless-stopped
volumes:
pgdata:
redisdata:
Run the following command to ignite setup:
docker compose up -d
Once the containers are running and database has initialized, head to http://YOUR_SERVER_IP:8000 to start beautifully managing your audio library!
| [email protected] | |
| 🐛 Bug Reports & Feedback | GitHub Issues |
| 💡 Feature Requests | GitHub Discussions |
| 📖 Documentation | fanszoro.github.io/music-tagger |
If Music Tagger has been useful to you, consider sponsoring to help keep the project actively maintained and improved.
Your support helps cover hosting, development time, and keeps the lights on. Thank you! 🙏
This project is released under the MIT License.
Content type
Image
Digest
sha256:dc062aa9d…
Size
809.5 MB
Last updated
6 months ago
docker pull fanss/music-tagger