Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| services:spotizerr [2025/05/23 09:26] – willy | services:spotizerr [2025/12/02 15:04] (current) – [Spotizerr] willy | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Spotizerr ====== | ====== Spotizerr ====== | ||
| - | [[https://github.com/Xoconoch/spotizerr|Spotizerr]] is an amazing self-hosted web service that let's you download and search for music from Deezer and Spotify. | + | [[https://lavaforge.org/spotizerrphoenix/spotizerr-phoenix]] is an amazing self-hosted web service that let's you download and search for music from Deezer and Spotify. |
| While i **do not recomend** to use it, as it's against those services ToS, it seems to be working pretty well at least if you have a premium account. | While i **do not recomend** to use it, as it's against those services ToS, it seems to be working pretty well at least if you have a premium account. | ||
| + | Timeline: | ||
| + | * As of December 2025, development has resumed | ||
| + | * As of October 2025, due to being abandoned, a few critical bugs in latest release 4 caused it to malfunction. | ||
| + | * As of August 2025, the original Spotizerr GitHub account has been taken down by a DMCA request from Spotify. | ||
| ===== Installation ===== | ===== Installation ===== | ||
| Line 18: | Line 22: | ||
| chown spotizerr: | chown spotizerr: | ||
| su - spotizerr | su - spotizerr | ||
| - | mkdir creds | + | wget https://lavaforge.org/spotizerr/spotizerr/raw/branch/ |
| - | mkdir config | + | |
| - | wget https://raw.githubusercontent.com/Xoconoch/spotizerr/refs/heads/ | + | |
| </ | </ | ||
| Now edit the default docker compose to adapt it to your needs. You can follow my docker compose: | Now edit the default docker compose to adapt it to your needs. You can follow my docker compose: | ||
| <file - docker-compose.yml> | <file - docker-compose.yml> | ||
| - | name: spotizerr | + | name: spotizerr-phoenix |
| services: | services: | ||
| spotizerr: | spotizerr: | ||
| volumes: | volumes: | ||
| - | - / | + | - / |
| - / | - / | ||
| - / | - / | ||
| Line 35: | Line 37: | ||
| ports: | ports: | ||
| - 7171:7171 | - 7171:7171 | ||
| - | image: | + | image: |
| container_name: | container_name: | ||
| environment: | environment: | ||
| Line 76: | Line 78: | ||
| </ | </ | ||
| + | If you get an error starting up Spotizerr that says //Missing ' | ||
| + | < | ||
| + | " | ||
| + | </ | ||
| + | |||
| + | You can add it anywhere, and if the file itself is missing, just create it, but remeber it's a json file, so you will need to wrap that line between {}. | ||
| ===== Reverse Proxy ===== | ===== Reverse Proxy ===== | ||
| Line 85: | Line 93: | ||
| server_name spotizerr.mydomain.com; | server_name spotizerr.mydomain.com; | ||
| listen 443 ssl; | listen 443 ssl; | ||
| - | listen | + | |
| + | |||
| + | access_log / | ||
| + | error_log / | ||
| + | |||
| + | location / { | ||
| + | proxy_pass http:// | ||
| + | proxy_set_header Connection $http_connection; | ||
| + | proxy_set_header Upgrade $http_upgrade; | ||
| + | } | ||
| + | |||
| + | include com.mydomain/ | ||
| + | } | ||
| + | |||
| + | server { | ||
| + | server_name spotizerr.mydomain.com; | ||
| + | | ||
| http2 on; | http2 on; | ||
| Line 101: | Line 125: | ||
| } | } | ||
| - | include | + | include |
| } | } | ||
| - | |||
| - | Please note that Spotizerr does not provide **any** authentication or protection: you **must** put your SSO (see [[selfhost: | ||
| </ | </ | ||
| + | |||
| + | Please note that Spotizerr does not provide **any** authentication or protection: you **must** put your SSO (see [[selfhost: | ||
| ===== Configuration ===== | ===== Configuration ===== | ||
| - | You need to have your Spotify | + | Setup Spotizerr require a few steps: |
| + | * Setup spotify login | ||
| + | * Enable spotify API | ||
| + | * Setup deezer ARL token | ||
| + | |||
| + | Spotify | ||
| + | |||
| + | See [[https:// | ||
| + | |||
| + | **Note:** you //must// enable "real time downloading" | ||
| + | |||
| + | === Step 1: authenticate with Spotify === | ||
| + | You need to setup and run **librespot-auth**. The instructions are quite simple and can be run anywhere, not necessarily on the server itself: | ||
| <code bash> | <code bash> | ||
| it clone --depth 1 https:// | it clone --depth 1 https:// | ||
| - | podman run --rm -v " | + | cargo build --release |
| + | # Alternatively, | ||
| ./ | ./ | ||
| </ | </ | ||
| - | open the app and add the device called mySpotifyAccount1 | + | On Gentoo you should have cargo by default (it's part of rust) so you don't need to run a container for that. |
| - | This file has the following format: | + | |
| - | {" | + | The above command will create a file called // |
| + | < | ||
| + | {" | ||
| + | </ | ||
| - | The important ones are the " | + | Now open Spotizerr, go to the settings (the whell icon in the lower left corner) |
| + | * name: whatever you want | ||
| + | * username: copy "my username" | ||
| + | * credentials: copy "a long string" | ||
| - | In the terminal, you can directly print these parameters using jq: | + | === Step 2: link Spotify API === |
| - | jq -r '.username, .auth_data' | + | At this point, go to [[https:// |
| + | * app name: something that make sense for you | ||
| + | * app description: | ||
| + | * website: not needed, leave blank | ||
| + | * redirect URI: https:// | ||
| + | * API/SDK: i checked them all, that is probably not needed YMMV | ||
| + | * i unrestand and agree: check, of course | ||
| - | see [[https:// | + | Save, and copy both **ClientID** and **ClientSecret** strings. You need togo to Spotizerr page and add the two strings in your Spotify account API configuration. |
| - | work in progress | + | That's it! You can start searching and downloading stuff. |
| + | |||
| + | === Step 3: setup Deezer === | ||
| + | |||
| + | Open your browser, login to Deezer. Open the developer console (see your browser instructions... i suggest you use Firefox for this) go to the //storage// tab and copy the ARL cookie text string under the // | ||
| + | |||
| + | Go to Spotizerr config, add a new Deezer account and paste the ARL cookie text string. You can give any name you want to the account. | ||
| Line 154: | Line 208: | ||
| </ | </ | ||
| + | |||
| + | ===== Logrotate ===== | ||
| + | |||
| + | Add log rotation to Spotizerr logs. Drop the following under **/ | ||
| + | <file - spotizer> | ||
| + | / | ||
| + | missingok | ||
| + | notifempty | ||
| + | } | ||
| + | </ | ||