Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Операционные системы
  4. Программы
  5. yt-dlp: Полное руководство по скачиванию видео

yt-dlp: Полное руководство по скачиванию видео

Запланировано Прикреплена Закрыта Перенесена Программы
3 Сообщения 2 Постеры 45 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • AladdinA Не в сети
    AladdinA Не в сети
    Aladdin
    js
    написал отредактировано
    #1

    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 — мощный и гибкий инструмент для скачивания видео. Его основные преимущества:

    ✅ Поддержка тысяч сайтов
    ✅ Гибкий выбор форматов и качества
    ✅ Встраивание метаданных и обложек
    ✅ Архивирование и фильтрация
    ✅ Конфигурационные файлы для удобства
    ✅ Регулярные обновления и активная поддержка

    Начните с простых команд и постепенно добавляйте нужные параметры. Конфиг файл значительно упростит вашу жизнь при частом использовании.

    1 ответ Последний ответ
    1
    • AladdinA Не в сети
      AladdinA Не в сети
      Aladdin
      js
      написал отредактировано
      #2

      Предварительно: Что нужно знать про YouTube и yt-dlp

      YouTube регулярно меняет защиту от скачивания, поэтому:

      1. Обновляйте yt-dlp часто — используйте nightly версию для лучшей совместимости

        yt-dlp --update-to nightly
        
      2. Требуется JavaScript-рантайм — для расшифровки подписей YouTube (yt-dlp-ejs)

        # Установить с нужными зависимостями
        pip install "yt-dlp[default]"
        
      3. Установите ffmpeg — нужен для объединения видео и аудио

        # Linux (Ubuntu/Debian)
        sudo apt install ffmpeg
        
        # macOS
        brew install ffmpeg
        
        # Fedora
        sudo dnf install ffmpeg
        
      4. Проверьте установку:

        yt-dlp --version
        ffmpeg -version
        

      Пример 1: Скачать одно видео в лучшем качестве

      Сценарий: Вы хотите скачать интересное видео с YouTube в лучшем доступном качестве.

      Самый простой способ

      yt-dlp "
      "

      Это загрузит видео с лучшим качеством видео + лучшим качеством аудио, объединит их в один файл. Файл сохранится в текущую папку с названием как название видео.

      Что происходит “под капотом”:

      1. yt-dlp соединяется с YouTube
      2. Получает информацию о доступных форматах
      3. Выбирает лучшее видео и лучшее аудио
      4. Скачивает их отдельно (они идут отдельно на YouTube)
      5. Использует ffmpeg для объединения в один MP4 файл
      6. Удаляет временные файлы

      Контролировать качество

      # 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 автоматически:

      1. Найдет все видео в плейлисте
      2. Скачает их одно за другим
      3. Сохранит с номерами: 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/config
      macOS ~/.config/yt-dlp/config
      Windows %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"
      

      Как это работает:

      1. yt-dlp проверяет доступность видео
      2. Если видео ещё недоступно, ждет 120 секунд
      3. Пытается снова
      4. Максимум ждет до 1800 секунд (30 минут)
      5. Как только видео доступно, начинает скачивание

      Скачивать с начала трансляции (если возможно)

      # Для некоторых сайтов (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:

      1. Проверит archive.txt
      2. Пропустит уже загруженные видео
      3. Скачает только новые видео
      4. Добавит их 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.

      1 ответ Последний ответ
      0
      • kirilljsxK Не в сети
        kirilljsxK Не в сети
        kirilljsx
        js
        написал отредактировано
        #3

        Ох, ну и большая же инструкция по yt-dlp…

        1 ответ Последний ответ
        0

        Категории

        • Главная
        • Новости
        • Фронтенд
        • Бекенд
        • Языки программирования

        Контакты

        • Сотрудничество
        • info@exlends.com
        • Наш чат
        • Наш ТГ канал

        © 2024 - 2025 ExLends, Inc. Все права защищены.

        Политика конфиденциальности
        • Войти

        • Нет учётной записи? Зарегистрироваться

        • Войдите или зарегистрируйтесь для поиска.
        • Первое сообщение
          Последнее сообщение
        0
        • Лента
        • Категории
        • Последние
        • Метки
        • Популярные
        • Пользователи
        • Группы