132 lines
6.9 KiB
Markdown
132 lines
6.9 KiB
Markdown
---
|
|
title: Music Assistant
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, music, music-streaming, music-assistant, python, home-assistant, multi-source, hass]
|
|
confidence: high
|
|
contested: false
|
|
sources:
|
|
- 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é)
|
|
|
|
```yaml
|
|
# 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
|
|
|
|
- Site officiel : https://music-assistant.io/
|
|
- Documentation : https://music-assistant.io/docs/
|
|
- Repository : https://github.com/music-assistant/server
|
|
- Discord : https://discord.gg/music-assistant
|
|
- Forum HA : https://community.home-assistant.io/c/third-party/music-assistant
|
|
- Provider list : https://music-assistant.io/music-providers/
|
|
|
|
## 🔗 Pages Liées
|
|
|
|
- [[cat-music]] — Catégorie parente
|
|
- [[app-navidrome]] — Backend de fichiers locaux compatible MA
|
|
- [[app-jellyfin]] — Backend média compatible MA
|
|
- [[app-maloja]] — Scrobbler compatible
|
|
- [[app-plex]] — Backend compatible MA
|
|
- [[app-home-assistant]] — Intégration native
|
|
- [[app-traefik]] — Reverse proxy HTTPS
|
|
- [[recettes-docker-compose]] — Templates Docker
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|