Skip to content

netz-sg/streamrip-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Buy Me A Coffee



streamrip-ui

streamrip-ui

A modern desktop GUI for streamrip
A polished interface for managing your media library — no terminal required.

Latest Release Build Status License Powered by streamrip


What is this?

streamrip-ui is an Electron-based desktop application that wraps nathom's streamrip library in a polished, dark-themed interface. It provides a visual experience designed for daily use, replacing the CLI workflow entirely.

Note: This project does not bundle or redistribute streamrip. It depends on a local checkout of the streamrip repository as its backend engine.

Features

  • Paste & Go — Drop a URL and get a full preview in one click
  • Real-Time Progress — Per-item progress bars with speed and ETA via a custom progress hook
  • Rich Previews — Album, track, artist, and playlist views with cover art, tracklists, and quality badges
  • Multi-Source Search — Search across supported platforms with instant results
  • Queue Management — Concurrent processing with queue, history, and wishlist
  • Full Configuration — Every streamrip setting exposed: quality, filepaths, filters, metadata, conversion, database
  • Keyboard ShortcutsCtrl+1—6 navigation, Ctrl+F search focus, Escape to dismiss
  • Drag & Drop — Drop URLs directly onto the window to start previewing
  • Backend Health Monitoring — Live status indicator with auto-reconnect
  • Toast Notifications — Status updates for every action — always in the loop

Tech Stack

Layer Technology
Shell Electron (frameless, custom titlebar)
Frontend React 19 · TypeScript · Tailwind CSS v4 · Zustand · Framer Motion
Backend Python · FastAPI · WebSocket · SQLite
Engine streamrip by @nathom

Screenshots

Search by URL
Paste a URL to instantly preview content with full metadata

Search Function
Search across multiple platforms with instant results

Download Section
Real-time progress tracking with speed and ETA

Download History
Complete history of all processed items

Saved / Wishlist
Save items to your wishlist for later

Settings
Full configuration — sources, quality, filepaths, and more

Installation

Download Installer

Go to Releases and download:

Platform File
Windows streamrip-ui-Setup-x.x.x.exe
macOS streamrip-ui-x.x.x.dmg

Prerequisites

  • Python 3.10+ installed and on your PATH
  • streamrip dependencies: the app will install them automatically on first launch, or you can install manually:
cd repo
pip install poetry
poetry install

Build from Source

# Clone the repo
git clone https://github.com/netz-sg/streamrip-ui.git
cd streamrip-ui

# Install frontend dependencies
cd desktop/frontend
npm install

# Install Electron dependencies
cd ..
npm install

# Run in development mode
npm start

# Build installer
npm run dist          # Current platform
npm run dist:win      # Windows .exe
npm run dist:mac      # macOS .dmg

Usage

  1. Launch the app — the Python backend starts automatically
  2. Paste a URL into the input bar on the Home page
  3. Preview the content with full metadata
  4. Process with one click — monitor progress in the queue
  5. Configure quality, output paths, filters, and more in Settings

Keyboard Shortcuts

Shortcut Action
Ctrl+1 Home
Ctrl+2 Downloads
Ctrl+3 Search
Ctrl+4 History
Ctrl+5 Wishlist
Ctrl+6 Settings
Ctrl+F Focus search / URL input
Escape Dismiss / blur

Project Structure

streamrip-ui/
├── desktop/
│   ├── electron/              # Electron main process
│   │   ├── main.js                # Window creation, backend spawn
│   │   └── preload.js             # Context bridge
│   ├── frontend/              # React + TypeScript + Tailwind
│   │   ├── public/                # Static assets & logo
│   │   └── src/
│   │       ├── api/               # HTTP & WebSocket clients
│   │       ├── components/
│   │       │   ├── layout/        # AppShell, Sidebar, TitleBar
│   │       │   └── previews/      # Album, Track, Artist, Playlist views
│   │       ├── hooks/             # useKeyboardShortcuts, etc.
│   │       ├── pages/             # Home, Downloads, Search, Settings, History, Wishlist
│   │       ├── stores/            # Zustand state management
│   │       └── styles/            # Global CSS
│   ├── backend/               # Python FastAPI server
│   │   ├── main.py                # App entry, health endpoint
│   │   ├── api/
│   │   │   ├── endpoints/         # REST routes (config, download, search, url, wishlist)
│   │   │   ├── schemas/           # Pydantic request/response models
│   │   │   └── websocket.py       # WebSocket for real-time progress
│   │   └── core/
│   │       ├── compat_check.py    # Startup compatibility validation
│   │       ├── download_manager.py
│   │       ├── progress_hook.py   # Real-time progress tracking
│   │       ├── streamrip_wrapper.py  # Hardened adapter layer
│   │       └── wishlist.py
│   └── tests/                 # Compatibility tests
├── repo/                      # streamrip library (git submodule)
└── .github/workflows/         # CI: compat checks, release builds

Credits

License

This project is licensed under the GNU General Public License v3.0 — the same license as streamrip.

Disclaimer

This application is provided for personal use only. The developers are not responsible for any misuse of this software.

About

A modern desktop GUI for streamrip — download hi-res music from Qobuz, TIDAL, Deezer & SoundCloud

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors