Files
2026-06-09 18:40:21 +02:00

127 lines
6.0 KiB
Markdown

---
title: Spotizerr
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, downloads, spotify, music, python, yt-dlp]
confidence: medium
contested: false
sources:
- https://selfh.st/apps/?tag=downloads
- https://github.com/spotizerr/spotizerr
---
# 🟢 Spotizerr
> Téléchargeur de playlists et morceaux Spotify : récupère les métadonnées via l'API Spotify, puis télécharge les fichiers audio depuis YouTube Music via yt-dlp, avec taggage automatique.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://github.com/spotizerr/spotizerr |
| **GitHub** | https://github.com/spotizerr/spotizerr |
| **License** | MIT |
| **Langage** | Python (FastAPI) |
| **Étoiles** | 6 ⭐ |
| **Dernière MAJ** | 2025 |
| **Catégorie** | [[cat-downloads]] |
## Description
Spotizerr fait partie de la famille des **« Spotify → YouTube downloader »**, comme **spotDL** (le plus connu en CLI) ou [[app-yubal]] (focus YT Music). Son créneau : offrir une **API REST simple** + une UI web minimale pour automatiser la résolution de playlists Spotify en fichiers audio locaux, **sans compte YouTube**.
Le flow : on colle une URL de playlist/album/track Spotify → Spotizerr récupère la liste des titres via l'API publique Spotify (gratuit, pas d'auth pour la lecture) → pour chaque titre, il construit une recherche YouTube Music ciblée (artiste + titre) → délègue à **yt-dlp** pour le téléchargement audio → applique les tags ID3 (titre, artiste, album, n° de piste, année, cover) → range proprement.
Différenciation vs spotDL : spotDL est une CLI puissante mais sans UI, et demande souvent un setup Python/venv. Spotizerr mise sur le **« tout en un conteneur »** et une **API REST** (parfaite pour scripter, intégrer à [[app-navidrome]] via script d'import, ou déclencher depuis [[app-home-assistant]]). L'UI est volontairement spartiate.
**⚠️ Limitations honnêtes** : le matching Spotify → YouTube n'est pas parfait (remaster, live, version acoustique = mismatch possible). La qualité dépend de ce qui est disponible sur YouTube. Pour du **vrai CD-quality**, il faut passer par des services payants (Qobuz, Tidal via leur API) ou des outils comme [[app-music-grabber]] couplé à Lidarr.
**⚠️ Avertissement légal** : contourner les DRM d'un service de streaming pour télécharger sans abonnement est **illégal** dans la plupart des juridictions (DMCA, EU Copyright Directive). À utiliser uniquement sur du contenu sous licence libre, ou vos propres uploads, ou avec un abonnement actif (certains outils).
## Installation
### Docker Compose (recommandé)
```yaml
# docker-compose.yml
services:
spotizerr:
image: ghcr.io/spotizerr/spotizerr:latest
container_name: spotizerr
restart: unless-stopped
ports:
- "8083:8083"
environment:
- TZ=Europe/Paris
- SPOTIFY_CLIENT_ID=*** # pour métadonnées enrichies
- SPOTIFY_CLIENT_SECRET=***
- AUDIO_FORMAT=mp3
- AUDIO_QUALITY=320
- DOWNLOAD_DIR=/downloads
volumes:
- ./config:/app/config
- /data/music/spotizerr:/downloads
```
### Installation manuelle
```bash
git clone https://github.com/spotizerr/spotizerr
cd spotizerr
pip install -r requirements.txt # nécessite ffmpeg système
cp .env.example .env
python -m spotizerr
# API sur :8083, docs sur /docs (Swagger auto)
```
## Configuration
- **Spotify API** : client ID + secret (gratuit, dashboard developer.spotify.com) pour métadonnées enrichies, facultatif en lecture publique.
- **Format audio** : `mp3`, `flac`, `opus`, `m4a``mp3` 320 kbps est le défaut le plus compatible.
- **Quality preference** : `best` (yt-dlp default) ou forcer un bitrate.
- **Playlist sync** : une URL playlist peut être monitorée, re-téléchargée si de nouveaux tracks apparaissent.
- **Hooks** : script post-download, webhook optionnel.
- **API REST** : `POST /download` avec JSON `{url, format}` pour scripter.
## Alternatives
### Open Source
- **spotDL** (spotify-downloader) — la référence CLI, plus mature, plus de fonctionnalités (sync playlists, métadonnées complètes), pas d'UI web.
- [[app-yubal]] — équivalent côté YouTube Music (sans dépendance Spotify API).
- [[app-music-grabber]] — focus Lidarr, plus orienté backfill.
- [[app-jellyfin]] + **Jellyfin Spotify plugin** — streaming sans download.
- **SpotTube** (Kotlin, desktop) — UX client, pas self-hosted serveur.
### Propriétaires (ce que Spotizerr remplace)
- **Spotify Premium offline** —只能在客户端读,无法在别处读。
- **TuneMyMusic / Soundiiz** — transfert entre services, pas download local.
- **Tidal HiFi** — qualité supérieure (FLAC vrai), abonnement cher.
## Sécurité
- **Bus factor 1, projet très jeune** (< 10 ⭐, ~1 an) : **risque d'abandon élevé**, ne pas miser son installation musicale dessus en prod.
- **Spotify API credentials** : client secret dans `./config`, à chiffrer. Ne pas commit.
- **Cookies** : si vous passez par votre compte Spotify (auth), ils donnent accès à votre compte.
- **Légalité** : vérifier votre juridiction, en UE la directive Copyright 2019/790 permet le téléchargement pour usage privé dans certains cas limités (recherche).
- **Pas d'auth par défaut sur l'API** : ne pas exposer `:8083` sur Internet, l'API peut déclencher des downloads arbitraires.
- **yt-dlp dépendance** : sensible aux changements YouTube, peut casser du jour au lendemain (rare mais historique).
## Ressources
- Repository : https://github.com/spotizerr/spotizerr
- spotDL (alternative mature) : https://github.com/spotdl/spotify-downloader
- yt-dlp : https://github.com/yt-dlp/yt-dlp
- Spotify API dashboard : https://developer.spotify.com/dashboard
## Pages Liées
- [[cat-downloads]] — catégorie parente
- [[app-yubal]] — alternative YouTube Music
- [[app-music-grabber]] — alternative Lidarr
- [[app-lidarr]] — gestion bibliothèque
- [[app-navidrome]] — serveur streaming
- [[app-traefik]] — reverse proxy
- [[app-authentik]] — SSO
- [[recettes-docker-compose]] — templates
- [[securisation-home-lab]] — bonnes pratiques