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

6.9 KiB

title, created, updated, type, tags, confidence, contested, sources
title created updated type tags confidence contested sources
Music Assistant 2026-06-07 2026-06-07 app
catalogue
music
music-streaming
music-assistant
python
home-assistant
multi-source
hass
high false
https://selfh.st/apps/?tag=Music
https://github.com/music-assistant/server
https://music-assistant.io/

🎛️ Music Assistant

Gestionnaire de bibliothèque musicale multi-source écrit en Python : agrège Spotify, Tidal, Qobuz, YouTube, Deezer, Apple Music, Plex, Jellyfin, Navidrome, fichiers locaux… dans un player unique pilotable via Home Assistant.

📋 Informations Générales

Métadonnée Valeur
Site web https://music-assistant.io/
GitHub https://github.com/music-assistant/server
License Apache-2.0
Langage Python
Étoiles 415 (2 000+ sur GitHub)
Dernière MAJ 2026-06-07
Catégorie cat-music

📝 Description

Music Assistant (MA) n'est pas un serveur de streaming classique : c'est un agrégateur universel de sources musicales. Lancé en 2022 par l'équipe d'Home Assistant, le projet vise à résoudre le problème de la fragmentation des services : au lieu de jongler entre Spotify, Tidal, Qobuz, les fichiers locaux, les partages SMB/NFS, les médiathèques Plex/Jellyfin/Navidrome, l'utilisateur dispose d'une seule interface qui unifie tout.

Le serveur tourne comme un add-on officiel Home Assistant ou comme conteneur Docker autonome, et expose un player compatible HA Media Player, des endpoints API, et une UI web intégrée. Les « providers » (connecteurs) se branchent en plug-ins : Spotify (utilise votre compte, gère les playlists et le mode offline), Tidal/Qobuz (streaming HiRes jusqu'à 24/192), YouTube Music, Deezer, Apple Music (limité), fichiers locaux, Radio (Radio-Browser API), TuneIn, podcasts, Chromecast, et les serveurs media existants (Plex, Jellyfin, Navidrome, Subsonic, LMS).

La force de MA est son moteur de recommandation, sa gestion fine des favoris et playlists inter-sources, sa qualité audio préservée (pas de re-encodage superflu) et son intégration native avec Home Assistant (entités media_player, automatisations, scripts, scènes, TTS, assistants vocaux via Wyoming). Il peut diffuser vers n'importe quel Chromecast, AirPlay, Sonos, ou hardware compatible, et synchroniser le playback sur plusieurs devices (multi-room).

🚀 Installation

Option 1 : Docker Compose (recommandé)

# docker-compose.yml
version: "3.8"

services:
  music-assistant:
    image: ghcr.io/music-assistant/server:latest
    container_name: music-assistant
    restart: unless-stopped
    network_mode: host   # requis pour mDNS/Chromecast/AirPlay discovery
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/Paris
      LOG_LEVEL: INFO
    volumes:
      - ./data:/data
      - ./cache:/cache
      - ./music:/music:ro   # optionnel : si fichiers locaux
    ports:
      - "8095:8095"  # UI web (si non host)

Option 2 : Home Assistant Add-on (recommandé si on a HA)

Settings → Add-ons → Add-on Store → Music Assistant (déjà présent si vous avez l'add-on store officiel). Le HA supervise l'add-on, le démarre, gère les upgrades. Les fournisseurs de musique et les players sont alors découverts automatiquement.

Option 3 : Installation manuelle (déconseillée)

Python 3.11+, Poetry. Cloner le repo, poetry install, lancer python -m music_assistant. À réserver aux développeurs.

⚙️ Configuration

  • Providers : Settings → Music Providers, ajouter au minimum un provider (Spotify, fichiers locaux, etc.). Les clés API (Spotify, Tidal) sont récupérées via OAuth depuis votre compte, pas besoin de clé dev.
  • Players : Settings → Players, MA détecte automatiquement Chromecast, AirPlay, Sonos, et les HA Media Player entities.
  • Bibliothèque : MA indexe les sources, applique une couche d'unification (même titre de partout = même entrée). Premier index long (qq minutes), incrémental ensuite.
  • Multi-room : créer un group de players, MA synchronise l'audio (latence compensée par buffer).
  • Home Assistant : Settings → Devices & Services → Add Integration → Music Assistant lie MA et HA.
  • Troubleshooting : LOG_LEVEL=DEBUG temporairement dans l'environnement, puis consulter Settings → Logs.

🔄 Alternatives

Open Source

  • app-navidrome — Subsonic-compatible, ultra léger, fichiers locaux uniquement.
  • app-koel — UI soignée, fichiers locaux, pas d'agrégation.
  • app-ampache — Subsonic-compatible, fichiers locaux.
  • app-funkwhale — Fédéré ActivityPub, podcasts et musique.
  • app-maloja — Scrobbler multi-source (peut compléter MA pour les stats).
  • app-jellyfin — Plus généraliste (vidéo + audio).
  • mopidy — Serveur audio extensible Python (historique, un peu daté).
  • RompR — Frontend pour Mopidy.

Propriétaires (ce que cette app remplace)

  • Spotify Connect — Cœur de cible : un player multi-room auto-hébergé.
  • Roon — Référence audiophile payante (~150 $/an).
  • Sonos — Ecosystem audio multi-room propriétaire.
  • Plexamp — Player desktop Plex (limité à Plex + Tidal).
  • Logitech Media Server / Squeezebox — Solution historique, peu d'add-ons modernes.

🔒 Sécurité

  • Network mode host : MA scanne le LAN pour Chromecast/AirPlay. Comprendre l'empreinte réseau avant de déployer.
  • OAuth tokens : stockés en clair dans ./data. Chiffrer le volume ou restreindre les droits (700 sur le dossier).
  • Exposition web : l'UI est par défaut en local, ne pas exposer 8095 sans reverse proxy HTTPS.
  • Compte Spotify/Tidal : MA peut y stocker votre cache offline (paramètre offline_cache_enabled). Désactiver si disque chiffré requis.
  • Home Assistant : si MA tourne en add-on HA, c'est HA qui gère l'auth (excellent).
  • Mise à jour : latest est stable, le rythme est rapide, suivre les release notes.
  • Logs : pas de données personnelles au-delà des titres écoutés, masquage possible via LOG_LEVEL=INFO en prod.

📚 Ressources

🔗 Pages Liées