Files
wiki/Catalogue-Self-Hosted/apps/app-metadata-remote.md
T
2026-06-09 18:40:21 +02:00

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
catalogue
music
metadata
tag-editor
python
musicbrainz
headless
medium false
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é)

# 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_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

Pages Liées