--- title: Music Service created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, downloads, music, multi-source, python, api] confidence: medium contested: false sources: - https://selfh.st/apps/?tag=downloads --- # 🎶 Music Service > Service générique de téléchargement musical multi-sources : unifie plusieurs backends de recherche (YouTube, SoundCloud, Bandcamp, etc.) derrière une API REST unique. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://github.com/nicholasgasior/music-service | | **GitHub** | https://github.com/nicholasgasior/music-service | | **License** | MIT | | **Langage** | Python (FastAPI) | | **Étoiles** | 5 ⭐ | | **Catégorie** | [[cat-downloads]] | ## Description Music Service est un **agrégateur de sources musicales** : au lieu de coller une URL YouTube ici, une URL SoundCloud là, il offre **une seule API REST** qui accepte un nom d'artiste, de morceau ou d'album, et interroge en parallèle plusieurs backends pour ramener le meilleur résultat. L'idée est proche de [[app-music-grabber]] (du même auteur d'ailleurs — nicholasgasior), mais plus **générique et bas-niveau** : pas de couplage fort avec [[app-lidarr]], pas de notion de « backfill de discographie », juste un **service de résolution « titre → fichier »** sur lequel on peut brancher n'importe quel frontend (Lidarr, Navidrome via import script, Home Assistant, ou un script perso). Les sources supportées (selon config) incluent typiquement YouTube (via yt-dlp), SoundCloud (via scdl), Bandcamp (via bandcamp-downloader), et potentiellement Dailymotion, Vimeo, ou des archives libres (Jamendo, Free Music Archive). La sortie est uniformisée : ID3 tags cohérents, format configurable (mp3/flac/opus), et pochette embarquée. C'est l'outil idéal pour qui veut un **« point d'entrée unique »** dans son installation musicale self-hosted, mais c'est aussi le **type de projet à risque** : très peu d'étoiles, **bus factor 1** certain, et la valeur dépend de la qualité des backends sous-jacents (souvent des scrapers fragiles). **⚠️ Avertissement légal** : comme pour tous les outils de la famille, n'utiliser que sur du contenu sous licence libre, vos propres fichiers, ou avec un abonnement actif au service source (SoundCloud Go+, YouTube Premium). ## Installation ### Docker Compose (recommandé) ```yaml # docker-compose.yml services: music-service: image: ghcr.io/nicholasgasior/music-service:latest container_name: music-service restart: unless-stopped ports: - "8090:8090" environment: - TZ=Europe/Paris - SOURCES=youtube,soundcloud,bandcamp - AUDIO_FORMAT=mp3 - AUDIO_BITRATE=320 - METADATA_PROVIDER=musicbrainz volumes: - ./config:/app/config - /data/music/service:/downloads - ./cache:/app/cache ``` ### Installation manuelle ```bash git clone https://github.com/nicholasgasior/music-service cd music-service pip install -r requirements.txt # ffmpeg + yt-dlp système requis cp .env.example .env python -m music_service # API sur :8090, docs OpenAPI sur /docs ``` ## Configuration - **Sources activées** : liste CSV (`youtube,soundcloud,bandcamp`), désactivable individuellement. - **Provider de métadonnées** : `musicbrainz` (recommandé, gratuit, sans clé) ou `spotify` (nécessite client ID/secret). - **Format/bitrate** : `mp3`/`flac`/`opus`, bitrate cible pour les formats lossy. - **Cache** : pour ne pas re-scraper deux fois la même URL. - **Authentification source** : pour SoundCloud Go+ (auth OAuth) ou YouTube avec restrictions (cookies). - **Rate limit** : éviter de se faire bannir par les sources, par défaut conservateur. - **API key** : clé d'API pour `/download` (à mettre devant l'endpoint si exposé). ## Alternatives ### Open Source - [[app-music-grabber]] — du même auteur, **couplé Lidarr**, plus « produit fini ». - [[app-yubal]] — focus YouTube Music, UI plus polie. - [[app-spotizerr]] — focus Spotify → YouTube. - [[app-soulbeet]] — focus Soulseek (P2P). - **yt-dlp CLI** — bas-niveau, multi-sources natif, sans API. - **beets + plugins** — tagger + import depuis sources diverses, plus orienté « bibliothèque » que « downloader ». ### Propriétaires (ce que Music Service remplace) - **Spotify Premium offline** —只能在客户端读。 - **TuneMyMusic** — transfert, pas download. - **YouTube Premium offline** — idem. - **Bandcamp app** — pas d'agrégation multi-sources. - **Last.fm scrobbling** — métadonnées seulement, pas download. ## Sécurité - **Bus factor 1 absolu** : <10 ⭐, un seul auteur (nicholasgasior), **projet à surveiller de très près** ou à éviter en prod critique. Préparer un plan B (spotDL CLI, yt-dlp en script). - **Authentification source** : si vous stockez un token SoundCloud ou des cookies YouTube, ils donnent accès à votre compte — chiffrer `./config` au repos. - **API sans auth par défaut** : à ne jamais exposer sans reverse proxy authentifié, l'endpoint peut consommer votre bande passante. - **Scrapers fragiles** : les backends YouTube/SoundCloud changent régulièrement, attendez-vous à des casses à chaque mise à jour de la source. - **Légalité** : comme pour tous les outils du genre, vérifier votre juridiction (DMCA, EUCD). - **Logs** : contiennent les termes de recherche (RGPD), anonymiser avant export centralisé. ## Ressources - Repository : https://github.com/nicholasgasior/music-service - [[app-music-grabber]] — alternative plus mature du même auteur - yt-dlp : https://github.com/yt-dlp/yt-dlp - MusicBrainz API : https://musicbrainz.org/doc/MusicBrainz_API - selfh.st downloads : https://selfh.st/apps/?tag=downloads ## Pages Liées - [[cat-downloads]] — catégorie parente - [[app-music-grabber]] — alternative couplée Lidarr - [[app-yubal]] — alternative YouTube Music - [[app-spotizerr]] — alternative Spotify - [[app-lidarr]] — gestion bibliothèque - [[app-navidrome]] — serveur streaming - [[app-beets]] — tagger complémentaire - [[app-traefik]] — reverse proxy - [[recettes-docker-compose]] — templates - [[securisation-home-lab]] — bonnes pratiques