Home Downloaders yt-dlp video downloader
Desktop app· Freemium · Win/Mac/Linux

yt-dlp video downloader Full review

yt-dlp is the open-source video downloader with the widest site coverage out there: 1,800+ sites, exact control over resolution, codec, audio track and subtitles, plus whole playlists and channels in one go. There is no GUI, everything runs on command-line flags. That is the barrier to entry, and it is also why it does things no other downloader can.

  • Bulk download
  • 4K and up
  • Audio only
  • No watermark
  • Subtitles
  • Open source
  • CLI
  • API

VideoDownloaderHub does not host files or proxy downloads, and links to official channels are nofollow. Score 9.4/10. Data checked September 2026.


What is yt-dlp?

yt-dlp is an open-source fork of youtube-dl, written in Python and shipped as a command-line tool. It is not trying to be a download button, it is a programmable media extraction engine: you hand it a URL and the spec you want, and it handles the parsing, the picking, the downloading and the merging.

The real difference from every other downloader is the maintenance model. The site parsing rules are community-maintained, one standalone extractor module per site, so when a platform changes its API only that one module gets patched. Two things follow from that: it covers far more sites than any commercial product (1,800+ right now), and it recovers from breakage faster than anything else, usually with a new release within days.

The trade-off is there is no GUI. Everything happens as a command in a terminal, and your first run costs maybe fifteen minutes of getting your head around a handful of core flags. If you would rather not touch a terminal, use its GUI front end Stacher, which does almost everything yt-dlp does.

How yt-dlp works

Understand the mechanics and you will know when it breaks and what to do about it, instead of just hitting retry.

Step 1: identify the site, call the right extractor

yt-dlp ships an extractor for every site it supports. Give it a URL and it matches the domain to a module, and that module's job is pulling the media address out of that site's page or API. This is exactly why a redesign on one platform only affects that one site instead of breaking the whole tool.

Step 2: list every available video and audio stream

Modern platforms usually keep the video track and the audio track stored separately (DASH), and above 1080p they are almost always split. The extractor hands back a manifest with the resolution, bitrate, codec and file size of every stream. You can print that list with -F.

Step 3: pick the stream on your own terms

-f is a small selection language. For example, bestvideo[height<=1080]+bestaudio<> means the best video track no higher than 1080p plus the best audio track. This is yt-dlp's biggest edge over any online tool: you are picking the stream, not choosing between two buttons somebody else gave you.

Step 4: download, then merge with FFmpeg

Once the video and audio tracks finish downloading separately, it calls FFmpeg to wrap them into a single file. So when you install yt-dlp, install FFmpeg alongside it. Skip that and high-resolution downloads fall back to a pre-muxed low-res version, because nothing is there to merge them. This is the single most common beginner trap: why am I only getting 360p?

When it breaks, and why

When a platform changes the signing algorithm on its playback URLs, swaps out encrypted parameters, or adds a bot check, that one extractor stops working for a while. There is exactly one fix: update to the latest build (yt-dlp -U). If the newest build still fails, check the project's issue list to see whether somebody already reported it.

How to use yt-dlp

Windows below. On macOS and Linux only the install step differs, every flag after that is identical.

  1. On Windows the easiest route is a package manager: winget install yt-dlp and winget install ffmpeg. FFmpeg is not optional. Without it you cannot get anything above 1080p.
  2. Run yt-dlp -F VIDEO_URL in your terminal. It lists the ID, resolution, codec and size of every available stream. Reading the list first beats downloading the wrong thing and starting over.
  3. The one you will use most is yt-dlp -f "bestvideo[height<=1080]+bestaudio" video_url="">
  4. Hand it a playlist or channel URL and it expands the list itself. Use -o "%(playlist_index)s-%(title)s.%(ext)s" to control filenames, and --playlist-items 1-20 to take just the first 20.
  5. Almost any error is worth trying yt-dlp -U against first. When a platform changes its API, the community usually ships a new build within days. If that does not do it, search the error text in the GitHub issues.

Platforms yt-dlp supports

These are results we confirmed in testing, not the list the project advertises. Partial usually means you only get lower resolutions, or it only works on public content.

yt-dlp platform support, tested September 2026
PlatformYesNotesPlatforms
YouTubeUp to 8K and HDR, multi-language audio tracks and subtitles, playlists and channels in bulkYouTube guide
TikTokPulls the watermark-free source stream, and handles a whole profile in bulkTikTok guide
InstagramPublic posts and Reels are solid, follower-only content needs cookiesInstagram guide
X / TwitterVideo and GIF both work, at the original bitrateX (Twitter) guide
FacebookPublic videos and Reels are fine, private groups need cookiesFacebook guide
LinkedInNative posts and event replays; Learning courses need a paid seat plus cookiesLinkedIn guide
Redditv.redd.it video and audio get muxed automatically; NSFW and quarantined subs need cookiesReddit guide
VimeoIncludes password-protected videos (pass the password flag) and players embedded on third-party sitesVimeo guide
BilibiliMulti-part collections, anime series, subtitles and danmaku all work, premium content needs cookiesBilibili guide
VKCovers both video and audioVK guide
DailymotionSolid supportDailymotion guide
PinterestVideo pins work, for images a dedicated extension is easierPinterest guide
1,790+ other sitesBroadcaster catch-up services, online courses, podcast platforms and more. The full list is in the project docs-

What yt-dlp downloads, where it runs, and bulk support

Three tables, three questions: what it grabs, where you run it, and how much at once.

What you can download
Content typeYesFormats and notes
VideoMP4 / WEBM / MKV, with your choice of codec (H.264 / VP9 / AV1) and a resolution cap
AudioCan pull the audio track on its own and transcode to MP3 / M4A / FLAC / OPUS
PhotosHandles some image sites and video thumbnails (--write-thumbnail), but it is not an image downloader
Captions / subsSubtitles, auto-generated ones included, export as SRT / VTT, and description plus tags can be written to JSON
How to use it, and on what
AccessYesNotes
Download onlineNo web version, this one runs locally
Browser extensionNo official extension
Desktop appIt is a CLI itself, for a GUI use Stacher
Mobile appAndroid has front ends like Seal, nothing workable on iOS
API / scriptingImportable as a Python library, or just call the CLI from a script
How well it does bulk
GranularityYesNotes
One link at a timeThe basics
Several links at onceChain several URLs after the command, or read them from a file with -a links.txt
A whole playlistPass the playlist URL straight in, and use --playlist-items to pick a range
A whole channel or profileYes, and pairing it with --download-archive gives you incremental runs that only fetch new uploads

Bulk means different things on different vendor sites: pasting several links at once, a whole playlist, or an ongoing channel subscription. The table above splits all three so nothing gets confused. More in Best picks for bulk downloads.

Why we picked yt-dlp

What it does well, including who shouldn't bother. Point 4 below is its weak spot.

Nothing comes close on site coverage

1,800+ sites, and not just the big social platforms. Broadcaster catch-up, online courses and podcast platforms are all in there. Commercial products typically sit somewhere between 20 and 100.

  • Every mainstream platform fully covered, Chinese sites included
  • Long-tail sites are community-maintained, with new ones every week
  • The same command works on every site, so you never switch tools
  • Hit an unsupported site and you can write your own extractor
Nothing comes close on site coverage

You pick the stream, not one of two buttons

-f is a full selection language: resolution cap, codec preference, bitrate, audio language and file size can all be conditions. An online tool usually gives you two or three presets.

  • Goes up to 8K / HDR / 60fps
  • Pick your H.264 / VP9 / AV1 codec
  • Multi-language audio tracks can be picked by language
  • Subtitles, auto-generated included, export separately as SRT
You pick the stream, not one of two buttons

Bulk and incremental runs are first-class

Playlists, channels and profiles all process as one job. --download-archive records what you already pulled, so the next run only fetches new items. That is what you want for tracking something long-term.

  • Playlists take --playlist-items to pick a range
  • --download-archive makes runs incremental, so nothing downloads twice
  • Filename templates take variables for index, upload date, channel name and more
  • Concurrent chunked downloads, noticeably faster on big files
Bulk and incremental runs are first-class

Who shouldn't bother

These are the weak spots, and saying so is more useful than hiding them. If two of the three below describe you, Stacher or 4K Video Downloader Plus is the better call.

  • You live in a terminal: if the command line is not your thing, the upfront cost is real
  • You install FFmpeg yourself: miss that step and you are stuck with low resolution
  • No download queue UI: progress and management all happen in the terminal
  • Mobile, iOS especially, is basically a non-starter
Who shouldn't bother

yt-dlp pros and cons

Pros
  • 1,800+ sites, far beyond any commercial product
  • Exact control over resolution, codec, audio track and subtitles
  • Best-in-class bulk and incremental downloads
  • Free and open source, no ads, no download caps, no watermarks
  • Ships updates most often, recovers fastest after a platform change
  • Embeddable in your own pipeline as a Python library
Cons and gotchas
  • Command line only, no GUI
  • FFmpeg has to be installed separately or you cannot get high resolutions
  • Login-gated content means exporting and passing in cookies by hand
  • The flag system is huge, so there is a learning curve on day one
  • No usable wrapper on iOS

yt-dlp FAQ

yt-dlp vs youtube-dl: what is the difference, and which should I use?

yt-dlp is a fork of youtube-dl, and right now it is clearly ahead on both maintenance activity and site coverage, while youtube-dl releases have slowed to a crawl. yt-dlp also adds SponsorBlock skipping, concurrent chunked downloads and a more complete format selection syntax.

The short answer: if you are starting out, just use yt-dlp. The flags are broadly compatible with youtube-dl anyway.

Why am I only getting 360p?

Nine times out of ten, FFmpeg is not installed. Above 1080p the video and audio tracks are stored separately and need FFmpeg to merge them. With no FFmpeg detected, yt-dlp falls back to a pre-muxed version, and those usually top out at 360p or 720p.

Install FFmpeg, confirm it is on your PATH, and run the command again.

How do I download audio only?

Add -x to extract the audio, and for a specific format add --audio-format mp3. Full command: yt-dlp -x --audio-format mp3 URL. To keep the best quality available, add --audio-quality 0. Transcoding leans on FFmpeg as well.

Can it download content that needs a login?

Yes, but you have to pass your browser's logged-in session through. Two ways: --cookies-from-browser chrome reads cookies straight from the browser, or export a cookies.txt with an extension and pass it in with --cookies cookies.txt.

Bear in mind that cookies are the same thing as your login credentials, so do not share them and do not commit them to a repo. And having access is not permission to redistribute. What you do with the file afterwards is still bound by the platform's terms.

Is it risky to run on my machine?

yt-dlp itself is open source and the code is public and auditable, so install it from the official GitHub Releases or your system package manager. The risk comes from two places: yt-dlp bundles downloaded off sketchy third-party sites, and unvetted third-party plugins.

It also runs some of the JavaScript a site returns in order to compute signatures, so point it at sites you trust.

I really do not want a command line. What else is there?

Plenty. Stacher is a GUI shell around yt-dlp. It is free, there are installers for Windows, macOS and Linux, and it does almost everything yt-dlp does. For a more polished commercial product, look at 4K Video Downloader Plus. On Android, go with Seal.

yt-dlp alternatives worth a look

If yt-dlp is not the right fit, these are the usual next stops.

  • Stacher

    Desktop app · free

    A GUI for yt-dlp that inherits nearly all of its site coverage and flag power, plus a visual download queue.

    When to switch?You like what yt-dlp does but do not want the terminal. Lowest switching cost of the lot, because it is the same engine underneath.

    Read the Stacher review
  • 4K Video Downloader Plus

    Desktop app · freemium

    A commercial product with more complete channel subscriptions and subtitle burn-in than the open-source options, and it works out of the box.

    When to switch?You mostly pull from the same few channels, want to track them long-term, and will pay for the convenience. Site coverage drops a lot.

    Read the 4K Video Downloader Plus review
  • Cobalt.tools

    Web tool · open source

    Paste a link in the browser and it downloads. No ads, no redirects, and there is an open API.

    When to switch?You only save a link now and then, and it is not worth installing anything locally. The cost is no bulk and fewer quality options.

    Read the Cobalt.tools review
  • Seal

    Android app · open source

    Also built on yt-dlp, and it takes links straight from the Android share menu.

    When to switch?Your main use case is on a phone. On desktop, stick with yt-dlp or Stacher.

    Read the Seal review
Still torn between a few? Use the quick compare table to see the differences, or read a head-to-head review for a straight verdict.