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