id = "streamrip"
name = "Streamrip"
homepage = "https://github.com/nathom/streamrip"
description = "Streamrip: the all in one music downloader."
executables = ["rip"]
[dotfiles]
paths = ["[appData]/streamrip/config.toml"]
secret = []
[[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"] }
[[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"]