mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-02-09 23:55:10 -05:00
docs: reorganize README, add Docker quick start and tested clients
This commit is contained in:
12
.env.example
Normal file
12
.env.example
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Navidrome/Subsonic server URL
|
||||||
|
SUBSONIC_URL=http://localhost:4533
|
||||||
|
|
||||||
|
# Path where downloaded songs will be stored on the host
|
||||||
|
DOWNLOAD_PATH=./downloads
|
||||||
|
|
||||||
|
# Deezer ARL token (required)
|
||||||
|
# See README.md for instructions on how to get this token
|
||||||
|
DEEZER_ARL=your-deezer-arl-token
|
||||||
|
|
||||||
|
# Fallback ARL token (optional)
|
||||||
|
DEEZER_ARL_FALLBACK=
|
||||||
150
README.md
150
README.md
@@ -1,6 +1,6 @@
|
|||||||
# Octo-Fiesta
|
# Octo-Fiesta
|
||||||
|
|
||||||
A Subsonic API proxy server that transparently integrates Deezer as a music source. When a song is not available in your local Navidrome library, it is automatically fetched from Deezer, downloaded, and served to your Subsonic-compatible client.
|
A Subsonic API proxy server that transparently integrates Deezer as a music source. When a song is not available in your local Navidrome library, it is automatically fetched from Deezer, 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"?
|
## Why "Octo-Fiesta"?
|
||||||
|
|
||||||
@@ -17,6 +17,98 @@ The name was randomly generated by GitHub when creating the repository. We found
|
|||||||
- **Album Enrichment**: Local albums are enriched with missing tracks from Deezer
|
- **Album Enrichment**: Local albums are enriched with missing tracks from Deezer
|
||||||
- **Cover Art Proxy**: Serves cover art for external content transparently
|
- **Cover Art Proxy**: Serves cover art for external content transparently
|
||||||
|
|
||||||
|
## Tested Clients
|
||||||
|
|
||||||
|
### PC
|
||||||
|
|
||||||
|
- [Aonsoku](https://github.com/victoralvesf/aonsoku)
|
||||||
|
- [Subplayer](https://github.com/peguerosdc/subplayer)
|
||||||
|
- [Aurial](https://github.com/shrimpza/aurial)
|
||||||
|
|
||||||
|
### Android
|
||||||
|
|
||||||
|
- [Tempus](https://github.com/eddyizm/tempus)
|
||||||
|
- [Symfonium](https://symfonium.app/) (works as a standard Subsonic client, but Octo-Fiesta specific features like Deezer search are not supported)
|
||||||
|
- [Chora](https://github.com/CraftWorksMC/Chora) (works as a standard Subsonic client, but Octo-Fiesta specific features like Deezer search are not supported)
|
||||||
|
|
||||||
|
> **Want to improve client compatibility?** Pull requests are welcome!
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- A running Subsonic-compatible server (developed and tested with [Navidrome](https://www.navidrome.org/))
|
||||||
|
- A Deezer ARL token (for downloading)
|
||||||
|
- Docker and Docker Compose (recommended) **or** [.NET 9.0 SDK](https://dotnet.microsoft.com/download/dotnet/9.0) for manual installation
|
||||||
|
|
||||||
|
## Quick Start (Docker)
|
||||||
|
|
||||||
|
The easiest way to run Octo-Fiesta is with Docker Compose.
|
||||||
|
|
||||||
|
1. **Create your environment file**
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Edit the `.env` file** with your configuration:
|
||||||
|
```bash
|
||||||
|
# Navidrome/Subsonic server URL
|
||||||
|
SUBSONIC_URL=http://your-navidrome-server:4533
|
||||||
|
|
||||||
|
# Path where downloaded songs will be stored on the host
|
||||||
|
DOWNLOAD_PATH=./downloads
|
||||||
|
|
||||||
|
# Deezer ARL token (required)
|
||||||
|
DEEZER_ARL=your-deezer-arl-token
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Start the container**
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
The proxy will be available at `http://localhost:5274`.
|
||||||
|
|
||||||
|
4. **Configure your Subsonic client**
|
||||||
|
|
||||||
|
Point your Subsonic client to `http://localhost:5274` instead of your Navidrome server directly.
|
||||||
|
|
||||||
|
> **Tip**: Make sure the `DOWNLOAD_PATH` points to a directory that Navidrome can scan, so downloaded songs appear in your library.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### Subsonic Settings
|
||||||
|
|
||||||
|
| Setting | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `Subsonic:Url` | URL of your Navidrome/Subsonic server |
|
||||||
|
|
||||||
|
### Library Settings
|
||||||
|
|
||||||
|
| Setting | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `Library:DownloadPath` | Directory where downloaded songs are stored |
|
||||||
|
|
||||||
|
### Deezer Settings
|
||||||
|
|
||||||
|
| Setting | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `Deezer:Arl` | Your Deezer ARL token (required for downloads) |
|
||||||
|
| `Deezer:ArlFallback` | Backup ARL token if primary fails |
|
||||||
|
|
||||||
|
### Getting a Deezer ARL Token
|
||||||
|
|
||||||
|
1. Log in to [Deezer](https://www.deezer.com) in your browser
|
||||||
|
2. Open Developer Tools (F12)
|
||||||
|
3. Go to Application > Cookies > `https://www.deezer.com`
|
||||||
|
4. Find the `arl` cookie and copy its value
|
||||||
|
|
||||||
|
> **Note**: ARL tokens expire periodically and need to be refreshed.
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
- **Playlist Search**: Subsonic clients like Aonsoku filter playlists client-side from a cached `getPlaylists` call. Deezer playlists appear in global search (`search3`) but not in the Playlists tab filter.
|
||||||
|
- **Region Restrictions**: Some Deezer tracks may be unavailable depending on your region.
|
||||||
|
- **ARL Expiration**: Deezer ARL tokens expire and need periodic refresh.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -34,13 +126,9 @@ The name was randomly generated by GitHub when creating the repository. We found
|
|||||||
└─────────────────┘
|
└─────────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
## Requirements
|
## Manual Installation
|
||||||
|
|
||||||
- [.NET 9.0 SDK](https://dotnet.microsoft.com/download/dotnet/9.0)
|
If you prefer to run Octo-Fiesta without Docker:
|
||||||
- A running [Navidrome](https://www.navidrome.org/) server
|
|
||||||
- A Deezer ARL token (for downloading)
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
1. **Clone the repository**
|
1. **Clone the repository**
|
||||||
```bash
|
```bash
|
||||||
@@ -83,36 +171,6 @@ The name was randomly generated by GitHub when creating the repository. We found
|
|||||||
|
|
||||||
Point your Subsonic client to `http://localhost:5274` instead of your Navidrome server directly.
|
Point your Subsonic client to `http://localhost:5274` instead of your Navidrome server directly.
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
### Subsonic Settings
|
|
||||||
|
|
||||||
| Setting | Description |
|
|
||||||
|---------|-------------|
|
|
||||||
| `Subsonic:Url` | URL of your Navidrome/Subsonic server |
|
|
||||||
|
|
||||||
### Library Settings
|
|
||||||
|
|
||||||
| Setting | Description |
|
|
||||||
|---------|-------------|
|
|
||||||
| `Library:DownloadPath` | Directory where downloaded songs are stored |
|
|
||||||
|
|
||||||
### Deezer Settings
|
|
||||||
|
|
||||||
| Setting | Description |
|
|
||||||
|---------|-------------|
|
|
||||||
| `Deezer:Arl` | Your Deezer ARL token (required for downloads) |
|
|
||||||
| `Deezer:ArlFallback` | Backup ARL token if primary fails |
|
|
||||||
|
|
||||||
### Getting a Deezer ARL Token
|
|
||||||
|
|
||||||
1. Log in to [Deezer](https://www.deezer.com) in your browser
|
|
||||||
2. Open Developer Tools (F12)
|
|
||||||
3. Go to Application > Cookies > `https://www.deezer.com`
|
|
||||||
4. Find the `arl` cookie and copy its value
|
|
||||||
|
|
||||||
> **Note**: ARL tokens expire periodically and need to be refreshed.
|
|
||||||
|
|
||||||
## API Endpoints
|
## API Endpoints
|
||||||
|
|
||||||
The proxy implements the Subsonic API and adds transparent Deezer integration to:
|
The proxy implements the Subsonic API and adds transparent Deezer integration to:
|
||||||
@@ -210,24 +268,6 @@ octo-fiesta.Tests/
|
|||||||
- **TagLibSharp** - ID3 tag and cover art embedding
|
- **TagLibSharp** - ID3 tag and cover art embedding
|
||||||
- **Swashbuckle.AspNetCore** - Swagger/OpenAPI documentation
|
- **Swashbuckle.AspNetCore** - Swagger/OpenAPI documentation
|
||||||
|
|
||||||
## Tested Clients
|
|
||||||
|
|
||||||
### PC
|
|
||||||
|
|
||||||
- [Aonsoku](https://github.com/victoralvesf/aonsoku)
|
|
||||||
- [Subplayer](https://github.com/peguerosdc/subplayer)
|
|
||||||
- [Aurial](https://github.com/shrimpza/aurial)
|
|
||||||
|
|
||||||
### Android
|
|
||||||
|
|
||||||
- [Symfonium](https://symfonium.app/) (works as a standard Subsonic client, but Octo-Fiesta specific features like Deezer search are not supported)
|
|
||||||
|
|
||||||
## Limitations
|
|
||||||
|
|
||||||
- **Playlist Search**: Subsonic clients like Aonsoku filter playlists client-side from a cached `getPlaylists` call. Deezer playlists appear in global search (`search3`) but not in the Playlists tab filter.
|
|
||||||
- **Region Restrictions**: Some Deezer tracks may be unavailable depending on your region.
|
|
||||||
- **ARL Expiration**: Deezer ARL tokens expire and need periodic refresh.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT
|
MIT
|
||||||
|
|||||||
Reference in New Issue
Block a user