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

6.7 KiB

title, created, updated, type, tags, confidence, contested, sources
title created updated type tags confidence contested sources
Octo-Fiesta 2026-06-07 2026-06-07 app
catalogue
music
music-streaming
subsonic
deezer
qobuz
csharp
dotnet
high false
https://selfh.st/apps/?tag=Music+Streaming
https://github.com/V1ck3s/octo-fiesta
https://www.reddit.com/r/selfhosted/comments/1q24538/octofiesta_a_subsonic_proxy_that_fills_the_gaps/

🎉 Octo-Fiesta

Proxy Subsonic en C#/.NET qui complète à la volée votre bibliothèque Navidrome avec Deezer, Qobuz, SquidWTF ou Yandex Music, télécharge la piste manquante en FLAC et la range proprement dans vos dossiers.

Métadonnée Valeur
Site web github.com/V1ck3s/octo-fiesta
GitHub https://github.com/V1ck3s/octo-fiesta
License GPL-3.0
Langage C# (.NET 9), 99.9 %
Étoiles ≈528 (47 sur selfh.st/apps)
Dernière MAJ 2026-05-15 (v0.9)
Catégorie cat-music

Description

Octo-Fiesta est un proxy Subsonic qui s'intercale entre votre client Subsonic (Aonsoku, Feishin, Substreamer, Navic…) et votre serveur Subsonic (app-navidrome le plus souvent). Quand le client demande une piste absente de la bibliothèque locale, Octo-Fiesta interroge les providers configurés (Deezer, Qobuz, SquidWTF, Yandex Music), télécharge le fichier en haute qualité (jusqu'au FLAC 24-bit / 192 kHz), tague correctement l'ID3 (titre, artiste, album, track number, année, label) et embed la pochette, puis range tout dans Artist/Album/Track à la racine de la bibliothèque. Au prochain scan, Navidrome voit la nouvelle piste comme locale.

L'idée est de fusionner la commodité d'un service de streaming (millions de titres) avec la propriété d'une bibliothèque personnelle auto-hébergée : tout ce que vous écoutez finit par devenir un fichier sur votre disque. La fonctionnalité « garder la musique pour toujours » est centrale : une piste jouée une fois sera là pour toujours, indépendamment de l'évolution des catalogues des providers. Octo-Fiesta supporte aussi les playlists externes : recherche, découverte, téléchargement d'une playlist Deezer/Qobuz/Yandex avec génération automatique d'un fichier m3u.

Architecture : un seul binaire .NET 9 (octo-fiesta) écoutant sur le port 5274 par défaut, plus un volume de téléchargement persistant. Les providers sont implémentés sous forme de plugins ; SquidWTF est le seul qui ne nécessite aucun identifiant (proxy public), les autres requièrent des credentials. Le wiki officiel détaille la procédure d'obtention de l'ARL token Deezer, du User ID/Token Qobuz et de l'OAuth Yandex Music (#access_token= dans l'URL de redirection).

Installation

Pré-requis

  • Un serveur app-navidrome (ou autre compatible Subsonic) déjà fonctionnel
  • Docker + Docker Compose (recommandé) ou .NET 9 SDK

Docker (recommandé)

# docker-compose.yml
services:
  octo-fiesta:
    image: ghcr.io/v1ck3s/octo-fiesta:latest
    container_name: octo-fiesta
    ports:
      - "5274:5274"
    environment:
      - DEEZER_ARL=votre_arl_token_ici
      - QOBUZ_USER_ID=123456
      - QOBUZ_TOKEN=votre_token
      - YANDEX_OAUTH_TOKEN=
      - NAVIDROME_BASE_URL=http://navidrome:4533
      - NAVIDROME_USER=admin
      - NAVIDROME_PASSWORD=admin
    volumes:
      - ./downloads:/downloads:rw
      - ./config:/config:rw
    restart: unless-stopped

Démarrage : docker compose up -d. Pointez ensuite votre client Subsonic sur http://IP:5274 au lieu de l'URL Navidrome.

Manuelle (.NET 9)

git clone https://github.com/V1ck3s/octo-fiesta.git
cd octo-fiesta
dotnet build -c Release
dotnet run --project src/OctoFiesta

Configuration

Variables d'environnement principales (ou .env.example recopié en .env) :

  • DEEZER_ARL : jeton ARL Deezer (cf. wiki officiel)
  • QOBUZ_USER_ID, QOBUZ_TOKEN : credentials Qobuz
  • YANDEX_OAUTH_TOKEN : token OAuth Yandex Music
  • NAVIDROME_BASE_URL / NAVIDROME_USER / NAVIDROME_PASSWORD : pour le scan post-téléchargement
  • DOWNLOAD_DIR : répertoire de stockage (défaut /downloads)
  • MAX_QUALITY : LOSSLESS (FLAC), HIGH (MP3 320), LOW
  • LIBRARY_DIR : chemin vu par Navidrome où ranger les fichiers

Penser à déclencher un scan Navidrome après chaque batch de téléchargements (manuel ou via l'API). Wiki officiel : guides d'obtention de credentials par provider, et tableau des qualités max par service.

Alternatives

Open Source : app-lightweight-music-server (C++/Subsonic), app-navidrome (serveur Subsonic cible), app-gonic (Subsonic Go), app-airsonic-advanced (Subsonic Java), app-listenarr (divers audio), Spotizerr (download Spotify), app-decypharr (arr-like proxy), streamrip (CLI Python multi-providers), app-soulbeet (sync Spotify → library), app-soulsync (variante), app-music-grabber (acquisition audio).

Propriétaire (que cette app remplace) : Spotify (qui ne télécharge pas vraiment), Deezer Premium (cloud only), Qobuz Studio (cloud only), Yandex Music Plus, Tidal HiFi (≈10 €/mois). Octo-Fiesta vous donne l'équivalent d'un Deezer HiFi avec rétention définitive et interopérable avec n'importe quel client Subsonic.

Sécurité

  • Les credentials (ARL, OAuth) sont sensibles : stockez-les dans un fichier .env non versionné, jamais dans docker-compose.yml commité.
  • Octo-Fiesta n'embarque pas d'authentification côté proxy : posez-le derrière un reverse proxy (NPM, Traefik) avec auth basique ou SSO (Authelia/Authentik).
  • Attention au légal : ne rediffusez pas les fichiers téléchargés, usage strictement personnel. Deezer/Qobuz interdisent la redistribution.
  • Volume ./downloads : vérifiez la taille, les FLAC 24-bit peuvent peser ~150 Mo/track.
  • Les tokens providers expirent (Deezer ~3 mois) : prévoyez une rotation et un monitoring.

Ressources

Pages Liées