Initial vault setup
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user