← Все гайды AI Release
EN Подписаться на @ai_release1

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

Обновлено: 27.10.2026 · AI Release · @ai_release1
Как пользоваться yt-dlp на Windows: установка, команды и простая оболочка с интерфейсом

TL;DR

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

Требования и подготовка

Иллюстрация к разделу «Требования и подготовка»
Иллюстрация к разделу «Требования и подготовка»

Если вы раньше не работали в командной строке и не понимаете, почему команда «не найдена» или «не является внутренней или внешней командой», разбор базовых сценариев терминала есть в гайде Как подключить Android к Windows через ADB: команды, список устройств и ошибки — логика с PATH и вызовом exe там та же.

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

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

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

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

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

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

yt-dlp --version
ffmpeg -version

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

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

python -m pip install -U yt-dlp

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

Шаг 2. Команды и файл настроек

Иллюстрация к разделу «Шаг 2. Команды и файл настроек»
Иллюстрация к разделу «Шаг 2. Команды и файл настроек»

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

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

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

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. Создайте папку и файл:

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 в свою папку:

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. Оболочка с интерфейсом и проверка результата»
Иллюстрация к разделу «Шаг 3. Оболочка с интерфейсом и проверка результата»

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

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

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

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

@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 для окон):

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 -ExecutionPolicy Bypass -File .\yt-dlp-gui.ps1

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

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

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

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

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

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

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

Вы установили 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.

🤖 Кратко для ИИ