Skip to content
yt-dlp

yt-dlp Command Generator for Reddit

Build a yt-dlp command for Reddit videos — including the merge step that gives them sound.

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

Your command

yt-dlp --merge-output-format mp4 --no-playlist --embed-metadata https://www.reddit.com/r/videos/comments/xxxxxx/
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

Why Reddit videos come out silent

Reddit stores video and audio as separate files. If ffmpeg is missing, yt-dlp downloads the video track and nothing merges the audio in — the file plays, silently, and no error explains why.

Install ffmpeg and the preset here handles the rest. Gallery posts are treated as playlists, so whole-playlist handling gets every item.

The v.redd.it host is where most trouble starts. A direct v.redd.it link downloads cleanly, but the same video found through a subreddit feed or an old.reddit.com page arrives wrapped in a Reddit page URL, and older yt-dlp releases sometimes fail to unwrap it. Update first — yt-dlp -U — before changing any other setting: the extractors for Reddit in particular have been reworked several times, and a three-month-old binary is older than the current shape of the site.

Galleries are the other half. Reddit bundles image galleries with a video inside them, and yt-dlp presents that as a playlist of separate items — images one at a time, the video as its own entry. If you only wanted the video, turn playlists off and yt-dlp takes just the video; if you want everything, keep whole-playlist handling on and add the archive file so a re-run picks up only the items that failed the first time.

Quarantined and NSFW subreddits need cookies — the same browser-cookies option as anywhere else — because Reddit withholds the media URL from anonymous requests. Deleted posts are the one thing no option can reach: once a post is removed, the media CDN entry goes with it, and the mirrors that used to exist are long gone. What still works is the Wayback Machine for the page itself, though that is outside what yt-dlp fetches.

Reddit re-encodes everything it hosts, and the ceiling is low: v.redd.it tops out at 720p, so a height cap of 1080p finds nothing above 720p and returns the 720p file — that is the platform's limit, not a failed download. Audio-only is worth knowing too: -x on a Reddit video extracts the soundtrack the same as anywhere else, which is the fastest way to save just the audio from a post whose video you do not need.

Frequently asked questions

Why does my Reddit video have no sound?
Reddit stores video and audio separately, so they have to be merged — which needs ffmpeg. A silent file almost always means ffmpeg is missing.
Do NSFW posts work?
They need a logged-in session with the over-18 setting enabled. Supply it with --cookies-from-browser.
Can I download a whole gallery post?
Set playlist handling to the whole playlist; yt-dlp treats a gallery as a playlist.