A web interface for Streamrip, providing a GUI for downloading music from various streaming services.
Streamrip is lit but CLI-only. Having to SSH into my stupid little server each time I wanted to download a track was too much effort for me. (Mainly Quboz for me low key I don't even know if Tidal/Deezer work because I don't have accounts for them)
Intended to be used for Docker/Docker-Compose but you can run it locally too.
- Multi-Service Support: Download from Qobuz, Tidal, Deezer, SoundCloud
- Built-in Search: Search and download directly from the web interface
- Download Management: Track active downloads, view history, and browse downloaded files
- Configuration Editor: Edit streamrip settings directly from the web interface
- Docker Ready: Easy deployment with Docker
- Python 3.11+ (if running without Docker)
- Docker and Docker Compose (for containerized deployment)
- Valid streaming service credentials configured in streamrip
You MUST install and configure Streamrip first.
- Install Streamrip:
pip install streamrip- Configure Streamrip:
rip configFollow the Streamrip configuration guide to set up your credentials.
1: Add this to your docker-compose.yml
streamrip:
image: anoddname/streamrip-web-gui:latest
container_name: streamrip-web
user: "1000:1000"
environment:
- HOME=/config
- XDG_CONFIG_HOME=/config
- STREAMRIP_CONFIG=/config/streamrip/config.toml
- DOWNLOAD_DIR=/music
- MAX_CONCURRENT_DOWNLOADS=1
volumes:
- /home/YOURUSERNAME/.config/streamrip:/config/streamrip:rw
- /home/YOURUSERNAME/media-server/data/Music:/music:rw
ports:
- "5002:5000"
restart: unless-stopped
2: run with docker-compose up
3: Access the web interface at http://localhost:5002
- Clone the repository:
git clone https://github.com/anoddname/streamrip-web-gui.git
cd streamrip-web- Create a
docker-compose.ymlfile:
services:
streamrip:
build: ./streamrip-web
container_name: streamrip
user: "1000:1000"
environment:
- HOME=/config
- XDG_CONFIG_HOME=/config
- STREAMRIP_CONFIG=/config/streamrip/config.toml
- DOWNLOAD_DIR=/music
- MAX_CONCURRENT_DOWNLOADS=2
volumes:
- /home/YOURUSERNAME/.config/streamrip:/config/streamrip:rw
- /home/YOURUSERNAME/media-server/data/Music:/music:rw
ports:
- "5002:5000"
restart: unless-stopped- Build and run:
docker-compose up -d --build- Access the web interface at
http://localhost:5002
- Clone this repository:
git clone https://github.com/anoddname/streamrip-web.git
cd streamrip-web- Install dependencies:
pip install flask gunicorn requests- Run the application:
python app.pyBefore using Streamrip Web, you need to configure streamrip with your streaming service credentials:
- Qobuz: Requires email and password (or TOKEN)
- Tidal: Requires email and password
- Deezer: Requires ARL
- SoundCloud: Works without authentication
Check the Streamrip documentation for instructions.
- Paste a streaming service URL in the input field
- Select quality (MP3 128/320 or FLAC 16/24-bit)
- Click DOWNLOAD
- Select a streaming service from the dropdown
- Choose search type (Albums, Tracks, or Artists)
- Enter your search query
- Click on DOWNLOAD next to any result
- Searches will use the QUALITY from the URL paste dropdown.
-
"Config file not found": Make sure streamrip is properly configured. Run
rip configto create a configuration file. Also check locations. -
Downloads failing/Searches timing out: Check that your streaming service credentials are valid and properly configured in streamrip. Tidal will timeout, Deezer will throw errors.
-
Downloads disappearing from Active DL/History tabs: The files were still prolly downloaded, dont worry about it I'll fix it later it was pissing me off
-
No images when run locally: CORS issue
-
Unable to open database file/Failed to parse JSON Error: This occurs when the config file inside the container has wrong paths. Fix it with:
docker exec -it streamrip /bin/bash
sed -i 's|/home/YOURUSERNAME/StreamripDownloads|/music|g' /config/streamrip/config.toml
sed -i 's|/home/YOURUSERNAME/.config/streamrip/|/config/streamrip/|g' /config/streamrip/config.toml
exitNote to replace YOURUSERNAME with, you guessed it, your username.
This tool is for educational purposes only. Ensure you comply with the terms of service of the streaming platforms you use. Support artists by purchasing their music.
Fueled by spite