7.1 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Metadata Remote | 2026-06-07 | 2026-06-07 | app |
|
medium | false |
|
🏷️ Metadata Remote
Éditeur de métadonnées audio web ultra-léger, conçu pour serveurs headless : « Docker + navigateur + zéro setup ». Édite les tags ID3/Vorbis/FLAC en place, avec suggestions MusicBrainz et opérations en masse.
| Métadonnée | Valeur |
|---|---|
| Site web | https://github.com/wow-signal-dev/metadata-remote |
| GitHub | https://github.com/wow-signal-dev/metadata-remote |
| License | AGPL-3.0 |
| Langage | Python (Flask) + Mutagen |
| Étoiles | 18 ⭐ |
| Dernière MAJ | 2025 (v1.2.0) |
| Catégorie | cat-music |
Description
Metadata Remote (mdrm) résout une frustration spécifique : comment éditer les tags ID3 d'un fichier audio sur un serveur headless ? Avant lui, les options étaient : passer par id3v2/vorbiscomment en CLI via SSH (verbeux, pas user-friendly), rapatrier le fichier en local pour l'éditer avec Mp3tag ou MusicBrainz Picard (lent, casse le workflow), ou monter une usine à gaz type beets avec base SQLite, pipeline d'import, configuration verbeuse.
mdrm fait juste une chose et le fait bien : un conteneur Docker, un port :8338, une UI web qui liste récursivement votre dossier musique, et vous éditez les tags champ par champ (titre, artiste, album, n° de piste, année, genre, commentaire, paroles…) avec support de tous les formats courants : MP3, FLAC, OGG, OPUS, M4A, M4B, WMA, WAV, WavPack. Le tout sans base de données, sans import — les fichiers sont édités en place (mutagen écrit dans le fichier lui-même).
Fonctionnalités clés : suggestions intelligentes qui analysent le nom de fichier, la structure de dossiers, les fichiers voisins, ET interrogent MusicBrainz pour proposer des complétions avec score de confiance ; opérations en masse (appliquer un même changement à tout un dossier/album) ; historique undo/redo jusqu'à 1000 opérations ; playback in-browser (streaming HTTP depuis le conteneur pour vérifier le résultat) ; gestion de cover art (upload, preview, suppression, application en masse) ; renommage de fichiers/dossiers sans quitter l'UI ; édition de paroles long-form avec éditeur auto-apparaissant au-delà de 100 caractères. Image Docker compacte (~82 Mo) grâce à Mutagen optimisé.
Différenciation : Mp3tag est excellent mais desktop Windows uniquement. MusicBrainz Picard est lourd (install complète, dépendances GUI), pas idéal en headless. beets est puissant mais demande un investissement initial important (base, import, config, courbe d'apprentissage raide). mdrm cible le sweet spot « j'ai juste besoin de corriger 200 tags sans me prendre la tête ».
Installation
Docker Compose (recommandé)
# docker-compose.yml
services:
metadata-remote:
image: ghcr.io/wow-signal-dev/metadata-remote:latest
container_name: metadata-remote
restart: unless-stopped
ports:
- "8338:8338"
environment:
- TZ=Europe/Paris
- MUSIC_DIR=/music
- ALLOW_RENAME=true # autoriser renommage fichiers/dossiers
- ALLOW_DELETE=true # autoriser suppression fields
volumes:
- /data/music/library:/music # dossier musique partagé avec navidrome/jellyfin
# supports x86_64, ARM64, ARMv7
Installation manuelle
git clone https://github.com/wow-signal-dev/metadata-remote
cd metadata-remote
pip install -r requirements.txt
# éditer config : MUSIC_DIR, port
python app.py
# UI sur :8338
Configuration
- Dossier musique : un seul volume monté, l'app scanne récursivement. Adapter le
MUSIC_DIRenv. - Formats : MP3, FLAC, OGG, OPUS, M4A, M4B, WMA, WAV, WavPack (auto-détection).
- Suggestions MusicBrainz : appels à l'API publique musicbrainz.org (rate-limited, 1 req/s par IP). Désactivable si besoin via env.
- Inférence locale : analyse de patterns de nom de fichier (
01 - Artist - Title.mp3→ split auto). Stratégies spécialisées pour classique, compiles, live. - Undo/Redo : limité à 1000 ops, persisté en mémoire du process (redémarrer le conteneur vide l'historique).
- Cover art : upload direct, ré-encodage JPEG auto, réparation auto des images corrompues.
- Lecture in-browser : stream HTTP depuis le conteneur, pas de transcodage (le navigateur décode nativement).
Alternatives
Open Source
- beets — la référence « tagger + organisateur » en CLI, plus puissant mais courbe d'apprentissage raide et base de données obligatoire.
- MusicBrainz Picard — cross-platform, excellent pour les albums entiers via empreinte acoustique (PUID), mais GUI desktop lourd, pas headless-friendly.
- Mp3tag — Windows only, gratuit, excellent pour les opérations manuelles.
- EasyTAG — GTK, plus ancien, moins maintenu.
- Kid3 — KDE, multi-format, peut être headless via CLI.
- Quod Libet — player + éditeur, Python/GTK.
Propriétaires (ce que Metadata Remote remplace)
- Mp3tag (Windows store) — gratuit mais fermé (version beta donation-ware).
- Yate (Mac) — tagger audio, fermé.
- TagScanner (Windows) — fermé.
- TuneFab / TuneMobie — boîtes à outils iTunes/Apple Music, fermées, et opaques sur les DRM.
Sécurité
- Pas d'auth par défaut : le conteneur expose
:8338sans login. Ne pas exposer sur Internet sans reverse-proxy authentifié (app-traefik + basic auth ou app-authentik). - Volume monté : si l'app est compromise, l'attaquant a accès en lecture/écriture à toute la bibliothèque musicale (incluant la capacité de renommer/supprimer). Monter en read-only par défaut, basculer en RW uniquement le temps d'une session d'édition.
- ALLOW_RENAME / ALLOW_DELETE : à
falseen prod pour éviter les renommages destructifs,trueuniquement pour les sessions d'édition actives. - AGPL-3.0 : obligation de publier les modifications si l'UI est servie en réseau (cas d'un hébergement mutualisé).
- API MusicBrainz : pas de credential, mais l'IP de l'instance mdrm apparaît dans les logs MusicBrainz. Pas critique.
- Historique undo : sensible car contient l'état avant/après des modifications — en mémoire seulement, pas de fuite disque.
Ressources
- Repository : https://github.com/wow-signal-dev/metadata-remote
- Mutagen (lib Python) : https://mutagen.readthedocs.io/
- MusicBrainz : https://musicbrainz.org/
- Beets (alternative) : https://beets.io/
Pages Liées
- cat-music — catégorie parente
- app-funkwhale — serveur cible naturel (mdrm range dans le même dossier)
- app-jellyfin — alternative serveur
- app-lidarr — peut re-tagger via metadata profile (alternative)
- app-traefik — reverse proxy + auth
- app-authentik — SSO
- recettes-docker-compose — templates
- securisation-home-lab — bonnes pratiques