137 lines
6.1 KiB
Markdown
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
|