yt-dlp: Полное руководство по скачиванию видео
-
yt-dlp — это мощный инструмент командной строки для скачивания видео с тысяч сайтов. По сути, это продвинутая версия известного youtube-dl, которая развивается активнее и имеет больше функций. Создан на основе прекращенного проекта youtube-dlc.
yt-dlp позволяет скачивать видео, аудио и подписи с множества платформ: YouTube, Vimeo, Dailymotion, TikTok, Instagram, Twitch и многих других. Это полезно, если вы хотите сохранить контент локально, работать с видео офлайн или автоматизировать загрузку плейлистов.
Установка
Для Linux/BSD (рекомендуемый вариант)
Используйте платформонезависимый бинарник с поддержкой Python:
# Скачать бинарник curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp chmod +x /usr/local/bin/yt-dlp # Проверить установку yt-dlp --versionЧерез pip (если установлен Python 3.10+)
pip install yt-dlpДля Windows
Скачайте
yt-dlp.exeсо страницы релизов и поместите в папку, которая находится в PATH.Обновление
# Обновиться до последней версии yt-dlp -U # Переключиться на nightly-версию (рекомендуется для новых функций) yt-dlp --update-to nightly # Обновиться до конкретной версии yt-dlp --update-to stable@2024.01.01Зависимости
Обязательная:
- Python 3.10+ (или PyPy 3.11+)
Настоятельно рекомендуемые:
- ffmpeg и ffprobe — нужны для объединения видео и аудио, конвертации формата. Это не Python-пакет, а бинарник!
- deno или node.js — JavaScript-рантайм для расшифровки YouTube (требуется yt-dlp-ejs)
Опциональные:
- curl_cffi — для обхода TLS-фингерпринтинга
- mutagen — для встраивания обложек
- pycryptodomex — для расшифровки AES-128 HLS-потоков
Чтобы установить все основные зависимости:
pip install "yt-dlp[default]"
Базовое использование
Простое скачивание видео
# Скачать видео с YouTube yt-dlp "" # Скачать плейлист yt-dlp "https://www.youtube.com/playlist?list=PLxxxxxx"Видео сохранится с автоматическим названием в текущую папку.
Выбор формата видео
Это одна из самых полезных функций yt-dlp. По умолчанию загружается лучшее доступное качество, но вы можете выбрать конкретный формат.
Посмотреть доступные форматы
yt-dlp -F ""Вывод покажет список всех доступных форматов с ID:
ID EXT RES FPS CH ACODEC ABPS VCODEC VBR 249 webm audio -- 2 opus 50k -- 250 webm audio -- 2 opus 70k -- 140 m4a audio -- 2 mp4a.40.2 128k -- 18 mp4 360 30 2 aac 128k h264 22 mp4 720 30 2 aac 192k h264Что означает:
ID— идентификатор формата для загрузкиEXT— расширение файлаRES— разрешение видеоFPS— кадры в секундуACODEC— кодек аудиоVCODEC— кодек видео
Примеры выбора формата
# Загрузить лучший видеопоток с аудио (по умолчанию) yt-dlp -f best "https://..." # Загрузить видео максимального качества (может быть без звука) yt-dlp -f bestvideo "https://..." # Загрузить аудиопоток максимального качества yt-dlp -f bestaudio "https://..." # Загрузить конкретный формат по ID yt-dlp -f 22 "https://..." # Комбинировать: лучшее видео + лучшее аудио + объединить в MP4 yt-dlp -f "bestvideo+bestaudio" --merge-output-format mp4 "https://..." # Загрузить HD качество (720p) или лучшее, что есть yt-dlp -f "720/best" "https://..." # Загрузить видео менее 100 МБ yt-dlp -f "best[filesize<100M]" "https://..."Почему это нужно: на некоторых сайтах видео и аудио загружаются отдельно. yt-dlp автоматически объединяет их через ffmpeg.
Сортировка форматов
Используйте флаг
-S(–format-sort) для сортировки по качеству:# Сортировать по разрешению, затем кодеку видео yt-dlp -f best -S res,vcodec "https://..." # Предпочитать H.264, затем H.265, максимальное разрешение yt-dlp -f best -S vcodec:h264,vcodec:h265,res "https://..." # Сортировка в обратном порядке (от худшего к лучшему) yt-dlp -f best -S -res "https://..."
Скачивание аудио
Преобразовать в MP3
# Скачать видео и конвертировать в MP3 yt-dlp -x --audio-format mp3 "https://..."Параметры:
-x(–extract-audio) — извлечь только аудио--audio-format mp3— конвертировать в MP3
Другие форматы аудио
# AAC yt-dlp -x --audio-format aac "https://..." # Opus yt-dlp -x --audio-format opus "https://..." # Лучший доступный формат аудио yt-dlp -x --audio-format best "https://..."Использовать готовые пресеты
# Загрузить как MP3 (готовый пресет) yt-dlp -t mp3 "https://..." # Загрузить как AAC yt-dlp -t aac "https://..." # Загрузить как MP4 yt-dlp -t mp4 "https://..." # Загрузить как MKV yt-dlp -t mkv "https://..."
Подписи (субтитры)
# Скачать видео с автогенерируемыми подписями yt-dlp --write-auto-subs "https://..." # Скачать видео с оригинальными подписями yt-dlp --write-subs "https://..." # Посмотреть доступные языки подписей yt-dlp --list-subs "https://..." # Скачать подписи на русском и английском yt-dlp --write-subs --sub-langs ru,en "https://..." # Скачать подписи в формате SRT yt-dlp --write-subs --sub-format srt "https://..."
Скачивание плейлистов
Базовое скачивание
# Скачать весь плейлист yt-dlp "https://www.youtube.com/playlist?list=PLxxxxxx" # Скачать только видео, игнорируя плейлист yt-dlp --no-playlist "https://..."Выбирать конкретные видео
# Скачать видео с индексами 1, 2, 3, 7 yt-dlp -I 1:3,7 "https://..." # Скачать первые 10 видео yt-dlp -I 1:10 "https://..." # Скачать последние 5 видео (отрицательные индексы) yt-dlp -I -5: "https://..." # Скачать каждое второе видео yt-dlp -I 1::2 "https://..." # Скачать видео в обратном порядке yt-dlp -I ::-1 "https://..."Фильтрация видео
# Скачать только видео длиннее 10 минут yt-dlp --match-filters "duration>600" "https://..." # Скачать видео с более чем 1000 лайков yt-dlp --match-filters "like_count>1000" "https://..." # Скачать видео, которые НЕ лайв-трансляции yt-dlp --match-filters "!is_live" "https://..."
Выходное имя файла
Контролируйте, как называются скачанные файлы через
-o(–output):Базовые шаблоны
# По умолчанию (название видео + ID) yt-dlp -o "%(title)s.%(ext)s" "https://..." # Название + ID видео yt-dlp -o "%(title)s [%(id)s].%(ext)s" "https://..." # Только ID yt-dlp -o "%(id)s.%(ext)s" "https://..." # С номером при скачивании плейлиста yt-dlp -o "%(playlist_index)s - %(title)s.%(ext)s" "https://..." # Дата + название yt-dlp -o "%(upload_date)s - %(title)s.%(ext)s" "https://..."Примеры
# Все в подпапку yt-dlp -o "downloads/%(title)s.%(ext)s" "https://..." # По папкам по авторам yt-dlp -o "%(uploader)s/%(title)s.%(ext)s" "https://..." # С подходящим форматом даты yt-dlp -o "%(upload_date>%Y-%m-%d)s - %(title)s.%(ext)s" "https://..."
Метаданные
Сохранить информацию о видео
# Сохранить описание в .description файл yt-dlp --write-description "https://..." # Сохранить метаданные в JSON yt-dlp --write-info-json "https://..." # Скачать и встроить обложку в видео yt-dlp --write-thumbnail "https://..." # Встроить обложку в MP4/M4A (требуется ffmpeg или AtomicParsley) yt-dlp --embed-thumbnail "https://..." # Все сразу yt-dlp --write-description --write-info-json --write-thumbnail "https://..."
Управление загрузкой
Лимиты размера
# Скачать только если файл меньше 500 МБ yt-dlp --max-filesize 500M "https://..." # Скачать только если файл больше 10 МБ yt-dlp --min-filesize 10M "https://..."Ограничение скорости
# Ограничить скорость до 1 МБ/с yt-dlp -r 1M "https://..." # Ограничить до 500 КБ/с yt-dlp -r 500K "https://..."Повторные попытки и таймауты
# 20 повторных попыток при ошибке (по умолчанию 10) yt-dlp --retries 20 "https://..." # Бесконечные повторы yt-dlp --retries infinite "https://..." # Таймаут соединения 30 секунд yt-dlp --socket-timeout 30 "https://..."Параллельная загрузка фрагментов
# Загружать 5 фрагментов одновременно (для DASH/HLS) yt-dlp -N 5 "https://..."
Продвинутые техники
Скачивание из файла списка
Создайте файл
urls.txt:https://www.youtube.com/playlist?list=PLxxxxxxЗатем:
yt-dlp -a urls.txtПрокси и VPN
# Использовать SOCKS5 прокси yt-dlp --proxy socks5://127.0.0.1:1080 "https://..." # HTTP прокси yt-dlp --proxy http://proxy.example.com:8080 "https://..." # Использовать IPv6 yt-dlp -6 "https://..." # Принудительно IPv4 yt-dlp -4 "https://..."Архивирование загруженных видео
Предотвращает повторную загрузку одного видео:
# Скачать плейлист, сохраняя ID в archive.txt yt-dlp --download-archive archive.txt "https://..." # При следующем запуске видео из archive.txt пропустятся yt-dlp --download-archive archive.txt "https://..."Скачивание только новых видео по дате
# Видео, загруженные после 1 января 2024 yt-dlp --dateafter 20240101 "https://..." # Видео за последние 7 дней yt-dlp --dateafter "today-7days" "https://..." # Видео конкретного дня yt-dlp --date 20240115 "https://..."
Обработка после загрузки
Post-processing с ffmpeg
# Конвертировать MKV в MP4 yt-dlp --remux-video mp4 "https://..." # Конвертировать в формат Matroska yt-dlp --remux-video mkv "https://..." # Конвертировать видео в другой кодек yt-dlp --recode-video mp4 "https://..."Обработка разделов/глав
# Скачать только раздел "Intro" (если доступен) yt-dlp --download-sections "Intro" "https://..." # Скачать видео с 1:30 до 5:00 минут yt-dlp --download-sections "*1:30-5:00" "https://..."
Конфигурационный файл
Вместо того чтобы каждый раз писать длинные команды, сохраните настройки в файл.
Создайте
yt-dlp.confв одном из этих мест:/etc/yt-dlp/config(системная конфиг)~/.config/yt-dlp/config(домашняя конфиг)./yt-dlp.conf(папка с бинарником или текущая папка)
Пример конфига:
# Формат видео -f bestvideo+bestaudio/best # Объединять видео и аудио --merge-output-format mp4 # Сохранять метаданные --write-info-json --write-description # Сохранять обложку --write-thumbnail # Подписи --write-auto-subs --sub-langs en,ru # Выходное имя -o "%(uploader)s/%(title)s [%(id)s].%(ext)s" # Архив загруженных видео --download-archive archive.txt # Не перезаписывать файлы -w # Прогресс бар --progressТеперь все эти параметры применятся автоматически:
yt-dlp "https://..."
Вывод информации без загрузки
Просмотреть информацию о видео
# Вывести информацию в JSON yt-dlp -j "https://..." | jq . # Печать конкретных полей yt-dlp -O "%(title)s" "https://..." yt-dlp -O "id" "https://..." # Печать нескольких полей yt-dlp -O "%(id)s - %(title)s - %(duration)s сек" "https://..."Проверка без загрузки
# Симуляция загрузки (проверить формат, но не скачивать) yt-dlp -s "https://..." # Показать форматы без скачивания yt-dlp -F "https://..." # Показать подписи без скачивания yt-dlp --list-subs "https://..."
Примеры реальных сценариев
Сценарий 1: Скачать песню с YouTube в MP3
yt-dlp -x --audio-format mp3 -o "%(title)s.%(ext)s" "https://www.youtube.com/watch?v=xxxxx"Сценарий 2: Скачать плейлист с русскими субтитрами
yt-dlp -I 1:20 \ -f "720/best" \ --write-subs --sub-langs ru \ -o "%(playlist_index)s - %(title)s.%(ext)s" \ "https://www.youtube.com/playlist?list=PLxxxxxx"Сценарий 3: Скачать видео и встроить обложку
yt-dlp -f best \ --write-thumbnail \ --embed-thumbnail \ --write-info-json \ "https://..."Сценарий 4: Скачать только новые видео из плейлиста
# Первый раз: yt-dlp \ -f best \ --download-archive downloaded.txt \ -o "%(title)s.%(ext)s" \ "https://www.youtube.com/playlist?list=PLxxxxxx" # Каждый следующий запуск: # Пропустит уже скачанные видео из downloaded.txt yt-dlp \ -f best \ --download-archive downloaded.txt \ -o "%(title)s.%(ext)s" \ "https://www.youtube.com/playlist?list=PLxxxxxx"Сценарий 5: Скачать видео через прокси, ограничив скорость
yt-dlp \ --proxy socks5://127.0.0.1:1080 \ -r 2M \ -f best \ "https://..."
Часто встречаемые ошибки и решения
Ошибка: “No video formats found”
Причина: Видео недоступно в вашем регионе или заблокировано.
Решение:
# Использовать прокси yt-dlp --proxy socks5://127.0.0.1:1080 "https://..."Ошибка: “ffmpeg not found”
Причина: ffmpeg не установлен.
Решение:
# Linux sudo apt install ffmpeg # macOS brew install ffmpeg # Windows - скачайте с ffmpeg.orgВидео и аудио не объединяются
Причина: ffmpeg не установлен или не указан путь.
Решение:
# Убедитесь, что ffmpeg в PATH which ffmpeg # Если нет, установите его (см. выше)Требуется аутентификация
Причина: Видео защищено или требует логина.
Решение:
yt-dlp -u username -p password "https://..." # Или через .netrc файл yt-dlp -n "https://..."
Встраивание в код (Python)
Если вы хотите использовать yt-dlp в своем Python-приложении:
import yt_dlp # Базовая загрузка ydl_opts = { 'format': 'best', 'outtmpl': '%(title)s.%(ext)s', } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download(['https://www.youtube.com/watch?v=xxxxx'])# Более продвинутая загрузка с обработкой ydl_opts = { 'format': 'bestvideo+bestaudio/best', 'merge_output_format': 'mp4', 'writesubtitles': True, 'subtitle_langs': ['en', 'ru'], 'writethumbnail': True, 'write_info_json': True, 'outtmpl': '%(uploader)s/%(title)s.%(ext)s', } with yt_dlp.YoutubeDL(ydl_opts) as ydl: info = ydl.extract_info('https://www.youtube.com/watch?v=xxxxx', download=True) print(f"Скачано: {info['title']}")
Обновление и версионирование
yt-dlp имеет три канала обновления:
Канал Описание stableСтабильная версия (по умолчанию), регулярно тестируется nightlyЕжедневные релизы, рекомендуется для обычных пользователей masterРелиз после каждого коммита, может содержать баги Переключение:
# На nightly yt-dlp --update-to nightly # На стабильную конкретной даты yt-dlp --update-to stable@2024.01.15 # На последнюю версию master yt-dlp --update-to master # Предупреждение появляется, если версия старше 90 дней # Отключить предупреждение yt-dlp --no-update "https://..."
Заключение
yt-dlp — мощный и гибкий инструмент для скачивания видео. Его основные преимущества:
Поддержка тысяч сайтов
Гибкий выбор форматов и качества
Встраивание метаданных и обложек
Архивирование и фильтрация
Конфигурационные файлы для удобства
Регулярные обновления и активная поддержкаНачните с простых команд и постепенно добавляйте нужные параметры. Конфиг файл значительно упростит вашу жизнь при частом использовании.
-
Предварительно: Что нужно знать про YouTube и yt-dlp
YouTube регулярно меняет защиту от скачивания, поэтому:
-
Обновляйте yt-dlp часто — используйте nightly версию для лучшей совместимости
yt-dlp --update-to nightly -
Требуется JavaScript-рантайм — для расшифровки подписей YouTube (yt-dlp-ejs)
# Установить с нужными зависимостями pip install "yt-dlp[default]" -
Установите ffmpeg — нужен для объединения видео и аудио
# Linux (Ubuntu/Debian) sudo apt install ffmpeg # macOS brew install ffmpeg # Fedora sudo dnf install ffmpeg -
Проверьте установку:
yt-dlp --version ffmpeg -version
Пример 1: Скачать одно видео в лучшем качестве
Сценарий: Вы хотите скачать интересное видео с YouTube в лучшем доступном качестве.
Самый простой способ
yt-dlp ""Это загрузит видео с лучшим качеством видео + лучшим качеством аудио, объединит их в один файл. Файл сохранится в текущую папку с названием как название видео.
Что происходит “под капотом”:
- yt-dlp соединяется с YouTube
- Получает информацию о доступных форматах
- Выбирает лучшее видео и лучшее аудио
- Скачивает их отдельно (они идут отдельно на YouTube)
- Использует ffmpeg для объединения в один MP4 файл
- Удаляет временные файлы
Контролировать качество
# HD качество (720p) или лучшее, что есть yt-dlp -f "720/best" "" # Точно 1080p, если нет — ошибка yt-dlp -f "1080" "" # 4K качество yt-dlp -f "2160/best" "" # Минимальное качество (экономия трафика) yt-dlp -f "worst" ""Увидеть все доступные форматы
yt-dlp -F ""Вывод:
ID EXT RES FPS CH ACODEC ABPS VCODEC 249 webm audio -- 2 opus 50k -- 250 webm audio -- 2 opus 70k -- 251 webm audio -- 2 opus 160k -- 140 m4a audio -- 2 mp4a.40.2 128k -- 278 webm 256x144 30 -- -- -- vp9 160 mp4 256x144 30 -- -- -- h264 394 webm 256x144 30 -- -- -- av1 ... 18 mp4 360x640 30 2 aac 128k h264 22 mp4 720x1280 30 2 aac 192k h264Объяснение:
ID 251— лучший аудиопоток (Opus 160k)ID 22— видео 720p с встроенным аудио (для старых плееров)ID 249-251— чистый аудио (без видео)
Практический пример: качество vs размер файла
# Маленький файл (~50 МБ для 10 мин видео) yt-dlp -f "360/best" "https://..." # Стандарт (~150 МБ для 10 мин видео) yt-dlp -f "720/best" "https://..." # Высокое качество (~400 МБ для 10 мин видео) yt-dlp -f "1080/best" "https://..." # Ограничить размер файла yt-dlp -f "best[filesize<200M]" "https://..."
Пример 2: Скачать только аудио (музыка с YouTube)
Сценарий: Вы нашли отличную музыку на YouTube и хотите сохранить как MP3.
Быстрый способ
yt-dlp -x --audio-format mp3 "https://www.youtube.com/watch?v=xxxxx"Что происходит:
-x— извлечь только аудио (игнорировать видео)--audio-format mp3— конвертировать в MP3 через ffmpeg
Разные форматы аудио
# MP3 (универсальный, больший размер) yt-dlp -x --audio-format mp3 "https://..." # AAC (хороший баланс качество/размер) yt-dlp -x --audio-format aac "https://..." # Opus (лучшее качество при малом размере) yt-dlp -x --audio-format opus "https://..." # VORBIS (открытый формат) yt-dlp -x --audio-format vorbis "https://..." # WAV (без сжатия, большой размер) yt-dlp -x --audio-format wav "https://..."С красивым названием файла
yt-dlp -x --audio-format mp3 \ -o "%(artist)s - %(title)s.%(ext)s" \ "https://www.youtube.com/watch?v=xxxxx"Файл сохранится как:
Автор - Название песни.mp3Скачать несколько песен
Создайте файл
playlist.txt:https://www.youtube.com/watch?v=song1 https://www.youtube.com/watch?v=song2 https://www.youtube.com/watch?v=song3Затем:
yt-dlp -x --audio-format mp3 \ -o "%(title)s.%(ext)s" \ -a playlist.txt
Пример 3: Скачать плейлист
Сценарий: Вы нашли плейлист с интересными видео и хотите скачать их все.
Скачать весь плейлист
yt-dlp "https://www.youtube.com/playlist?list=PLxxxxxxxxxxxxxx"yt-dlp автоматически:
- Найдет все видео в плейлисте
- Скачает их одно за другим
- Сохранит с номерами:
01 - название.mp4,02 - название.mp4, и т.д.
Видеть, сколько видео в плейлисте
yt-dlp -s --list-formats "https://www.youtube.com/playlist?list=PLxxxxxx"Скачать только конкретные видео
# Только первые 10 видео yt-dlp -I 1:10 "https://www.youtube.com/playlist?list=PLxxxxxx" # Видео с 5 по 15 yt-dlp -I 5:15 "https://www.youtube.com/playlist?list=PLxxxxxx" # Последние 5 видео yt-dlp -I -5: "https://www.youtube.com/playlist?list=PLxxxxxx" # Каждое второе видео yt-dlp -I 1::2 "https://www.youtube.com/playlist?list=PLxxxxxx" # Видео 1, 2, 3, 5, 10 yt-dlp -I 1:3,5,10 "https://www.youtube.com/playlist?list=PLxxxxxx"С красивой структурой файлов
yt-dlp -o "%(playlist_index)s - %(title)s.%(ext)s" \ "https://www.youtube.com/playlist?list=PLxxxxxx"Результат:
01 - Введение.mp4 02 - Основы.mp4 03 - Практика.mp4По папкам по авторам
yt-dlp -o "%(uploader)s/%(playlist_index)s - %(title)s.%(ext)s" \ "https://www.youtube.com/playlist?list=PLxxxxxx"Результат:
Иван Петров/ ├─ 01 - Видео 1.mp4 └─ 02 - Видео 2.mp4Плейлист с подписями на русском
yt-dlp --write-auto-subs --sub-langs ru \ -o "%(playlist_index)s - %(title)s.%(ext)s" \ "https://www.youtube.com/playlist?list=PLxxxxxx"Каждое видео будет иметь файл
.ru.vttс русскими субтитрами.
Пример 4: Скачать видео канала (все видео от автора)
Сценарий: Вы подписаны на канал и хотите архивировать все видео.
Скачать все видео канала
yt-dlp "https://www.youtube.com/@username"или
yt-dlp ""yt-dlp загрузит ВСЕ видео с канала (это может быть долго!).
Скачать только последние N видео
# Только последние 50 видео yt-dlp -I 1:50 "https://www.youtube.com/@username" # Последние 20 видео (от новых к старым) yt-dlp -I :20 "https://www.youtube.com/@username"С архивированием (не скачивать дважды)
# Первый раз: yt-dlp --download-archive downloaded.txt \ -o "%(title)s [%(id)s].%(ext)s" \ "https://www.youtube.com/@username" # Каждый следующий раз (новые видео загрузятся автоматически): yt-dlp --download-archive downloaded.txt \ -o "%(title)s [%(id)s].%(ext)s" \ "https://www.youtube.com/@username"Файл
downloaded.txtбудет содержать ID скачанных видео. При повторном запуске они пропустятся.
Пример 5: Скачать видео с определенными субтитрами
Сценарий: Видео на английском, но вам нужны русские субтитры, или автоматические субтитры для дальнейшей обработки.
Видеть доступные субтитры
yt-dlp --list-subs "https://www.youtube.com/watch?v=xxxxx"Вывод:
Available subtitles for xxxxx: Language Name Formats en English vtt, ttml, srv1, srv2, srv3, json3 ru Russian vtt, ttml, srv1, srv2, srv3, json3 de German vtt, ttml, srv1, srv2, srv3, json3 auto English (auto-generated) vtt, ttml, srv1, srv2, srv3, json3Скачать видео с русскими субтитрами
yt-dlp --write-subs --sub-langs ru \ "https://www.youtube.com/watch?v=xxxxx"Скачается видео + файл
видео.ru.vttс русскими субтитрами.Скачать автоматические субтитры (если нет созданных)
yt-dlp --write-auto-subs --sub-langs ru \ "https://www.youtube.com/watch?v=xxxxx"Скачать субтитры нескольких языков
yt-dlp --write-subs --sub-langs ru,en,de \ "https://www.youtube.com/watch?v=xxxxx"Результат:
видео.mp4 видео.ru.vtt видео.en.vtt видео.de.vttСкачать все доступные субтитры
yt-dlp --write-subs --sub-langs all \ "https://www.youtube.com/watch?v=xxxxx"Изменить формат субтитров
# VTT формат (по умолчанию) yt-dlp --write-subs --sub-format vtt "https://..." # SRT формат (более старый, но универсальный) yt-dlp --write-subs --sub-format srt "https://..." # JSON формат yt-dlp --write-subs --sub-format json3 "https://..."Практический пример: видео с субтитрами и обложкой
yt-dlp --write-subs --sub-langs ru,en \ --write-thumbnail \ --embed-thumbnail \ -o "%(title)s.%(ext)s" \ "https://www.youtube.com/watch?v=xxxxx"Результат:
Название видео.mp4 (с встроенной обложкой) Название видео.ru.vtt (русские субтитры) Название видео.en.vtt (английские субтитры)
Пример 6: Скачать видео с метаданными и обложкой
Сценарий: Вы хотите сохранить не только видео, но и всю информацию о нем (описание, обложка, дата публикации).
Все метаданные
yt-dlp --write-info-json \ --write-description \ --write-thumbnail \ "https://www.youtube.com/watch?v=xxxxx"Результат:
видео.mp4 (само видео) видео.info.json (метаданные в JSON) видео.description (описание) видео.jpg (обложка)Встроить обложку в видеофайл
yt-dlp --write-thumbnail \ --embed-thumbnail \ "https://www.youtube.com/watch?v=xxxxx"Обложка будет встроена в MP4 файл, и плеер покажет её как превью.
Практический пример: архивирование видео
yt-dlp \ --write-info-json \ --write-description \ --write-thumbnail \ --embed-thumbnail \ --write-subs --sub-langs ru,en \ -o "%(upload_date>%Y-%m-%d)s - %(title)s.%(ext)s" \ "https://www.youtube.com/watch?v=xxxxx"Результат:
2024-01-15 - Название видео.mp4 2024-01-15 - Название видео.info.json 2024-01-15 - Название видео.description 2024-01-15 - Название видео.jpg 2024-01-15 - Название видео.ru.vtt 2024-01-15 - Название видео.en.vtt
Пример 7: Скачать видео с фильтрацией по продолжительности или дате
Сценарий: В плейлисте тысячи видео, вы хотите скачать только видео длиннее 30 минут или загруженные в последний месяц.
Фильтр по продолжительности
# Только видео длиннее 30 минут (1800 секунд) yt-dlp --match-filters "duration>1800" \ "https://www.youtube.com/playlist?list=PLxxxxxx" # Видео короче 10 минут yt-dlp --match-filters "duration<600" \ "https://www.youtube.com/playlist?list=PLxxxxxx" # Видео между 5 и 30 минутами yt-dlp --match-filters "duration>300 & duration<1800" \ "https://www.youtube.com/playlist?list=PLxxxxxx"Фильтр по дате загрузки
# Видео, загруженные после 1 января 2024 yt-dlp --dateafter 20240101 \ "https://www.youtube.com/playlist?list=PLxxxxxx" # Видео последних 7 дней yt-dlp --dateafter "today-7days" \ "https://www.youtube.com/playlist?list=PLxxxxxx" # Видео конкретного дня yt-dlp --date 20240115 \ "https://www.youtube.com/playlist?list=PLxxxxxx"Фильтр по количеству лайков
# Только популярные видео (более 10000 лайков) yt-dlp --match-filters "like_count>10000" \ "https://www.youtube.com/playlist?list=PLxxxxxx" # Видео с более чем 1000 комментариев yt-dlp --match-filters "comment_count>1000" \ "https://www.youtube.com/playlist?list=PLxxxxxx"Исключить видео
# Скачать всё, кроме лайв-трансляций yt-dlp --match-filters "!is_live" \ "https://www.youtube.com/playlist?list=PLxxxxxx" # Скачать видео, которые НЕ премьеры yt-dlp --match-filters "!was_live" \ "https://www.youtube.com/playlist?list=PLxxxxxx"Комбинирование фильтров
# Видео после 1 января, длиннее 10 минут, с более чем 100 лайков yt-dlp --dateafter 20240101 \ --match-filters "duration>600 & like_count>100" \ "https://www.youtube.com/playlist?list=PLxxxxxx"
Пример 8: Скачать видео с ограничением скорости (не грузить интернет)
Сценарий: Вы хотите скачивать видео в фоне, но не перегружать интернет для других приложений.
Базовое ограничение скорости
# Максимум 1 МБ/сек yt-dlp -r 1M "https://www.youtube.com/watch?v=xxxxx" # Максимум 500 КБ/сек yt-dlp -r 500K "https://www.youtube.com/watch?v=xxxxx"С параллельной загрузкой фрагментов
YouTube передает видео в виде фрагментов (chunks). Вы можете загружать несколько одновременно:
# Загружать 3 фрагмента одновременно, макс 2 МБ/сек yt-dlp -N 3 -r 2M "https://www.youtube.com/watch?v=xxxxx" # 5 фрагментов, макс 1 МБ/сек yt-dlp -N 5 -r 1M "https://www.youtube.com/watch?v=xxxxx"
Пример 9: Скачать видео через прокси/VPN
Сценарий: Видео заблокировано в вашем регионе, нужно использовать VPN или прокси.
Через SOCKS5 прокси
# Если у вас локально работает SOCKS5 на localhost:1080 yt-dlp --proxy socks5://127.0.0.1:1080 \ "https://www.youtube.com/watch?v=xxxxx" # С логином и паролем yt-dlp --proxy socks5://user:password@proxy.example.com:1080 \ "https://www.youtube.com/watch?v=xxxxx"Через HTTP прокси
yt-dlp --proxy http://proxy.example.com:8080 \ "https://www.youtube.com/watch?v=xxxxx"Принудительно IPv6 или IPv4
# Только IPv6 yt-dlp -6 "https://www.youtube.com/watch?v=xxxxx" # Только IPv4 yt-dlp -4 "https://www.youtube.com/watch?v=xxxxx"Практический пример: через Tor
Если у вас запущен Tor браузер или Tor daemon на localhost:9050:
yt-dlp --proxy socks5://127.0.0.1:9050 \ "https://www.youtube.com/watch?v=xxxxx"
Пример 10: Полный конфиг для удобного использования
Сценарий: Вы часто скачиваете видео с YouTube и хотите автоматизировать процесс.
Создайте файл
yt-dlp.conf# ~/.config/yt-dlp/config # Формат: лучшее видео + лучшее аудио в MP4 -f bestvideo+bestaudio/best --merge-output-format mp4 # Название файла с датой загрузки -o "%(upload_date>%Y-%m-%d)s - %(title)s.%(ext)s" # Метаданные --write-info-json --write-description --write-thumbnail --embed-thumbnail # Подписи на русском и английском --write-auto-subs --sub-langs ru,en # Не перезаписывать существующие файлы -w # Архив скачанных видео --download-archive archive.txt # Прогресс бар --progress # Прекратить при первой ошибке в плейлисте (чтобы не висло) --no-abort-on-errorТеперь просто используйте:
# Скачать видео (все параметры из конфига) yt-dlp "https://www.youtube.com/watch?v=xxxxx" # Скачать плейлист (автоматически с метаданными, подписями и архивированием) yt-dlp "https://www.youtube.com/playlist?list=PLxxxxxx" # Переопределить параметр конфига при необходимости yt-dlp -f 720/best "https://www.youtube.com/watch?v=xxxxx"Расположение конфига
На разных системах конфиг кладется в разные места:
Система Путь Linux/BSD ~/.config/yt-dlp/configили/etc/yt-dlp/configmacOS ~/.config/yt-dlp/configWindows %APPDATA%\yt-dlp\config.txtТекущая папка ./yt-dlp.conf
Пример 11: Скачать только часть видео (рубрики/главы)
Сценарий: Видео состоит из нескольких глав (например, лекция с несколькими темами), вы хотите скачать только нужную часть.
Видеть доступные главы
yt-dlp -O "%(chapters)s" "https://www.youtube.com/watch?v=xxxxx"или через JSON:
yt-dlp -j "https://www.youtube.com/watch?v=xxxxx" | jq '.chapters'Скачать только одну главу
# Скачать главу "Введение" yt-dlp --download-sections "Введение" \ "https://www.youtube.com/watch?v=xxxxx" # Скачать главу "Практика" (если есть) yt-dlp --download-sections "Практика" \ "https://www.youtube.com/watch?v=xxxxx"Скачать по времени (временной диапазон)
# От 1:30 до 5:00 минут yt-dlp --download-sections "*1:30-5:00" \ "https://www.youtube.com/watch?v=xxxxx" # Первые 10 минут yt-dlp --download-sections "*0-10:00" \ "https://www.youtube.com/watch?v=xxxxx" # От 5 минуты до конца yt-dlp --download-sections "*5:00-inf" \ "https://www.youtube.com/watch?v=xxxxx"Несколько секций
# Скачать главы "Введение" и "Основы" yt-dlp --download-sections "Введение" \ --download-sections "Основы" \ "https://www.youtube.com/watch?v=xxxxx" # Скачать три временных отрезка yt-dlp --download-sections "*0-10:00" \ --download-sections "*20:00-30:00" \ --download-sections "*40:00-inf" \ "https://www.youtube.com/watch?v=xxxxx"Требует ffmpeg для работы!
Пример 12: Скачивание лайв-трансляций
Сценарий: Вам нужно скачать запись лайв-трансляции или начать скачивание во время трансляции.
Скачать завершенную трансляцию
# Просто как обычное видео yt-dlp "https://www.youtube.com/watch?v=xxxxx"YouTube сохраняет лайв-трансляции как обычные видео после завершения.
Дождаться начала трансляции и скачать
# Ждать 120 секунд между попытками, максимум 30 минут (1800 сек) yt-dlp --wait-for-video 120-1800 \ "https://www.youtube.com/watch?v=xxxxx"Как это работает:
- yt-dlp проверяет доступность видео
- Если видео ещё недоступно, ждет 120 секунд
- Пытается снова
- Максимум ждет до 1800 секунд (30 минут)
- Как только видео доступно, начинает скачивание
Скачивать с начала трансляции (если возможно)
# Для некоторых сайтов (YouTube, Twitch) можно скачать с начала yt-dlp --live-from-start "https://www.youtube.com/watch?v=xxxxx"
Пример 13: Скачать видео и не скачивать дважды
Сценарий: У вас есть папка с видео, вы хотите добавить новые видео из плейлиста, но не скачивать старые.
Использование архива
# Первый раз: скачать плейлист и записать ID в archive.txt yt-dlp --download-archive archive.txt \ -o "%(playlist_index)s - %(title)s.%(ext)s" \ "https://www.youtube.com/playlist?list=PLxxxxxx"Файл
archive.txtбудет содержать:youtube dQw4w9WgXcQ youtube jNQXAC9IVRw youtube xxxxxПри повторном запуске
# Запустите ту же команду yt-dlp --download-archive archive.txt \ -o "%(playlist_index)s - %(title)s.%(ext)s" \ "https://www.youtube.com/playlist?list=PLxxxxxx"yt-dlp:
- Проверит
archive.txt - Пропустит уже загруженные видео
- Скачает только новые видео
- Добавит их ID в
archive.txt
Остановиться при обнаружении скачанного видео
# Полезно, если видео в плейлисте в хронологическом порядке yt-dlp --download-archive archive.txt \ --break-on-existing \ "https://www.youtube.com/playlist?list=PLxxxxxx"Когда yt-dlp обнаружит видео, которое уже в
archive.txt, он остановится (не будет проверять остальные видео).
Пример 14: Скачать видео и конвертировать в другой формат
Сценарий: YouTube отдает видео в контейнере WebM или MP4, а вам нужен MKV для Plex или другого медиа-сервера.
Просто конвертировать контейнер (быстро)
# WebM или MP4 → MP4 (переупаковка без переконкодирования) yt-dlp --remux-video mp4 \ "https://www.youtube.com/watch?v=xxxxx" # WebM или MP4 → MKV yt-dlp --remux-video mkv \ "https://www.youtube.com/watch?v=xxxxx"Remux очень быстро, потому что просто переупаковывает видео без переконкодирования.
Переконкодировать видео в другой кодек (медленно)
# Переконкодировать в H.264 (совместимость с отыми плеерами) yt-dlp --recode-video mp4 \ "https://www.youtube.com/watch?v=xxxxx" # Переконкодировать в H.265/HEVC (меньший размер файла) yt-dlp --recode-video mkv \ -f "bestvideo[vcodec^=h265]+bestaudio" \ "https://www.youtube.com/watch?v=xxxxx"Практический пример: для Plex медиа-сервера
yt-dlp \ --remux-video mkv \ --merge-output-format mkv \ -f "bestvideo+bestaudio/best" \ -o "%(title)s [%(id)s].%(ext)s" \ "https://www.youtube.com/watch?v=xxxxx"
Пример 15: Скачать видео со скрытым плейлистом (в комментариях)
Сценарий: Автор опубликовал ссылки на другие видео в описании или комментариях, и вы хотите скачать их все.
Из описания видео
# Получить описание видео yt-dlp -O "%(description)s" "https://www.youtube.com/watch?v=xxxxx"Затем обработайте вывод и найдите ссылки на видео, создайте файл
urls.txtи скачайте:yt-dlp -a urls.txtИз комментариев (если доступны)
# Скачать информацию о видео с комментариями yt-dlp --write-comments \ -j "https://www.youtube.com/watch?v=xxxxx" > video_info.json # Обработать JSON и найти ссылки jq '.comments' video_info.json | grep youtube.com
Часто встречаемые проблемы и решения
Проблема: “ERROR: Unable to decrypt signature”
Причина: yt-dlp не может расшифровать подпись YouTube (требуется JavaScript).
Решение:
# Обновиться на nightly версию yt-dlp --update-to nightly # Убедиться, что JavaScript-рантайм установлен yt-dlp --js-runtimes deno,nodeПроблема: “ERROR: ffmpeg not found”
Причина: ffmpeg не установлен или не в PATH.
Решение:
# Linux sudo apt install ffmpeg # macOS brew install ffmpeg # Fedora sudo dnf install ffmpeg # Проверить установку ffmpeg -versionПроблема: “ERROR: Video unavailable”
Причина: Видео удалено, приватное, или заблокировано в вашем регионе.
Решение:
# Если видео заблокировано в регионе, используйте VPN/прокси yt-dlp --proxy socks5://127.0.0.1:1080 "https://..." # Если видео приватное, нужно быть залогиненным (yt-dlp не поддерживает OAuth) # Попробуйте скачать cookies из браузера yt-dlp --cookies-from-browser chrome "https://..."Проблема: “ERROR: This video requires authentication”
Причина: Видео доступно только для залогиненных пользователей.
Решение:
# Использовать cookies браузера yt-dlp --cookies-from-browser chrome \ "https://www.youtube.com/watch?v=xxxxx" # Или вручную через .netrc yt-dlp -n "https://..."Проблема: “WARNING: No video formats found”
Причина: YouTube может потребовать обновления yt-dlp.
Решение:
yt-dlp --update-to nightly # Или снова обновиться yt-dlp -U --update-to nightly
Оптимальные настройки для разных сценариев
Максимальное качество (HD архив)
yt-dlp \ -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best" \ --merge-output-format mp4 \ --write-info-json \ --write-description \ --write-thumbnail \ --embed-thumbnail \ -o "%(upload_date>%Y-%m-%d)s - %(title)s.%(ext)s" \ "https://www.youtube.com/watch?v=xxxxx"Быстрая загрузка (минимальный размер)
yt-dlp \ -f "worst[ext=mp4]" \ -r 2M \ "https://www.youtube.com/watch?v=xxxxx"Для мобильного устройства
yt-dlp \ -f "360/worst" \ "https://www.youtube.com/watch?v=xxxxx"Для портативного медиа-плеера (MP3)
yt-dlp \ -x --audio-format mp3 \ -o "%(title)s.%(ext)s" \ "https://www.youtube.com/watch?v=xxxxx"Архивирование плейлиста (полная информация)
yt-dlp \ -f best \ --download-archive archive.txt \ --write-info-json \ --write-description \ --write-subs --sub-langs all \ --write-thumbnail \ -o "%(playlist_index)s - %(title)s.%(ext)s" \ "https://www.youtube.com/playlist?list=PLxxxxxx"
Заключение
yt-dlp мощно и гибко работает с YouTube. Начните с простых команд:
# 1. Просто скачать видео yt-dlp "https://..." # 2. Скачать как аудио yt-dlp -x --audio-format mp3 "https://..." # 3. Скачать плейлист yt-dlp "https://www.youtube.com/playlist?list=..." # 4. Настроить через конфиг для удобства # Создайте ~/.config/yt-dlp/configПри необходимости добавляйте параметры для подписей, метаданных, фильтрации и т.д. Главное — регулярно обновляйте yt-dlp, чтобы не было проблем с YouTube.
-
-
Ох, ну и большая же инструкция по yt-dlp…
© 2024 - 2025 ExLends, Inc. Все права защищены.