Мультимедиа в командной строке/yt-dlp
yt-dlp это консольная утилита для скачивания видео. Очень мощная. Для использования ряда функция может потребовать дополнительно иметь ffmpeg. Изначально разрабатывалось под именем youtube-dl. Для того чтобы из скачанного видео вырезать кусочек используется FFmpeg.
Есть графическая оболочка для yt-dlp, работающая в том числе в MS Windows.
yt-dlp может использоваться для скачивания с Youtube, но процесс усложняется и нужно дополнительные действия выполнять на локальном компьютере (требуются куки из браузера), а также подключать дополнительные библиотеки (подкладывая нужные файлики). Описание этих настроек ниже
История
[править]yt-dlp является форком проекта youtube-dl. youtube-dl сегодня пользоваться уже нет смысла, но описание по нему, скорее всего будет полезно.
Установка нужного ПО
[править]При наличии ffmpeg работа будет оптимальнее. Чтобы указать путь нему, можно указать явно ключом. В примере папка \bin лежит там же, где находится файл yt-dlp
--ffmpeg-location .\bin
Универсальное скачивание
[править]Если сервис поддерживает скачивание из коробки, то достаточно указать yt-dlp -f bestvideo+bestaudio/best и дальше ссылку на страницу с видео.
При этом утилита сама выберет лучшие форматы и в результате скачивания получится один файл готовый к использованию. Среди прочих поддерживается и отечественный видеохостинг Rutube
Скачивание с Rutube
yt-dlp -f bestvideo+bestaudio/best https://rutube.ru/video/private/c2d9de1c417d0b1eea3d10d90a286c51/?p=5T59DXfAiEwttooYny0Arw
Но для ряда популярных видео-хостингов (Youtube и Vimeo) этого недостаточно и по ним описание отдельное ниже.
Ручной выбор качества
[править]Не всегда нужно максимальное качество и требуется выбрать его самостоятельно. Для этого ключ -F используется
Выполнение такой команды
yt-dlp.exe -F ССЫЛКА_НА_ВИДЕО
Ссылка на видео в данном случае https://www.1tv.ru/shows/pust-govoryat/vypuski-i-dramatichnye-momenty/mirovoy-eksklyuziv-rekordy-i-slezy-sverhcheloveka-pust-govoryat-vypusk-ot-10-09-2026
Выведет таблицу в консоль
ID EXT RESOLUTION FPS │ FILESIZE TBR PROTO │ VCODEC ACODEC ────────────────────────────────────────────────────────────────────────────────
http-mp4-950 mp4 unknown │ ≈406.22MiB 950k https │ unknown unknown
hls-445-0 mp4 640x360 25 │ ~190.39MiB 445k m3u8 │ avc1.64001e mp4a.40.2
hls-445-1 mp4 640x360 25 │ ~190.39MiB 445k m3u8 │ avc1.64001e mp4a.40.2
hls-1056-0 mp4 640x360 25 │ ~451.74MiB 1056k m3u8 │ avc1.64001e mp4a.40.2
hls-1056-1 mp4 640x360 25 │ ~451.74MiB 1056k m3u8 │ avc1.64001e mp4a.40.2
hls-3972-0 mp4 1280x720 25 │ ~ 1.66GiB 3972k m3u8 │ avc1.640028 mp4a.40.2
hls-3972-1 mp4 1280x720 25 │ ~ 1.66GiB 3972k m3u8 │ avc1.640028 mp4a.40.2
hls-8218-0 mp4 1920x1080 25 │ ~ 3.43GiB 8219k m3u8 │ avc1.640028 mp4a.40.2
hls-8218-1 mp4 1920x1080 25 │ ~ 3.43GiB 8219k m3u8 │ avc1.640028 mp4a.40.2
[download] Finished downloading playlist: Мировой эксклюзив. Рекорды и слезы сверхчеловека. Пусть говорят. Выпуск от 10.09.2026
Соответственно, если нужен размер 640x360, для скачивания нужно запустить команду с указанием названия версии.
Если видео и звук в отдельных файлах находятся, то нужно указать скачивание обоих (имена обоих). Про это описано ниже в разделе "Скачивание видео и аудио одновременно".
yt-dlp-new.exe -f hls-1056-0 ССЫЛКА_НА_ВИДЕО
Скачивание с Youtube
[править]Просто из коробки скачивать с Youtube не будет, надо скачать дополнительно библиотеку и положить ее в той же папке. Также рядом нужно положить ffmpeg (чтобы склеивались автоматически скачанные файлы с видео и аудиодорожками).
Кроме этого надо указать путь до файла с куки от Youtube, полученных с помощью расширения Get cookies locally.
Строка для запуска скачивания.
yt-dlp -f bestvideo+bestaudio/best --js-runtimes quickjs --cookies cookies.txt https://www.youtube.com/watch?v=hIGWj39p_A8
Скачивание с ВКонтакте
[править]Просто указанием ссылки
yt-dlp.exe https://vk.com/video-210945081_456240330
Скачивание с Vimeo
[править]Для скачивания с Vimeo необходимо иметь учетную запись (она получается бесплатно). Надо войти в нее и получить куки. Затем эти куки надо экспортировать в файл формата Netscape. В этом может помочь плагин Cookie-Editor (cookie-editor.com) для Chrome [1]. Файл нужно указать в строке.
yt-dlp.exe -F https://vimeo.com/34243243 --cookies cok.txt
Скачивание запароленного видео с Vimeo
[править]Указать дополнительно надо пароль
yt-dlp.exe -F https://vimeo.com/34243243 --cookies cok.txt --video-password 4324234
Ошибки при скачивании с Vimeo
[править]Надо указать куки. Без них не получится. Как это сделать описано выше.
[vimeo] 1066401656: Downloading webpage ERROR: [vimeo] 1066401656: The web client only works when logged-in. Use --cookies, --cookies-from-browser, --username and -password, --netrc-cmd, or --netrc (vimeo) to provide account credentials. See https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-doi-pass-cookies-to-yt-dlp for how to manually pass cookies
Куки можно попробовать указать взять прямо у Chrome, но в MS Windows, похоже, с этим есть проблемы и придется скачивать куки вручную сначала (описано как выше)
yt-dlp.exe -F https://vimeo.com/1066401656 --cookies-from-browser chrome Extracting cookies from chrome ERROR: Could not copy Chrome cookie database. See https://github.com/yt-dlp/yt-dlp/issues/7271 for more info
При такой ошибке надо обновить yt-dlp
ERROR: [vimeo] 1066401656: Failed to fetch android OAuth token: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>)
Скачивание видео и аудио одновременно
[править]Если нужно качать какой-то размер видео конкретно, то это указывается в строке. При этом нужно не забыть указать аудио.
Чтобы сразу скачать и видео и звук, в строке запуска yt-dlp нужно указать номера через плюс - "-f 123+456". Но для того чтобы файлы были объединены должен быть рядом yt-dlp в той же папке размещен файл "ffmpeg" либо путь до "ffmpeg" был в PATH.
yt-dlp.exe -o "e:\both.%(ext)s" -f hls-akfire_interconnect_quic-3968+hls-akfire_interconnect_quic-audio-low-Original https://vimeo.com/32423434234 --cookies my_cookies.txt
Чтобы скачанные файлы остались и не были удалены после объединения, то надо добавить -k. С помощью ключа --verbose можно проверить, видит ли yt-dlp ffmpeg и доступен ли он ему.
Имя скачиваемого файла
[править]Если качаются раздельно звук и видео, то надо явно указать название файла. Если этого не сделать, то второй файл уже не скачает, сообщив что он уже имеется. Помимо имени можно сразу указать и путь, где будет размещен скачанный файл.
Пример:
yt-dlpexe -o "e:\hls-akfire_interconnect_quic-3968.%(ext)s" -f hls-akfire_interconnect_quic-3968 https://vimeo.com/234242342 --cookies my_cookies.txt
Ссылки
[править]- Официальный репозитарий на github (ссылка сразу на Releases)