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

137 lines
6.1 KiB
Markdown

---
title: Soulbeet
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, downloads, soulseek, music, python, automation, slskd]
confidence: medium
contested: false
sources:
- https://selfh.st/apps/?tag=downloads
- https://github.com/terry90/soulbeet
---
# 🟣 Soulbeet
> Outil de **découverte musicale + téléchargement automatisé** pour le réseau peer-to-peer Soulseek, couplé à un frontend moderne et un système de watchlist d'artistes.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://github.com/terry90/soulbeet |
| **GitHub** | https://github.com/terry90/soulbeet |
| **License** | MIT |
| **Langage** | Python (FastAPI) + JS |
| **Étoiles** | 19 ⭐ |
| **Dernière MAJ** | 2025 |
| **Catégorie** | [[cat-downloads]] |
## Description
Soulbeet se positionne comme un **orchestrateur au-dessus de [[app-slskd]]** (le client Soulseek headless de référence). Là où slskd offre une UI austère pour faire des recherches manuelles sur le réseau Soulseek, Soulbeet ajoute l'**automation** : watchlist d'artistes, téléchargement des nouveaux albums dès qu'ils apparaissent sur Soulseek, scoring qualité, et interface web claire.
Le use case typique : vous avez 200 artistes « à découvrir » dans vos favoris, vous voulez que **toute leur discographie** soit récupérée automatiquement quand un membre Soulseek la partage. Soulbeet interroge slskd en continu, matche les résultats, applique des filtres (taille min, bitrate min, exclusion des compiles, exclusion des « low quality »), et lance les téléchargements. Les fichiers sont taggés et rangés proprement.
Différenciation vs les autres outils Soulseek : [[app-slskd]] est bas-niveau (recherche+download manuels), **slsk-batchdl** est un script CLI (pas d'UI, pas de watchlist persistante), et **Nicotine+** est un client desktop GTK sans orchestration. Soulbeet comble le manque d'une **« automation daemon »** avec UI web, parfaite pour un home lab.
**⚠️ Avertissement** : Soulseek est un réseau P2P, la disponibilité et la qualité dépendent des pairs. Les fichiers récupérés peuvent être **mal taggés** ou de qualité variable. Le réseau héberge aussi du contenu sous copyright dont le partage n'est pas toujours légal dans votre juridiction — vérifier les lois locales (en France, l'échange P2P de fichiers sous copyright est toléré pour usage privé dans certaines conditions, mais la mise à disposition est illégale).
## Installation
### Docker Compose (recommandé)
```yaml
# docker-compose.yml
services:
slskd:
image: slskd/slskd:latest
container_name: slskd
restart: unless-stopped
ports:
- "5030:5030"
environment:
- SLSKD_REMOTE_CONFIGURATION=true
volumes:
- ./slskd-config:/app
- /data/music/incoming:/downloads
soulbeet:
image: ghcr.io/terry90/soulbeet:latest
container_name: soulbeet
restart: unless-stopped
ports:
- "8765:8765"
environment:
- TZ=Europe/Paris
- SLSKD_URL=http://slskd:5030
- SLSKD_API_KEY=*** # remote config key de slskd
- WATCHLIST_AUTO_SCAN=true
- MIN_BITRATE=320
volumes:
- ./soulbeet-config:/app/config
- /data/music/library:/library
depends_on:
- slskd
```
### Installation manuelle
```bash
git clone https://github.com/terry90/soulbeet
cd soulbeet
pip install -r requirements.txt
cp .env.example .env # configurer SLSKD_URL + API key
python -m soulbeet
```
## Configuration
- **Connexion slskd** : URL interne + remote configuration key, à récupérer dans slskd.
- **Watchlist d'artistes** : ajouter les noms (sensible à la casse Soulseek), définir un scan interval.
- **Filtres qualité** : bitrate min (ex. 320 kbps pour MP3), exclusion des formats < 128 kbps, préférence FLAC > MP3.
- **Blacklist de termes** : exclure les fichiers contenant « karaoke », « live loud », « remastered bad », etc.
- **Auto-organize** : déplacer dans `/library/Artiste/Année - Album/## - Titre.ext`, comme Lidarr.
- **Doublons** : hash-based dedup pour ne pas retélécharger ce qui est déjà là.
## Alternatives
### Open Source
- [[app-slskd]] — le daemon sous-jacent, sans orchestration.
- **Nicotine+** — client desktop GTK, mature, pas self-hostable serveur.
- **slsk-batchdl** — script Python CLI, pas d'UI, pas de watchlist persistante.
- **beets** — tagger + organisateur, ne fait pas de download (couplage possible avec slsk-batchdl).
- [[app-lidarr]] — alternative « propre » (indexers torrents) sans réseau P2P privé.
### Propriétaires (ce que Soulbeet remplace)
- **SoulseekQT** (Windows-only) — client officiel, pas de watchlist automatisée.
- **Spotify + Discover Weekly** — découverte algorithmique, pas de fichier local.
- **Bandcamp + wishlist** — légal mais limité à un sous-ensemble d'artistes.
## Sécurité
- **Réseau P2P** : votre IP est exposée aux pairs Soulseek, **fortement recommandé** de passer par un **VPN** (WireGuard, [[app-tailscale]]) sur l'hôte slskd.
- **Bus factor 1** : projet jeune (~2 ans), un seul mainteneur principal (terry90), **risque d'abandon** non négligeable.
- **Projets jeunes** : <20 ⭐, peu de retours production, tester sur une watchlist limitée d'abord.
- **Fichiers reçus** : Soulseek n'a **aucune modération** de contenu, vérifier les fichiers (un .mp3 peut être un .exe renommé, rare mais possible).
- **API key slskd** : la remote configuration key donne un accès quasi-total à slskd, à protéger.
- **Logs** : contiennent les artistes et titres cherchés, RGPD : anonymiser avant export.
## Ressources
- Repository : https://github.com/terry90/soulbeet
- Soulseek réseau : https://www.soulseekqt.net/
- slskd (backend) : https://github.com/slskd/slskd
- Nicotine+ (alternative) : https://nicotine-plus.org/
## Pages Liées
- [[cat-downloads]] — catégorie parente
- [[app-slskd]] — backend Soulseek
- [[app-lidarr]] — alternative « propre »
- [[app-navidrome]] — serveur streaming musical
- [[app-beets]] — tagger complémentaire
- [[app-traefik]] — reverse proxy
- [[app-tailscale]] — VPN réseau
- [[recettes-docker-compose]] — templates
- [[securisation-home-lab]] — bonnes pratiques