id = "streamrip" name = "Streamrip" homepage = "https://github.com/nathom/streamrip" description = "Streamrip: the all in one music downloader." executables = ["rip"] [dotfiles] # The official source uses click.get_app_dir("streamrip"), which resolves to # the platform-native per-user application-data directory, and stores the # configuration as config.toml there. https://github.com/nathom/streamrip/blob/dev/streamrip/config.py paths = ["[appData]/streamrip/config.toml"] secret = [] # The same official config source defines account credentials for Qobuz, # Tidal, Deezer and SoundCloud in this TOML file. [[dotfiles.secret_paths]] file = "[appData]/streamrip/config.toml" format = "toml" match = { key_path = ["qobuz.email_or_userid", "qobuz.password_or_token", "tidal.access_token", "tidal.refresh_token", "deezer.arl", "soundcloud.client_id"] } # streamrip's official source derives these folder and database paths from # Path.home() and its app directory; they are machine-local locations rather # than portable preferences. [[dotfiles.machine_lines]] file = "[appData]/streamrip/config.toml" format = "toml" match = { key_path = ["downloads.folder", "database.downloads_path", "database.failed_downloads_path", "youtube.video_downloads_folder"] } [commands] format = 1 label = "Download music" description = "Global download options for rip (folder, quality, codec) plus the url and search subcommands. Needs logged-in accounts in the streamrip config; config, database and lastfm subcommands are not covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "cli" kind = "manual" url = "https://github.com/nathom/streamrip/blob/dev/streamrip/rip/cli.py" revision = "2026-10-27" evidence = """ "-f", "--folder", help="The folder to download items into." "-q", "--quality", help="The maximum quality allowed to download", type=click.IntRange(min=0, max=4) "-c", "--codec", help="Convert the downloaded files to an audio codec (ALAC, FLAC, MP3, AAC, or OGG)" "--no-progress", help="Do not show progress bars" "-v", "--verbose", help="Enable verbose output (debug mode)" rip --codec mp3 url https://open.qobuz.com/album/0060253780968 rip --quality 3 url https://tidal.com/browse/album/147569387 """ [[commands.field]] id = "folder" label = "Download folder" type = "path" option = ["--folder", "-f"] path = { kind = "directory", role = "output" } sources = ["cli"] [[commands.field]] id = "quality" label = "Maximum quality" description = "0 = 128 kbps, 1 = 320 kbps, 2 = CD 16-bit, 3 = 24-bit up to 96 kHz, 4 = 24-bit up to 192 kHz (Qobuz only)." type = "enum" option = ["--quality", "-q"] choices = [ { value = "0", label = "0 - 128 kbps" }, { value = "1", label = "1 - 320 kbps" }, { value = "2", label = "2 - CD (16 bit, 44.1 kHz)" }, { value = "3", label = "3 - 24 bit, up to 96 kHz" }, { value = "4", label = "4 - 24 bit, up to 192 kHz" }, ] sources = ["cli"] [[commands.field]] id = "codec" label = "Convert to codec" type = "string" option = ["--codec", "-c"] suggestions = [{ value = "flac", label = "FLAC" }, { value = "alac", label = "ALAC" }, { value = "mp3", label = "MP3" }, { value = "aac", label = "AAC" }, { value = "ogg", label = "OGG" }] sources = ["cli"] [[commands.field]] id = "no_progress" label = "No progress bars" type = "boolean" option = ["--no-progress"] sources = ["cli"] [[commands.field]] id = "verbose" label = "Verbose (debug)" type = "boolean" option = ["--verbose", "-v"] sources = ["cli"] [[commands.task]] id = "options" label = "Set download options" fields = ["folder", "quality", "codec"] [[commands.group]] id = "basic" label = "Basic" fields = ["folder", "quality", "codec"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["no_progress", "verbose"] [[commands.subcommand]] path = ["url"] label = "Download from URLs" description = "Download albums, tracks, playlists or artists from Qobuz, Tidal, Deezer or SoundCloud URLs." [[commands.subcommand.source]] id = "cli" kind = "manual" url = "https://github.com/nathom/streamrip/blob/dev/streamrip/rip/cli.py" revision = "2026-10-27" evidence = """ @click.argument("urls", nargs=-1, required=True) rip url https://www.qobuz.com/us-en/album/rumours-fleetwood-mac/0603497941032 """ [[commands.subcommand.field]] id = "urls" label = "URLs" type = "url" position = 0 min = 1 multiple = true sources = ["cli"] [[commands.subcommand.task]] id = "download" label = "Download" fields = ["urls"] required = ["urls"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["urls"]