Skip to content
yt-dlp

yt-dlp Command Generator for SoundCloud

Build a yt-dlp command for SoundCloud tracks and sets, tagged and ready for a music library.

Optional. Leave it empty and the command ends with URL for you to fill in.

Your command

yt-dlp -x --audio-format mp3 --audio-quality 0 --embed-thumbnail --embed-metadata -o '%(uploader)s - %(title)s.%(ext)s' https://soundcloud.com/artist/track
Basics

Audio-only extracts the soundtrack and drops the video stream.

Video and quality

Caps the height. yt-dlp still picks the best stream at or below it.

The file type separate video and audio streams are merged into.

Advanced options (3)

Overrides the quality dropdown. For people who already know the format syntax.

Repackages the streams without re-encoding. Fast and lossless.

Re-encodes the video. Slow and lossy — only when remuxing will not do.

Audio

The file the audio is converted to.

VBR gives the best size-to-quality ratio; fixed bitrates are more predictable.

Subtitles

Embedding puts them inside the video; saving writes a separate .srt next to it.

Comma separated. Use all for every available language.

Playlists and channels

What to do when the URL belongs to both a video and a playlist.

Ranges and lists both work, for example 1-10,15 or -5::2 for every second item from the end.

Advanced options (1)

Records what has been downloaded so re-running skips it. The way to keep a channel in sync.

Sections and chapters
Advanced options (2)

A time range like *00:01:30-00:03:00, or a chapter name. The leading asterisk means it is a timestamp.

Metadata and artwork
Advanced options (3)
SponsorBlock

Cuts community-marked segments out of the file using SponsorBlock data.

Advanced options (1)

Keeps the segments but marks them, so you can skip them yourself.

Files and folders

Field names go in %(...)s. Slashes create folders.

Advanced options (4)

Where files are written. Combine with the template above for subfolders.

Maximum file name length in characters.

Filters
Advanced options (5)

YYYYMMDD, or a relative date like now-1month.

YYYYMMDD, or a relative date.

Skips anything smaller. Accepts 5M, 500K and similar.

Skips anything larger.

Number of files to download before stopping.

Network

For example 2M or 500K. Useful when you need the rest of your bandwidth.

Advanced options (5)

Speeds up fragmented streams. Four is a sensible starting point.

How many times to retry a failed piece. infinite is allowed.

HTTP, HTTPS or SOCKS proxy URL.

Makes requests look like a real browser. The usual fix for sudden 403 errors.

Login and cookies

Reads your logged-in session directly. Needed for private, age-restricted or members-only content.

Advanced options (1)

A Netscape-format cookies.txt exported from your browser.

Live streams
Advanced options (2)

Polls until a scheduled stream begins. MIN-MAX seconds between checks.

Workarounds
Advanced options (3)

Deprecated in favour of --add-headers. Kept because plenty of older guides still use it.

Deprecated in favour of --add-headers.

Site-specific switches, for example youtube:player_client=web.

Output and debugging
Advanced options (2)
Reset

Choosing an audio format

SoundCloud usually serves 128 kbps MP3, sometimes Opus. Converting a 128 kbps source to 320 kbps produces a larger file that sounds no better — 'best available' keeps the original and is the right default.

Cover art and tags are worth turning on: without them a downloaded set arrives as a folder of untitled files. Sets and playlists work with whole-playlist handling.

SoundCloud serves most streams at 128 kbps Opus, and the "Go+" tracks at 256 — but only to sessions it believes are entitled. If a track plays on the site at higher quality than yt-dlp fetches, cookies from a logged-in browser are usually the difference: the ladder your session sees is the ladder yt-dlp gets. The -F listing shows which formats exist for the track you are on.

The download URL is not always where the audio lives: SoundCloud serves media from a CDN behind short-lived signed links, so a media URL copied out of a browser tab works once and then never again — always hand yt-dlp the track page, and let it resolve. Reposts are a separate entry pointing at the same audio; the archive file keeps a set download from fetching them twice.

Sets (the SoundCloud name for playlists) are where the real value is. A set of two hundred tracks paginates, and the run takes a while; the archive file turns the second run into a delta of just the newly-added tracks. Keep-going-on-errors matters because sets accumulate deleted tracks — a producer pulls a sample, and without the switch one 404 aborts the other eighty tracks.

On naming: SoundCloud titles are long and carry the artist in the title, so the default artist-then-title template makes duplicates visible rather than silent — two files with the same name are usually two uploads of the same track at different bitrates. Cover art comes from the artwork URL and downloads at its largest size; if the art looks wrong, it was wrong on the platform too.

Frequently asked questions

What audio quality does SoundCloud provide?
Usually 128 kbps MP3, sometimes Opus. Converting a 128 kbps source to 320 kbps MP3 makes the file bigger and no better — choose 'best available' to keep the original.
Can I download a SoundCloud playlist?
Yes. Use the set or playlist URL with playlist handling set to the whole playlist, plus an archive file for repeat runs.
Do private or unlisted tracks work?
Secret-link tracks usually work if you pass the full URL. Truly private tracks need cookies from an account with access.