# Как пользоваться yt-dlp на Windows: установка, команды и простая оболочка с интерфейсом

> AI Release · @ai_release1 · https://ai-release.org/guides/kak-polzovatsya-yt-dlp-na-windows-ustanovka-komandy-i-p.html

## TL;DR

- Время выполнения: 15–20 минут
- Уровень сложности: Basic
- Понадобится: Windows 10 или 11 (x64), PowerShell 5.1 (встроен в систему), пакетный менеджер winget, утилиты `yt-dlp` и `ffmpeg`, 1–2 ГБ свободного места на диске

`yt-dlp` — консольная программа для скачивания видео и аудио с сайтов; работает из командной строки, без окна и кнопок. `ffmpeg` — консольный конвертер медиа, нужен, чтобы склеить видео- и аудиодорожку в один файл и перегнать звук в mp3. Ниже — установка, рабочие команды, файл настроек и простая оболочка с интерфейсом (bat-файл с перетаскиванием ссылки и PowerShell-окно с кнопкой).

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/kak-polzovatsya-yt-dlp-na-windows-ustanovka-komandy-i-p-ru-1.jpg?v=1793090566)


- Windows 10 или Windows 11, 64-битная. Проверить: `Win + R` → `winver` → в окне «Windows: сведения» смотрите строку «Версия».
- Права администратора на установку программ через winget (появится запрос UAC — подтвердите «Да»).
- Терминал: PowerShell или Windows Terminal. Оба запускаются через правый клик по «Пуск» → «Терминал» / «Windows PowerShell».
- Свободное место: 1–2 ГБ. Проверить: в проводнике правый клик по диску `C:` → «Свойства» → строка «Свободно».
- Разрешение скачивать контент: берите только то, на что у вас есть право (свои записи, материалы с открытой лицензией, разрешение автора) и соблюдайте правила площадки.

Если вы раньше не работали в командной строке и не понимаете, почему команда «не найдена» или «не является внутренней или внешней командой», разбор базовых сценариев терминала есть в гайде [Как подключить Android к Windows через ADB: команды, список устройств и ошибки](https://ai-release.org/guides/kak-podklyuchit-android-k-windows-cherez-adb-komandy-sp.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide) — логика с PATH и вызовом exe там та же.

## Шаг 1. Установка yt-dlp и ffmpeg

**Что сделать:** установите обе утилиты одной командой каждая и убедитесь, что они вызываются по имени из любой папки.

**Зачем:** `yt-dlp` скачивает, `ffmpeg` склеивает дорожки. Без второго программа скачает видео и звук отдельными файлами и не соберёт их в один.

**Как проверить:** команды `--version` печатают версию, а не ошибку.

```powershell
winget install --id yt-dlp.yt-dlp -e
winget install --id Gyan.FFmpeg -e
```

Закройте и заново откройте терминал — winget дописывает путь к программам в переменную окружения PATH (список папок, где Windows ищет exe по имени), и старый терминал этого изменения не увидит. Затем проверка:

```powershell
yt-dlp --version
ffmpeg -version
```

**Пример ожидаемого вывода:** `yt-dlp --version` печатает одну строку вида `2025.01.15` (у вас будет своя дата — это дата релиза), `ffmpeg -version` — несколько строк, первая начинается с `ffmpeg version`.

Альтернативы, если winget недоступен:

```powershell
python -m pip install -U yt-dlp
```

- Через pip ставится тот же `yt-dlp`, но обновлять его нужно этой же командой, а не ключом `-U` самой программы.
- Отдельный `yt-dlp.exe` со страницы релизов проекта на GitHub кладут в папку, которая уже есть в PATH (например, `C:\Users\<ваш-пользователь>\bin`). Точный адрес страницы релизов сверьте с официальной документацией проекта — он может меняться.

**Почему это работает:** Windows ищет программу по имени в папках из PATH. Установщик winget регистрирует эти папки сам, поэтому после перезапуска терминала имя `yt-dlp` доступно из любого каталога.

## Шаг 2. Команды и файл настроек
![Иллюстрация к разделу «Шаг 2. Команды и файл настроек»](https://ai-release.org/guides/img/kak-polzovatsya-yt-dlp-na-windows-ustanovka-komandy-i-p-ru-2.jpg?v=1793090574)


**Что сделать:** освоите 6 флагов, которые закрывают почти все задачи, и вынесете постоянные параметры в конфиг.

**Зачем:** без конфига вы каждый раз печатаете один и тот же длинный набор флагов; с конфигом достаточно `yt-dlp "<ссылка>"`.

**Как проверить:** тестовая команда без скачивания печатает название ролика.

```powershell
yt-dlp --simulate --get-title "https://www.youtube.com/watch?v=<ID>"
```

**Пример ожидаемого вывода:** одна строка с названием видео. `<ID>` — 11-символьный идентификатор из адреса, например в `https://www.youtube.com/watch?v=dQw4w9WgXcQ` это `dQw4w9WgXcQ`. `--simulate` означает «показать, но не качать».

Основные флаги:

| Флаг | Что делает | Пример |
|---|---|---|
| `-f` | выбор формата (качество, кодек) | `-f "bv*+ba/b"` — лучшее видео + лучшее аудио, иначе лучший единый файл |
| `-x` | извлечь только аудио | `yt-dlp -x --audio-format mp3 "<url>"` |
| `-P` | папка назначения | `-P "C:\Users\<ваш-пользователь>\Downloads\yt-dlp"` |
| `-o` | шаблон имени файла | `-o "%(title)s [%(id)s].%(ext)s"` |
| `--playlist-items` | выбрать элементы плейлиста | `--playlist-items 1-5` |
| `--write-subs --sub-langs` | скачать субтитры | `--write-subs --sub-langs "ru,en"` |
| `--cookies-from-browser` | взять cookies из браузера | `--cookies-from-browser chrome` |
| `-U` | обновить yt-dlp | `yt-dlp -U` |

Конфиг на Windows лежит в `%APPDATA%\yt-dlp\config.txt`. Создайте папку и файл:

```powershell
New-Item -ItemType Directory -Force -Path "$env:APPDATA\yt-dlp" | Out-Null
notepad "$env:APPDATA\yt-dlp\config.txt"
```

Содержимое файла (путь подставьте свой, с вашим именем пользователя):

```
-P "C:\Users\<ваш-пользователь>\Downloads\yt-dlp"
-o "%(title)s [%(id)s].%(ext)s"
-f "bv*+ba/b"
--merge-output-format mp4
--write-subs
--sub-langs "ru,en"
--no-overwrites
```

`%(title)s`, `%(id)s`, `%(ext)s` — переменные шаблона: название, идентификатор и расширение подставляются автоматически. `--no-overwrites` не даёт качать один и тот же файл дважды.

**Почему это работает:** параметры из `config.txt` подставляются к каждой команде как аргументы по умолчанию, а флаги в командной строке их перекрывают. Поэтому разовое `yt-dlp -x --audio-format mp3 "<url>"` всё равно скачает только звук.

**Пример полного вызова** — первые 5 роликов плейлиста в mp4 в свою папку:

```powershell
yt-dlp --playlist-items 1-5 -f "bv*+ba/b" --merge-output-format mp4 "https://www.youtube.com/playlist?list=<ID>"
```

Проверить, что конфиг подхватился: `yt-dlp -v --simulate "<url>"` — в начале вывода будет блок отладочной информации, где указан путь к пользовательскому конфигу (формулировка строки зависит от версии; если строки нет — сверьтесь с документацией по флагу `--config-locations`).

## Шаг 3. Оболочка с интерфейсом и проверка результата
![Иллюстрация к разделу «Шаг 3. Оболочка с интерфейсом и проверка результата»](https://ai-release.org/guides/img/kak-polzovatsya-yt-dlp-na-windows-ustanovka-komandy-i-p-ru-3.jpg?v=1793090581)


**Что сделать:** положите рядом с yt-dlp два файла — bat-скрипт для перетаскивания ссылки и PowerShell-окно с кнопкой и логом.

**Зачем:** bat-файл избавляет от набора команд, PowerShell-окно показывает ход скачивания и ошибки, не закрываясь после запуска.

**Как проверить:** ссылка, перетащенная на bat-файл, приводит к появлению mp4 в папке загрузки.

Файл `download.bat` (кодировка UTF-8):

```bat
@echo off
chcp 65001 >nul
if "%~1"=="" (
    set /p "URL=Вставьте ссылку и нажмите Enter: "
) else (
    set "URL=%~1"
)
yt-dlp "%URL%"
echo.
echo Готово. Файлы в папке из config.txt
pause
```

`%~1` — первый аргумент, то есть путь или ссылка, перетащенная на файл. Если аргумента нет, скрипт спросит ссылку вручную. `pause` оставляет окно открытым, чтобы вы прочитали ошибку.

Файл `yt-dlp-gui.ps1` — минимальное окно на WinForms (штатная библиотека Windows Forms для окон):

```powershell
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$form = New-Object System.Windows.Forms.Form
$form.Text = 'yt-dlp'
$form.Size = New-Object System.Drawing.Size(720, 440)

$txtUrl = New-Object System.Windows.Forms.TextBox
$txtUrl.Location = New-Object System.Drawing.Point(12, 12)
$txtUrl.Size = New-Object System.Drawing.Size(560, 24)
$txtUrl.Text = 'https://www.youtube.com/watch?v=<ID>'

$btn = New-Object System.Windows.Forms.Button
$btn.Text = 'Скачать'
$btn.Location = New-Object System.Drawing.Point(584, 10)
$btn.Size = New-Object System.Drawing.Size(110, 28)

$log = New-Object System.Windows.Forms.TextBox
$log.Location = New-Object System.Drawing.Point(12, 50)
$log.Size = New-Object System.Drawing.Size(682, 340)
$log.Multiline = $true
$log.ScrollBars = 'Vertical'
$log.ReadOnly = $true

$btn.Add_Click({
    $log.Text = "Запуск: yt-dlp $($txtUrl.Text)`r`n"
    $psi = New-Object System.Diagnostics.ProcessStartInfo
    $psi.FileName = 'yt-dlp'
    $psi.Arguments = "`"$($txtUrl.Text)`""
    $psi.RedirectStandardOutput = $true
    $psi.RedirectStandardError = $true
    $psi.UseShellExecute = $false
    $psi.CreateNoWindow = $true
    $p = [System.Diagnostics.Process]::Start($psi)
    $log.AppendText($p.StandardOutput.ReadToEnd())
    $log.AppendText($p.StandardError.ReadToEnd())
    $p.WaitForExit()
})

$form.Controls.AddRange(@($txtUrl, $btn, $log))
[void]$form.ShowDialog()
```

Запуск (обход политики выполнения скриптов, иначе файл не выполнится):

```powershell
powershell -ExecutionPolicy Bypass -File .\yt-dlp-gui.ps1
```

**Почему это работает:** скрипт запускает `yt-dlp` как отдельный процесс, перехватывает его стандартный вывод и вывод ошибок и печатает в текстовое поле. Конфиг при этом применяется автоматически — GUI не дублирует настройки.

Чек-лист приёмки:

- [ ] `yt-dlp --version` и `ffmpeg -version` печатают версии
- [ ] `--simulate --get-title` возвращает название ролика
- [ ] в `%APPDATA%\yt-dlp\config.txt` лежит ваш путь загрузки
- [ ] перетаскивание ссылки на `download.bat` создаёт файл в папке загрузки
- [ ] окно `yt-dlp-gui.ps1` показывает строки прогресса и не закрывается само

## Возможные проблемы и решения

**Проблема. Команда не находится после установки**

- Ошибка: `'yt-dlp' is not recognized as an internal or external command, operable program or batch file.`
- Причина: терминал открыт до установки, поэтому в его PATH ещё нет папки с программой; либо установка шла без прав администратора и PATH не обновился.
- Решение: закройте все окна терминала, откройте новое и повторите `yt-dlp --version`. Если ошибка осталась — проверьте PATH: `$env:PATH -split ';'` и найдите папку, куда установился exe; при необходимости запустите `winget install --id yt-dlp.yt-dlp -e` ещё раз от администратора. Быстро найти точный текст ошибки и разбор помогает ИИ-поиск в системе — см. [Как использовать ИИ-поиск в Windows 11: команды и настройка](https://ai-release.org/guides/kak-ispolzovat-ii-poisk-v-windows-11-komandy-i-nastroyk.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

**Проблема. Не собирается файл из видео и аудио**

- Ошибка: `ERROR: You have requested merging of multiple formats but ffmpeg is not installed` (текст может немного отличаться в зависимости от версии).
- Причина: выбран формат из двух дорожек (`-f "bv*+ba/b"`), а `ffmpeg` не установлен или не виден в PATH.
- Решение: `winget install --id Gyan.FFmpeg -e`, перезапустить терминал, проверить `ffmpeg -version`. Как временный обход — скачать единый файл: `yt-dlp -f "b" "<url>"`.

**Проблема. Скачивание обрывается на 403**

- Ошибка: `ERROR: unable to download video data: HTTP Error 403: Forbidden`
- Причина: устаревшая версия yt-dlp после изменений на стороне площадки либо запрос требует авторизации.
- Решение: обновить — `yt-dlp -U` (для установки через pip: `python -m pip install -U yt-dlp`), затем повторить. Если 403 остаётся, добавить cookies браузера: `yt-dlp --cookies-from-browser chrome "<url>"` (браузер должен быть закрыт).

## Резюме и следующие шаги

Вы установили `yt-dlp` и `ffmpeg`, вынесли постоянные параметры в `%APPDATA%\yt-dlp\config.txt` и получили две оболочки: bat-файл для перетаскивания ссылок и PowerShell-окно с кнопкой и логом. Дальше имеет смысл добавить в конфиг `--download-archive archive.txt`, чтобы уже скачанные ролики не качались повторно, и закрепить `download.bat` на панели задач.

## FAQ

**Нужен ли ffmpeg, если я качаю видео в одном файле?**
Для форматов, где видео и звук лежат отдельными дорожками, — да, без него сборка невозможна и появится ошибка про merging. Если принудительно указать единый формат (`-f "b"`), можно обойтись, но качество обычно ниже.

**Как скачать только звук в mp3?**
Команда `yt-dlp -x --audio-format mp3 "<url>"`. Флаг `-x` означает «извлечь аудио», `--audio-format mp3` задаёт формат; конвертацию выполняет ffmpeg.

**Где yt-dlp хранит настройки на Windows?**
В файле `%APPDATA%\yt-dlp\config.txt`, то есть в `C:\Users\<ваш-пользователь>\AppData\Roaming\yt-dlp\config.txt`. Параметры из него применяются к каждому запуску и перекрываются флагами в командной строке.

**Как обновить yt-dlp и почему это важно?**
`yt-dlp -U` — для установки через winget или отдельным exe. Для установки через pip ключ `-U` не работает: обновляйте командой `python -m pip install -U yt-dlp`. Обновление нужно, потому что площадки меняют защиту, и старые версии начинают отдавать ошибки вроде 403.
