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

6.1 KiB

title, created, updated, type, tags, confidence, contested, sources
title created updated type tags confidence contested sources
Music Service 2026-06-07 2026-06-07 app
catalogue
downloads
music
multi-source
python
api
medium false
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é)

# 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

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

Pages Liées