---
title: 'How to Use yt-dlp: A Practical Guide (2026)'
description: A practical guide to using yt-dlp — install it, download a video, pick the format and quality, extract audio to MP3, and handle the errors that come up. With copy-paste commands.
url: https://vidkraken.com/blog/how-to-use-yt-dlp
author: Vid Kraken
published: '2026-07-17'
updated: '2026-07-17'
---

# How to Use yt-dlp: A Practical Guide (2026)

> A practical guide to using yt-dlp — install it, download a video, pick the format and quality, extract audio to MP3, and handle the errors that come up. With copy-paste commands.

Vid Kraken · Published 2026-07-17

Source: https://vidkraken.com/blog/how-to-use-yt-dlp

yt-dlp is the most capable command-line YouTube (and 1,000+ other sites) downloader — a maintained fork of the discontinued youtube-dl. This guide covers the commands you'll actually use day to day: installing, downloading, choosing formats, extracting audio, and dealing with the errors that inevitably come up.

## Install yt-dlp

**pip**

```bash
python3 -m pip install -U "yt-dlp[default]"
```

**Homebrew (macOS)**

```bash
brew install yt-dlp
```

**Windows (winget)**

```bash
winget install yt-dlp.yt-dlp
```

yt-dlp needs **ffmpeg** for merging high-quality video+audio and for audio conversion — install it too (`brew install ffmpeg`, `apt install ffmpeg`, or grab a build for Windows). Full details in our [install guide](https://vidkraken.com/blog/how-to-install-yt-dlp).

## Download a video

The simplest possible command downloads the best available quality:

```bash
yt-dlp "https://www.youtube.com/watch?v=VIDEO_ID"
```

> **Always quote the URL**
>
> YouTube URLs contain `&` and `?`, which your shell will otherwise interpret.
> Wrap the URL in quotes every time.

## Choose the format and quality

List everything available for a video, then pick by format ID:

```bash
yt-dlp -F "https://www.youtube.com/watch?v=VIDEO_ID"
```

More often you just want to cap the resolution. Use the `-S` (sort) flag:

**Best up to 1080p**

```bash
yt-dlp -S "res:1080" "https://www.youtube.com/watch?v=VIDEO_ID"
```

**Specific format IDs**

```bash
yt-dlp -f "137+140" "https://www.youtube.com/watch?v=VIDEO_ID"
```

**Best MP4**

```bash
yt-dlp -f "bv*[ext=mp4]+ba[ext=m4a]/b[ext=mp4]" "https://www.youtube.com/watch?v=VIDEO_ID"
```

## Extract audio (MP3)

To grab just the audio and convert it to MP3 (needs ffmpeg):

```bash
yt-dlp -x --audio-format mp3 --audio-quality 0 "https://www.youtube.com/watch?v=VIDEO_ID"
```

More audio options in the [audio-only guide](https://vidkraken.com/blog/yt-dlp-audio-only-mp3).

## Handy options you'll reuse

```bash
# Name files predictably
yt-dlp -o "%(title)s.%(ext)s" URL

# Download subtitles (and auto-generated captions)
yt-dlp --write-subs --write-auto-subs --sub-lang en URL

# Download a whole playlist
yt-dlp "https://www.youtube.com/playlist?list=PLAYLIST_ID"

# Download just a section
yt-dlp --download-sections "*00:01:30-00:02:45" URL
```

A fuller list lives in the [commands cheat sheet](https://vidkraken.com/blog/yt-dlp-commands).

## Keep it updated

YouTube changes constantly and breaks older yt-dlp builds, so update often:

```bash
yt-dlp -U   # or: pip install -U "yt-dlp[default]"
```

See the [update guide](https://vidkraken.com/blog/how-to-update-yt-dlp) if `-U` doesn't work for your install method.

## When it stops working

Two errors dominate, and both are YouTube's bot defenses rather than a mistake in your command:

- **`Sign in to confirm you're not a bot`** → see the [fix guide](https://vidkraken.com/blog/yt-dlp-sign-in-to-confirm-not-a-bot)
- **`HTTP Error 403: Forbidden`** → see the [403 fix guide](https://vidkraken.com/blog/yt-dlp-403-forbidden)

Both usually come down to updating yt-dlp, passing cookies, or getting off a flagged IP.

## When to use an API instead

yt-dlp is excellent for local, one-off, and hobby use. But running it *in production* means owning a moving target: re-updating every couple of weeks, rotating cookies, managing proxies, and patching around YouTube's changes. If downloading YouTube is a feature of *your* product, a managed API removes that maintenance entirely.

> **Skip the yt-dlp maintenance treadmill.**
>
> Send a URL, get a direct download from our CDN. We keep it working as YouTube
> changes — no updates, cookies, or proxies on your side.
>
> [Start free](https://vidkraken.com/login)

## Frequently asked questions

**Is yt-dlp the same as youtube-dl?**

yt-dlp is an actively maintained fork of youtube-dl with many more features, faster fixes, and better format handling. youtube-dl still exists but updates far more slowly, so most people use yt-dlp today.

**Do I need ffmpeg?**

For the highest-quality downloads yes — YouTube serves video and audio as separate streams, and yt-dlp uses ffmpeg to merge them. ffmpeg is also required to convert audio to MP3.

**Why does yt-dlp download low quality by default?**

It doesn't intentionally, but without ffmpeg it can only grab pre-merged streams, which top out lower. Install ffmpeg and use a format selector like -S "res:1080" to control quality.
