explaingit

nathom/streamrip

4,643PythonAudience · generalComplexity · 2/5Setup · moderate

TLDR

A command-line tool for downloading music from Qobuz, Tidal, Deezer, and SoundCloud, supporting everything from compressed audio up to 24-bit high-resolution files and full artist discographies.

Mindmap

mindmap
  root((streamrip))
    Supported Sources
      Qobuz
      Tidal
      Deezer
      SoundCloud
    Audio Quality
      128kbps compressed
      CD quality 16bit
      Hi-Res 24bit 192kHz
    Features
      Concurrent downloads
      Download database
      Spotify playlist import
    Setup
      Python 3.10 plus
      ffmpeg required
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Download a full artist discography from Tidal or Qobuz in high-resolution audio to your computer

USE CASE 2

Save a Spotify or Apple Music playlist by routing it through a supported service like Deezer or Qobuz

USE CASE 3

Batch download albums concurrently with automatic deduplication so already-downloaded tracks are skipped

USE CASE 4

Configure output folder layout and file naming to match your local music library structure

Tech stack

Pythonffmpeg

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Python 3.10 or later plus ffmpeg installed separately, highest quality downloads also need a paid Qobuz or Tidal subscription.

In plain English

Streamrip is a command-line tool for downloading music from Qobuz, Tidal, Deezer, and SoundCloud. You give it a link to a track, album, playlist, or an artist's full discography, and it downloads the files to your computer. It also integrates with youtube-dl for additional sources. The tool supports multiple audio quality levels, ranging from compressed 128 kbps files up to 24-bit, 192 kHz high-resolution audio. The highest quality options require a paid subscription on Qobuz or Tidal. The README notes that anything above CD quality (16-bit, 44.1 kHz) is generally a waste of storage space since humans cannot hear the difference at higher sampling rates. You can tell the tool which quality level you want using a number from 0 to 4 when running a command. Streamrip can also download Spotify and Apple Music playlists indirectly, by pulling the track list through last.fm and then downloading those tracks from supported sources. It keeps a local database of what it has already downloaded so it does not download the same track twice. Downloads run concurrently, meaning multiple files are pulled at once to speed things up. Installing requires Python 3.10 or later, plus a tool called ffmpeg for file conversion. Once installed, the main command is simply rip. You can search for music interactively, download by pasting a URL, or open a config file to customize behavior like output format, folder layout, and rate limits. A wiki with detailed instructions is available for people who run into trouble during setup. The project is open to contributions via pull requests to the development branch. The author asks that bug reports follow the provided templates, and notes that issues submitted without following those templates will be closed without response.

Copy-paste prompts

Prompt 1
I want to download an entire artist's discography from Qobuz using streamrip. Show me the rip command and explain what quality levels 0 through 4 mean so I can choose the right one for my subscription
Prompt 2
How do I configure streamrip to download my Spotify playlist at CD quality by routing it through Deezer, including setting a custom output folder and FLAC as the file format?
Prompt 3
I want to set up a streamrip config file that organizes downloads into a Plex-friendly folder structure. Show me which config keys to change and what values to use
Prompt 4
How do I use streamrip's interactive search mode to find and preview albums before downloading, and how do I check my download database to see what I have already saved?
Open on GitHub → Explain another repo

← nathom on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.