Что нового

Как скачать видео с YouTube в Windows через yt-dlp: MP4 со звуком

1789139197718.png


Мне понадобилось скачать видео с YouTube обычным файлом на компьютер. Для этой задачи я выбрал yt-dlp: установил необходимые программы через WinGet и запустил скачивание из PowerShell.

Что я использую​


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

  • yt-dlp — программа, которая получает информацию о ролике и скачивает доступные видео- и аудиопотоки.
  • FFmpeg — объединяет отдельно скачанные видео и звук в один файл.
  • Deno — среда выполнения JavaScript, которую yt-dlp использует для задач, связанных с обработкой YouTube.

Зачем нужен FFmpeg? YouTube может отдавать видео высокого качества и звуковую дорожку отдельно. Поэтому скачать изображение — ещё не вся задача: затем нужно соединить его со звуком. Этим и занимается FFmpeg.

Deno я отдельно не запускаю. Если программа установлена и доступна для поиска, yt-dlp использует её автоматически: поддержка Deno включена по умолчанию. В официальном yt-dlp.exe необходимые скрипты yt-dlp-ejs уже включены в сборку.

Подробнее об этих зависимостях: FAQ yt-dlp и документация по JavaScript-окружению.

1. Открываю PowerShell и проверяю WinGet​


Все команды ниже я выполняю в PowerShell.

Для начала проверяю, доступен ли пакетный менеджер WinGet:

Код:
winget --version

Если команда выводит номер версии, можно переходить к установке.

Если Windows не находит сам winget, сначала нужно установить или обновить компонент «Установщик приложений» / App Installer. WinGet поставляется в его составе. Порядок установки описан в документации Microsoft.

В команды не нужно копировать приглашение вида PS C:\Users\Admin>. Вставляю только содержимое блоков с командами.

2. Устанавливаю yt-dlp, FFmpeg и Deno​


Я использовал следующий набор команд:

Код:
winget install --id yt-dlp.yt-dlp -e
winget install --id yt-dlp.FFmpeg -e
winget install --id DenoLand.Deno -e

Параметр --id задаёт идентификатор пакета, а -e требует точного совпадения. Это позволяет указать нужную программу без неоднозначного поиска по названию.

При первом запуске у меня появился запрос на принятие условий источника Microsoft Store. После ознакомления и согласия с условиями я ввёл Y и нажал Enter.

В моём случае первая команда сама установила обе зависимости — Deno и FFmpeg. Поэтому следующие две команды сообщили, что пакеты уже установлены, а доступных обновлений нет.

Это не означало, что установка сорвалась. Просто необходимые компоненты уже были установлены вместе с yt-dlp.

Если в выводе первой команды видно, что Deno и FFmpeg успешно установлены, отдельно повторять их установку не требуется.

Описание параметров установки есть в документации WinGet.

3. Перезапускаю PowerShell после установки​


Если работа ведётся через Windows Terminal, для проверки я бы полностью закрыл приложение и запустил его снова через меню «Пуск», а не ограничивался новой вкладкой.

Если установка завершилась успешно, но сразу после неё команда не находится, первым делом перезапускаю оболочку. В моём случае ни переустановка программ, ни перезагрузка компьютера не понадобились.

Устройство переменных среды и окружения процесса описано в документации PowerShell.

4. Проверяю, что программы доступны​


В новом окне PowerShell выполняю:

Код:
yt-dlp --version
ffmpeg -version
deno --version

Каждая команда должна вывести информацию о соответствующей программе, а не сообщение «имя не распознано».

Номера версий могут отличаться от тех, которые были у меня при установке. Я не закрепляю конкретные версии в командах: для повторения инструкции важнее, чтобы все три программы находились и запускались.

Если нужно посмотреть, откуда именно они запускаются, использую:

Код:
Get-Command yt-dlp, ffmpeg, deno -ErrorAction Continue | Select-Object Name, Source

Так можно увидеть пути к найденным исполняемым файлам.

5. Скачиваю видео в MP4 со звуком​


После установки и перезапуска PowerShell использую такую команду:

Код:
yt-dlp --ignore-config --no-playlist -t mp4 -P "$env:USERPROFILE\Downloads" "https://www.youtube.com/watch?v=4A-rWsPOPW0"

В конце указана ссылка на нужное видео. Для другого ролика заменяю только её.

Разберу основные параметры.

--ignore-config — не загружает сохранённые настройки yt-dlp. Так поведение команды не зависит от старого конфигурационного файла.

--no-playlist — при ссылке на ролик, входящий в плейлист, скачивает выбранное видео, а не весь список.

-t mp4 — использует готовый пресет для сохранения результата в MP4.

-P "$env:USERPROFILE\Downloads" — задаёт каталог для скачивания.

Ссылку оставляю в кавычках. Это особенно важно, если в ней есть дополнительные параметры и символ &: без кавычек оболочка может интерпретировать его как часть команды.

Описание параметров доступно в документации yt-dlp, а пояснение про кавычки — в FAQ проекта.

6. Нахожу готовый файл​


В приведённой команде каталог задаётся относительно профиля текущего пользователя:

Код:
$env:USERPROFILE\Downloads

Для моей учётной записи Admin это:

Код:
C:\Users\Admin\Downloads

Открыть этот каталог из PowerShell можно командой:

Код:
explorer.exe "$env:USERPROFILE\Downloads"

Важный момент: команда явно указывает папку Downloads внутри профиля. Если системная папка «Загрузки» была перенесена на другой диск, я указываю её фактический путь в параметре -P.

Например, для сохранения в D:\Video команда будет такой:

Код:
yt-dlp --ignore-config --no-playlist -t mp4 -P "D:\Video" "https://www.youtube.com/watch?v=4A-rWsPOPW0"

Если загрузка идёт в несколько этапов, не закрываю окно после первых 100%. Сначала могут скачиваться отдельные дорожки, после чего FFmpeg объединяет их. Дожидаюсь завершения всей команды и проверяю, нет ли сообщения об ошибке.

Что важно понимать про MP4 и качество​


Я использую -t mp4 как удобный вариант для получения MP4-файла.

Этот пресет предпочитает видеокодек H.264 и аудиокодек AAC, но не гарантирует, что именно такие дорожки доступны у каждого ролика. Он также не выполняет принудительное перекодирование в H.264/AAC.

Поэтому я не рассматриваю эту команду как обещание «скачать любое видео обязательно в 4K и обязательно с заданными кодеками». Результат зависит от доступных форматов и правил их выбора.

Само объединение совместимых дорожек в контейнер не равно перекодированию: это разные операции.

Точный состав пресета можно посмотреть в разделе Preset Aliases.

Как обновить PATH без закрытия PowerShell​


В моём случае хватило обычного перезапуска оболочки. Но есть и другой вариант — перечитать PATH прямо в текущем окне:

Код:
$env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")

Эта команда собирает PATH из системных и пользовательских настроек и присваивает его текущему сеансу PowerShell. Сохранённые настройки Windows она не переписывает.

При этом временные изменения PATH, сделанные только в этом окне ранее, будут заменены. Поэтому после обычной установки я предпочитаю более простой вариант: закрыть оболочку и открыть её заново.

После обновления PATH можно повторить проверку:

Код:
yt-dlp --version

Как я обновляю установленные программы​


Поскольку установку я выполнял через WinGet, для обновления использую его же:

Код:
winget upgrade --id yt-dlp.yt-dlp -e
winget upgrade --id yt-dlp.FFmpeg -e
winget upgrade --id DenoLand.Deno -e

Эти команды проверяют обновления конкретных пакетов, а не всех программ на компьютере.

Сообщение об отсутствии доступных обновлений означает, что WinGet не нашёл более новой подходящей версии в настроенных источниках. Это не обязательно означает, что в самом проекте на GitHub не существует более свежего выпуска.

Если yt-dlp раньше работал, а затем перестал скачивать видео, проверка обновлений — один из первых шагов. Но она не заменяет чтение самой ошибки: проблема с доступом к ролику или сетевым соединением не равна проблеме PATH.

Порядок обновления описан в инструкции yt-dlp и документации WinGet.

Итог​


Весь рабочий порядок у меня свёлся к трём действиям: установить программы, перезапустить PowerShell и выполнить команду скачивания.
Об авторе
Guru
Василий, cистемный админ /gnu/linux/windows/macos/mikrotik/troubleshooter, создатель сайта
Интересуюсь всем что делает инфраструктуру быстрой и надёжной
Открыт к общению и проектам, написать мне можно через форму или в личном сообщении

❗ Если есть пожелания по обзору какого-либо вопроса не представленного на сайте - пиши в комментариях

Комментарии

Нет комментариев для отображения.

Информация о статье

Автор
Guru
Время чтения статьи
5 мин чтения
Просмотры
14
Посл. обновление

Ещё в Сервисы и системы

Ещё от Guru

Поделиться этой статьёй

Назад
Верх