0537fa435adfdedc6139966bd6d86f238becea6c
streamrip-ui
Webapp für das CLI-Tool streamrip (nur Deezer, lokal Single-User ohne Login).
Struktur
backend/— FastAPI (nutztstreamripals Library, kein Subprocess)GET /api/health,GET /api/sourcesGET /api/search?type=track|album|artist|playlist&q=..&limit=..POST /api/downloads{source, media_type, id, quality, codec, folder, no_db}GET /api/downloads,GET /api/downloads/{id},GET /api/downloads/{id}/events(SSE)GET /api/history(downloads.db + failed_downloads.db, read-only)GET/PUT /api/config(volle config.toml, mit.bak-Backup + TOML-Validierung)GET /api/files?path=..(Download-Root, Path-Traversal blockiert)
frontend/— Next.js 14 (Suche mit 4 Tabs, Cover-Grid + Preview-Player, Download-Dialog, Queue, Verlauf mit Re-Download, Dateien, Einstellungen)
Start (lokal)
cd backend && python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
.venv/bin/python -m uvicorn app.main:app --port 8000
cd ../frontend && npm install && npm run dev
Frontend: http://localhost:3002, Backend: http://localhost:8000 (/api/* wird per Rewrite proxied, lokal via 127.0.0.1:8000, in Docker via BACKEND_URL=http://backend:8000).
Start (Docker)
docker compose up --build
Volumes: ~/.config/streamrip:/config (enthält config.toml + DBs), ~/StreamripDownloads:/downloads.
ARL
Einstellungen-Seite → „Deezer ARL“-Feld (zeigt nur Status + letzte 4 Zeichen, nie den vollen Wert). Speichern schreibt nur die arl-Zeile mit Backup. Alternativ weiter unten im vollen config.toml-Editor.
Hinweise
~/.local/bin/rip(pipx-Shim) ist auf diesem Rechner kaputt; das Backend importiertstreamripdirekt als Library und braucht den Shim nicht.- Fortschritt v1: Job-Status + Logs via SSE (Polling 0.5s im Backend, 2s-Refresh in der Queue-Seite). Echte %-Werte pro Track erfordern Hooks in streamrips Downloadable-Layer (Follow-up).
- Defaults (Qualität/Codec) liegen im Browser-LocalStorage (
srip-defaults), Qualität Default 2 (FLAC) + Fallback laut config.
Description
Webapp für streamrip (Deezer) – Next.js + FastAPI + Docker
308 KiB
0 Stars
1 Watchers
0 Forks
Languages
Python
54.2%
TypeScript
43.1%
Dockerfile
1.1%
CSS
1%
JavaScript
0.4%
Other
0.2%