This project is being replaced by Spotizerr since it can do everything zotifarrr does and more, in a much, much better way.
Zotifarrr is a Zotify web wrapper, that allows you download music directly from Spotify to your local desktop and media player (such as Navidrome, Plexamp, or Jellyfin).
Note: The "MX" on the left side of the search bar is the custom name I chose for that particular account. As you can probably infer, this app supports multiple accounts at the same time
First create a Spotify credentials file using the 3rd-party librespot-auth
tool, this step has to be done in a PC/Laptop that has the Spotify desktop app installed.
In a Terminal, run:
# Clone the librespot-auth repo
git clone --depth 1 https://github.com/dspearson/librespot-auth.git
# Build the repo using a Rust Docker image
docker run --rm -v "$(pwd)/librespot-auth":/app -w /app rust:latest cargo build --release
./librespot-auth/target/release/librespot-auth --name "mySpotifyAccount1" --class=computer
# For Windows, run this command instead:
# .\librespot-auth\target\release\librespot-auth.exe --name "mySpotifyAccount1" --class=computer
- Now open the Spotify app
- Click on the "Connect to a device" icon
- Under the "Select Another Device" section, click "mySpotifyAccount1"
- This utility will create a
credentials.json
file
You will need to make the following changes to the credentials.json
file:
- Replace
"auth_type": 1
with"type":"AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS"
- Rename
"auth_data"
to"credentials"
In Terminal, this can be done using the sed
command:
file="credentials.json"
sed -i.bak -E '
s/"auth_type": *1/"type":"AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS"/;
s/"auth_data"/"credentials"/
' "$file" && rm -f "${file}.bak"
In a Terminal, run:
# Clone this repo
git clone --depth 1 https://github.com/Xoconoch/zotifarrr.git
# Copy your `credentials.json` into the cloned repo
mkdir -p ./zotifarrr/credentials/mySpotifyAccount1
cp credentials.json ./zotifarrr/credentials/mySpotifyAccount1
# If you generated credentials.json in another machine
mkdir -p ./zotifarrr/credentials/mySpotifyAccount1
touch ./zotifarrr/credentials/mySpotifyAccount1/credentials.json
echo {contents of your credentials.json generated elsewhere} > ./zotifarrr/credentials/mySpotifyAccount1/credentials.json
# ^^^^
# There are other ways of doing this, but the important goal of this step is to have a ./zotifarrr/credentials/mySpotifyAccount1/credentials.json file with valid credentials
# Build the Docker image
cd zotifarrr
docker build -t zotifarrr .
# Run the zotifarrr Docker container
docker compose up -d
Once the zotifarrr container is running:
-
Load your web browser, and browse to
http://localhost:7070
-
Modify
docker-compose.yaml
if you need to run the container on a different port