V1ck3s/octo-fiesta

A Subsonic API proxy server that transparently integrates multiple music streaming providers as sources.

799

stars

322

commits

C#

primary language

Sep 11, 2026

updated

README

Octo-Fiesta

A Subsonic API proxy server that transparently integrates multiple music streaming providers as sources. When a song is not available in your local Navidrome library, it is automatically fetched from your configured provider, downloaded, and served to your Subsonic-compatible client. The downloaded song is then added to your library, making it available locally for future listens.

Why "Octo-Fiesta"?

The name was randomly generated by GitHub when creating the repository. We found it amusing and somewhat fitting for a music application. After all, "fiesta" evokes a party atmosphere, which goes well with music streaming. So we kept it!

Features

  • Multi-Provider Architecture: Pluggable music service system supporting multiple streaming providers
  • Transparent Proxy: Acts as a middleware between Subsonic clients and your Navidrome server
  • Seamless Integration: Automatically searches and streams music from your configured provider when not available locally
  • Automatic Downloads: Songs are downloaded on-the-fly and cached for future use
  • External Playlist Support: Search, discover, and download playlists with automatic M3U generation
  • Hi-Res Audio Support: Up to 24-bit/192kHz FLAC quality
  • Full Metadata Embedding: Complete ID3 tags and embedded cover art
  • Synced Lyrics: Time-synced lyrics for external tracks via LRCLIB (OpenSubsonic getLyricsBySongId), shown on the very first listen and saved as .lrc sidecars for downloaded files
  • Organized Library: Downloads saved in clean Artist/Album/Track folder structure

Supported Music Providers

ProviderCredentials RequiredMax QualityPlaylist Support
Deezer (default)YesFLAC 16-bitYes
QobuzYesFLAC 24-bit/192kHzYes
TidalYesFLAC 24-bit/192kHzYes
Yandex MusicYesFLAC 16-bitYes
SquidWTF (Qobuz, Tidal)NoSource-dependentTidal

⚠️ SquidWTF is deprecated. The upstream squid.wtf music services are down. The Qobuz backend no longer resolves and public Tidal instances only serve search results and 30-second previews. The Amazon Music and Deemix backends have been removed. The provider is kept for users running a self-hosted Tidal instance and may be removed in a future release. The default provider is now Deezer, and Tidal is available as a native provider that streams from your own account.

See the Supported Music Providers wiki page for detailed information.

Compatible Clients

See the Compatible Clients wiki page for details and incompatible clients.

Quick Start

Requirements

  • A running Navidrome server (or other Subsonic-compatible server)
  • Docker and Docker Compose (recommended) or .NET 9.0 SDK

Docker Installation

# Clone the repository
git clone https://github.com/V1ck3s/octo-fiesta.git
cd octo-fiesta

# Configure
cp .env.example .env
nano .env  # Edit with your settings

# Start
docker-compose up -d

The proxy will be available at http://localhost:5274. Point your Subsonic client to this URL instead of your Navidrome server.

See the Installation wiki page for detailed instructions including manual installation.

Configuration

See the Configuration wiki page for all available settings.

Getting Credentials

Architecture

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  Subsonic       │────▶│   Octo-Fiesta    │────▶│   Navidrome     │
│  Client         │◀────│   (Proxy)        │◀────│   Server        │
│  (Aonsoku)      │     │                  │     │                 │
└─────────────────┘     └────────┬─────────┘     └─────────────────┘
                                 │
                                 ▼
                        ┌─────────────────┐
                        │ Music Providers │
                        │  - Deezer       │
                        │  - Qobuz        │
                        │  - Tidal        │
                        │  - Yandex       │
                        └─────────────────┘

Limitations

  • Playlist Search: Streaming provider playlists appear in global search but may not show in the Playlists tab due to client-side filtering.
  • Playlist Display: Due to Subsonic API limitations, playlists appear at the end of the album list with a music note icon. See Playlists for details.
  • Token Expiration: Provider authentication tokens expire and need periodic refresh.

Documentation

Full documentation is available in the Wiki:

Need help? Please check the Wiki before opening an issue.

Contributing

Contributions are welcome! See the Development & Contributing guide.

# Build
dotnet build

# Run tests
dotnet test

License

GPL-3.0

Acknowledgments

Contributors

V1ck3s

224 commits

m8tec

28 commits

kamaeff

26 commits

Flobenki

10 commits

V1ck3s/octo-fiesta

A Subsonic API proxy server that transparently integrates multiple music streaming providers as sources.

799

stars

322

commits

C#

primary language

Sep 11, 2026

updated

README

Octo-Fiesta

A Subsonic API proxy server that transparently integrates multiple music streaming providers as sources. When a song is not available in your local Navidrome library, it is automatically fetched from your configured provider, downloaded, and served to your Subsonic-compatible client. The downloaded song is then added to your library, making it available locally for future listens.

Why "Octo-Fiesta"?

The name was randomly generated by GitHub when creating the repository. We found it amusing and somewhat fitting for a music application. After all, "fiesta" evokes a party atmosphere, which goes well with music streaming. So we kept it!

Features

  • Multi-Provider Architecture: Pluggable music service system supporting multiple streaming providers
  • Transparent Proxy: Acts as a middleware between Subsonic clients and your Navidrome server
  • Seamless Integration: Automatically searches and streams music from your configured provider when not available locally
  • Automatic Downloads: Songs are downloaded on-the-fly and cached for future use
  • External Playlist Support: Search, discover, and download playlists with automatic M3U generation
  • Hi-Res Audio Support: Up to 24-bit/192kHz FLAC quality
  • Full Metadata Embedding: Complete ID3 tags and embedded cover art
  • Synced Lyrics: Time-synced lyrics for external tracks via LRCLIB (OpenSubsonic getLyricsBySongId), shown on the very first listen and saved as .lrc sidecars for downloaded files
  • Organized Library: Downloads saved in clean Artist/Album/Track folder structure

Supported Music Providers

ProviderCredentials RequiredMax QualityPlaylist Support
Deezer (default)YesFLAC 16-bitYes
QobuzYesFLAC 24-bit/192kHzYes
TidalYesFLAC 24-bit/192kHzYes
Yandex MusicYesFLAC 16-bitYes
SquidWTF (Qobuz, Tidal)NoSource-dependentTidal

⚠️ SquidWTF is deprecated. The upstream squid.wtf music services are down. The Qobuz backend no longer resolves and public Tidal instances only serve search results and 30-second previews. The Amazon Music and Deemix backends have been removed. The provider is kept for users running a self-hosted Tidal instance and may be removed in a future release. The default provider is now Deezer, and Tidal is available as a native provider that streams from your own account.

See the Supported Music Providers wiki page for detailed information.

Compatible Clients

See the Compatible Clients wiki page for details and incompatible clients.

Quick Start

Requirements

  • A running Navidrome server (or other Subsonic-compatible server)
  • Docker and Docker Compose (recommended) or .NET 9.0 SDK

Docker Installation

# Clone the repository
git clone https://github.com/V1ck3s/octo-fiesta.git
cd octo-fiesta

# Configure
cp .env.example .env
nano .env  # Edit with your settings

# Start
docker-compose up -d

The proxy will be available at http://localhost:5274. Point your Subsonic client to this URL instead of your Navidrome server.

See the Installation wiki page for detailed instructions including manual installation.

Configuration

See the Configuration wiki page for all available settings.

Getting Credentials

Architecture

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  Subsonic       │────▶│   Octo-Fiesta    │────▶│   Navidrome     │
│  Client         │◀────│   (Proxy)        │◀────│   Server        │
│  (Aonsoku)      │     │                  │     │                 │
└─────────────────┘     └────────┬─────────┘     └─────────────────┘
                                 │
                                 ▼
                        ┌─────────────────┐
                        │ Music Providers │
                        │  - Deezer       │
                        │  - Qobuz        │
                        │  - Tidal        │
                        │  - Yandex       │
                        └─────────────────┘

Limitations

  • Playlist Search: Streaming provider playlists appear in global search but may not show in the Playlists tab due to client-side filtering.
  • Playlist Display: Due to Subsonic API limitations, playlists appear at the end of the album list with a music note icon. See Playlists for details.
  • Token Expiration: Provider authentication tokens expire and need periodic refresh.

Documentation

Full documentation is available in the Wiki:

Need help? Please check the Wiki before opening an issue.

Contributing

Contributions are welcome! See the Development & Contributing guide.

# Build
dotnet build

# Run tests
dotnet test

License

GPL-3.0

Acknowledgments

Contributors

V1ck3s

224 commits

m8tec

28 commits

kamaeff

26 commits

Flobenki

10 commits

Languages

C#

99.9%