--- title: Metadata Remote created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, music, metadata, tag-editor, python, musicbrainz, headless] confidence: medium contested: false sources: - https://selfh.st/apps/?tag=music - https://github.com/wow-signal-dev/metadata-remote --- # đŸ·ïž 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Ă©) ```yaml # 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 ```bash 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_DIR` env. - **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 `:8338` sans 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** : Ă  `false` en prod pour Ă©viter les renommages destructifs, `true` uniquement 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