| adjacent-tools-and-inspiration.md | ||
| build-feasibility.md | ||
| candidates-editing-first.md | ||
| candidates-streaming-servers.md | ||
| README.md | ||
| sources.md | ||
Research: Self-hosted Collaborative Music Tag Editing
Research date: 2026-08-22 Question: Is there an existing open-source, self-hosted service that loads music from storage adapters and lets users collaboratively edit tags on music files (genre, cover, album, …)? Or should we build our own?
Hard requirements
| # | Requirement | Notes |
|---|---|---|
| ① | OIDC user management | Native support for logging users in against an external OIDC identity provider (Authentik, Keycloak, Authelia, …). Reverse-proxy-only gating does not count. |
| ② | Free license | OSI-approved license, including all features needed here (no paywalled SSO/collaboration). |
| ③ | Powerful music file editing | Editing-first UX; writes ID3v2 / Vorbis comments / MP4 atoms + embedded cover art back to the audio files. |
Soft/context requirements: storage adapters beyond local disk (SMB/S3/WebDAV), collaborative multi-user workflows (suggest/approve, roles, history), editing-focused interface rather than playback-focused.
Verdict
No existing project satisfies all three hard requirements simultaneously. The landscape splits into two camps that do not intersect:
- Camp A — dedicated file-tag editors: genuinely write tags/artwork to disk, but ship only single/basic local auth and zero collaboration.
- Camp B — streaming servers: have OIDC-ish auth or collaborative edit workflows, but edit their internal database only — never the audio files.
The combination "OIDC + collaborative + writes to files" is an unoccupied niche → building our own solution is feasible and justified.
Documents
| File | Content |
|---|---|
candidates-editing-first.md |
Camp A: music-tag-web, Ampache, TuneWright, Tagr, TagLab, AzuraCast |
candidates-streaming-servers.md |
Camp B: Funkwhale, Jellyfin, Koel, Navidrome |
adjacent-tools-and-inspiration.md |
CLI/desktop taggers, TagStudio, proprietary services as inspiration, open metadata infrastructure |
build-feasibility.md |
Feasibility assessment, recommended component stack, build strategies, pragmatic stopgap |
sources.md |
All references consulted |
Quick comparison
| Project | License | OIDC | Writes tags to files | Collaboration | Storage adapters |
|---|---|---|---|---|---|
| music-tag-web | GPL-3.0 + non-commercial addendum ⚠️ | ❌ (single admin account) | ✅ excellent | ❌ | ❌ (volume mount only) |
| Ampache | AGPL-3.0 ✅ | ❌ (LDAP/HTTP/PAM/custom) | ✅ (MP3/FLAC/OGG since v4.4) | ❌ | partial (catalog concept) |
| TuneWright | unverified ⚠️ | ❌ (local invites) | ✅ | basic multi-user | ❌ |
| Tagr | unverified ⚠️ | ❌ (single user) | ✅ | ❌ (edit history only) | ❌ |
| TagLab | open source ⚠️ tiny | ❌ (env user/password) | ✅ (FLAC focus) | ❌ | multi-library paths |
| AzuraCast | Apache-2.0 ✅ | ❌ (declined OAuth) | ✅ standard fields | RBAC roles | local folders |
| Funkwhale | AGPL-3.0 ✅ | ❌ (OAuth2 provider ≠ OIDC client) | ❌ DB only | ✅ best-in-class | partial (federation/S3) |
| Jellyfin (+SSO plugin) | GPL-3.0 ✅ | ✅ via plugin | ❌ DB/NFO only | ❌ | plugins |
| Koel core | MIT ✅ | ❌ paid "Plus" feature | ❌ DB only | ❌ paid "Plus" | cloud drivers = Plus |
| Navidrome | GPL-3.0 ✅ | ❌ (proxy header auth only) | ❌ refused by design | ❌ | local folder(s) |
Legend: ✅ meets requirement · ❌ fails · ⚠️ caveat noted