<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[yt-dlp: Полное руководство по скачиванию видео]]></title><description><![CDATA[<p dir="auto"><strong>yt-dlp</strong> — это мощный инструмент командной строки для скачивания видео с тысяч сайтов. По сути, это продвинутая версия известного youtube-dl, которая развивается активнее и имеет больше функций. Создан на основе прекращенного проекта youtube-dlc.</p>
<p dir="auto">yt-dlp позволяет скачивать видео, аудио и подписи с множества платформ: YouTube, Vimeo, Dailymotion, TikTok, Instagram, Twitch и многих других. Это полезно, если вы хотите сохранить контент локально, работать с видео офлайн или автоматизировать загрузку плейлистов.</p>
<hr />
<h2>Установка</h2>
<h3>Для Linux/BSD (рекомендуемый вариант)</h3>
<p dir="auto">Используйте платформонезависимый бинарник с поддержкой Python:</p>
<pre><code class="language-bash"># Скачать бинарник
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
</code></pre>
<h3>Через pip (если установлен Python 3.10+)</h3>
<pre><code class="language-bash">pip install yt-dlp
</code></pre>
<h3>Для Windows</h3>
<p dir="auto">Скачайте <code>yt-dlp.exe</code> со страницы релизов и поместите в папку, которая находится в PATH.</p>
<h3>Обновление</h3>
<pre><code class="language-bash"># Обновиться до последней версии
yt-dlp -U

# Переключиться на nightly-версию (рекомендуется для новых функций)
yt-dlp --update-to nightly

# Обновиться до конкретной версии
yt-dlp --update-to stable@2024.01.01
</code></pre>
<h3>Зависимости</h3>
<p dir="auto"><strong>Обязательная:</strong></p>
<ul>
<li>Python 3.10+ (или PyPy 3.11+)</li>
</ul>
<p dir="auto"><strong>Настоятельно рекомендуемые:</strong></p>
<ul>
<li><strong>ffmpeg</strong> и <strong>ffprobe</strong> — нужны для объединения видео и аудио, конвертации формата. Это не Python-пакет, а бинарник!</li>
<li><strong>deno</strong> или <strong>node.js</strong> — JavaScript-рантайм для расшифровки YouTube (требуется yt-dlp-ejs)</li>
</ul>
<p dir="auto"><strong>Опциональные:</strong></p>
<ul>
<li>curl_cffi — для обхода TLS-фингерпринтинга</li>
<li>mutagen — для встраивания обложек</li>
<li>pycryptodomex — для расшифровки AES-128 HLS-потоков</li>
</ul>
<p dir="auto">Чтобы установить все основные зависимости:</p>
<pre><code class="language-bash">pip install "yt-dlp[default]"
</code></pre>
<hr />
<h2>Базовое использование</h2>
<h3>Простое скачивание видео</h3>
<pre><code class="language-bash"># Скачать видео с YouTube
yt-dlp "<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe></div></div>"

# Скачать плейлист
yt-dlp "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<p dir="auto">Видео сохранится с автоматическим названием в текущую папку.</p>
<hr />
<h2>Выбор формата видео</h2>
<p dir="auto">Это одна из самых полезных функций yt-dlp. По умолчанию загружается лучшее доступное качество, но вы можете выбрать конкретный формат.</p>
<h3>Посмотреть доступные форматы</h3>
<pre><code class="language-bash">yt-dlp -F "<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe></div></div>"
</code></pre>
<p dir="auto">Вывод покажет список всех доступных форматов с ID:</p>
<pre><code>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            
</code></pre>
<p dir="auto"><strong>Что означает:</strong></p>
<ul>
<li><code>ID</code> — идентификатор формата для загрузки</li>
<li><code>EXT</code> — расширение файла</li>
<li><code>RES</code> — разрешение видео</li>
<li><code>FPS</code> — кадры в секунду</li>
<li><code>ACODEC</code> — кодек аудио</li>
<li><code>VCODEC</code> — кодек видео</li>
</ul>
<h3>Примеры выбора формата</h3>
<pre><code class="language-bash"># Загрузить лучший видеопоток с аудио (по умолчанию)
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&lt;100M]" "https://..."
</code></pre>
<p dir="auto"><strong>Почему это нужно:</strong> на некоторых сайтах видео и аудио загружаются отдельно. yt-dlp автоматически объединяет их через ffmpeg.</p>
<hr />
<h2>Сортировка форматов</h2>
<p dir="auto">Используйте флаг <code>-S</code> (–format-sort) для сортировки по качеству:</p>
<pre><code class="language-bash"># Сортировать по разрешению, затем кодеку видео
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://..."
</code></pre>
<hr />
<h2>Скачивание аудио</h2>
<h3>Преобразовать в MP3</h3>
<pre><code class="language-bash"># Скачать видео и конвертировать в MP3
yt-dlp -x --audio-format mp3 "https://..."
</code></pre>
<p dir="auto"><strong>Параметры:</strong></p>
<ul>
<li><code>-x</code> (–extract-audio) — извлечь только аудио</li>
<li><code>--audio-format mp3</code> — конвертировать в MP3</li>
</ul>
<h3>Другие форматы аудио</h3>
<pre><code class="language-bash"># AAC
yt-dlp -x --audio-format aac "https://..."

# Opus
yt-dlp -x --audio-format opus "https://..."

# Лучший доступный формат аудио
yt-dlp -x --audio-format best "https://..."
</code></pre>
<h3>Использовать готовые пресеты</h3>
<pre><code class="language-bash"># Загрузить как MP3 (готовый пресет)
yt-dlp -t mp3 "https://..."

# Загрузить как AAC
yt-dlp -t aac "https://..."

# Загрузить как MP4
yt-dlp -t mp4 "https://..."

# Загрузить как MKV
yt-dlp -t mkv "https://..."
</code></pre>
<hr />
<h2>Подписи (субтитры)</h2>
<pre><code class="language-bash"># Скачать видео с автогенерируемыми подписями
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://..."
</code></pre>
<hr />
<h2>Скачивание плейлистов</h2>
<h3>Базовое скачивание</h3>
<pre><code class="language-bash"># Скачать весь плейлист
yt-dlp "https://www.youtube.com/playlist?list=PLxxxxxx"

# Скачать только видео, игнорируя плейлист
yt-dlp --no-playlist "https://..."
</code></pre>
<h3>Выбирать конкретные видео</h3>
<pre><code class="language-bash"># Скачать видео с индексами 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://..."
</code></pre>
<h3>Фильтрация видео</h3>
<pre><code class="language-bash"># Скачать только видео длиннее 10 минут
yt-dlp --match-filters "duration&gt;600" "https://..."

# Скачать видео с более чем 1000 лайков
yt-dlp --match-filters "like_count&gt;1000" "https://..."

# Скачать видео, которые НЕ лайв-трансляции
yt-dlp --match-filters "!is_live" "https://..."
</code></pre>
<hr />
<h2>Выходное имя файла</h2>
<p dir="auto">Контролируйте, как называются скачанные файлы через <code>-o</code> (–output):</p>
<h3>Базовые шаблоны</h3>
<pre><code class="language-bash"># По умолчанию (название видео + 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://..."
</code></pre>
<h3>Примеры</h3>
<pre><code class="language-bash"># Все в подпапку
yt-dlp -o "downloads/%(title)s.%(ext)s" "https://..."

# По папкам по авторам
yt-dlp -o "%(uploader)s/%(title)s.%(ext)s" "https://..."

# С подходящим форматом даты
yt-dlp -o "%(upload_date&gt;%Y-%m-%d)s - %(title)s.%(ext)s" "https://..."
</code></pre>
<hr />
<h2>Метаданные</h2>
<h3>Сохранить информацию о видео</h3>
<pre><code class="language-bash"># Сохранить описание в .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://..."
</code></pre>
<hr />
<h2>Управление загрузкой</h2>
<h3>Лимиты размера</h3>
<pre><code class="language-bash"># Скачать только если файл меньше 500 МБ
yt-dlp --max-filesize 500M "https://..."

# Скачать только если файл больше 10 МБ
yt-dlp --min-filesize 10M "https://..."
</code></pre>
<h3>Ограничение скорости</h3>
<pre><code class="language-bash"># Ограничить скорость до 1 МБ/с
yt-dlp -r 1M "https://..."

# Ограничить до 500 КБ/с
yt-dlp -r 500K "https://..."
</code></pre>
<h3>Повторные попытки и таймауты</h3>
<pre><code class="language-bash"># 20 повторных попыток при ошибке (по умолчанию 10)
yt-dlp --retries 20 "https://..."

# Бесконечные повторы
yt-dlp --retries infinite "https://..."

# Таймаут соединения 30 секунд
yt-dlp --socket-timeout 30 "https://..."
</code></pre>
<h3>Параллельная загрузка фрагментов</h3>
<pre><code class="language-bash"># Загружать 5 фрагментов одновременно (для DASH/HLS)
yt-dlp -N 5 "https://..."
</code></pre>
<hr />
<h2>Продвинутые техники</h2>
<h3>Скачивание из файла списка</h3>
<p dir="auto">Создайте файл <code>urls.txt</code>:</p>
<pre><code><div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe></div></div>
<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/jNQXAC9IVRw" frameborder="0" allowfullscreen></iframe></div></div>
https://www.youtube.com/playlist?list=PLxxxxxx
</code></pre>
<p dir="auto">Затем:</p>
<pre><code class="language-bash">yt-dlp -a urls.txt
</code></pre>
<h3>Прокси и VPN</h3>
<pre><code class="language-bash"># Использовать 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://..."
</code></pre>
<h3>Архивирование загруженных видео</h3>
<p dir="auto">Предотвращает повторную загрузку одного видео:</p>
<pre><code class="language-bash"># Скачать плейлист, сохраняя ID в archive.txt
yt-dlp --download-archive archive.txt "https://..."

# При следующем запуске видео из archive.txt пропустятся
yt-dlp --download-archive archive.txt "https://..."
</code></pre>
<h3>Скачивание только новых видео по дате</h3>
<pre><code class="language-bash"># Видео, загруженные после 1 января 2024
yt-dlp --dateafter 20240101 "https://..."

# Видео за последние 7 дней
yt-dlp --dateafter "today-7days" "https://..."

# Видео конкретного дня
yt-dlp --date 20240115 "https://..."
</code></pre>
<hr />
<h2>Обработка после загрузки</h2>
<h3>Post-processing с ffmpeg</h3>
<pre><code class="language-bash"># Конвертировать MKV в MP4
yt-dlp --remux-video mp4 "https://..."

# Конвертировать в формат Matroska
yt-dlp --remux-video mkv "https://..."

# Конвертировать видео в другой кодек
yt-dlp --recode-video mp4 "https://..."
</code></pre>
<h3>Обработка разделов/глав</h3>
<pre><code class="language-bash"># Скачать только раздел "Intro" (если доступен)
yt-dlp --download-sections "Intro" "https://..."

# Скачать видео с 1:30 до 5:00 минут
yt-dlp --download-sections "*1:30-5:00" "https://..."
</code></pre>
<hr />
<h2>Конфигурационный файл</h2>
<p dir="auto">Вместо того чтобы каждый раз писать длинные команды, сохраните настройки в файл.</p>
<p dir="auto">Создайте <code>yt-dlp.conf</code> в одном из этих мест:</p>
<ul>
<li><code>/etc/yt-dlp/config</code> (системная конфиг)</li>
<li><code>~/.config/yt-dlp/config</code> (домашняя конфиг)</li>
<li><code>./yt-dlp.conf</code> (папка с бинарником или текущая папка)</li>
</ul>
<p dir="auto"><strong>Пример конфига:</strong></p>
<pre><code># Формат видео
-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
</code></pre>
<p dir="auto">Теперь все эти параметры применятся автоматически:</p>
<pre><code class="language-bash">yt-dlp "https://..."
</code></pre>
<hr />
<h2>Вывод информации без загрузки</h2>
<h3>Просмотреть информацию о видео</h3>
<pre><code class="language-bash"># Вывести информацию в 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://..."
</code></pre>
<h3>Проверка без загрузки</h3>
<pre><code class="language-bash"># Симуляция загрузки (проверить формат, но не скачивать)
yt-dlp -s "https://..."

# Показать форматы без скачивания
yt-dlp -F "https://..."

# Показать подписи без скачивания
yt-dlp --list-subs "https://..."
</code></pre>
<hr />
<h2>Примеры реальных сценариев</h2>
<h3>Сценарий 1: Скачать песню с YouTube в MP3</h3>
<pre><code class="language-bash">yt-dlp -x --audio-format mp3 -o "%(title)s.%(ext)s" "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Сценарий 2: Скачать плейлист с русскими субтитрами</h3>
<pre><code class="language-bash">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"
</code></pre>
<h3>Сценарий 3: Скачать видео и встроить обложку</h3>
<pre><code class="language-bash">yt-dlp -f best \
  --write-thumbnail \
  --embed-thumbnail \
  --write-info-json \
  "https://..."
</code></pre>
<h3>Сценарий 4: Скачать только новые видео из плейлиста</h3>
<pre><code class="language-bash"># Первый раз:
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"
</code></pre>
<h3>Сценарий 5: Скачать видео через прокси, ограничив скорость</h3>
<pre><code class="language-bash">yt-dlp \
  --proxy socks5://127.0.0.1:1080 \
  -r 2M \
  -f best \
  "https://..."
</code></pre>
<hr />
<h2>Часто встречаемые ошибки и решения</h2>
<h3>Ошибка: “No video formats found”</h3>
<p dir="auto"><strong>Причина:</strong> Видео недоступно в вашем регионе или заблокировано.</p>
<p dir="auto"><strong>Решение:</strong></p>
<pre><code class="language-bash"># Использовать прокси
yt-dlp --proxy socks5://127.0.0.1:1080 "https://..."
</code></pre>
<h3>Ошибка: “ffmpeg not found”</h3>
<p dir="auto"><strong>Причина:</strong> ffmpeg не установлен.</p>
<p dir="auto"><strong>Решение:</strong></p>
<pre><code class="language-bash"># Linux
sudo apt install ffmpeg

# macOS
brew install ffmpeg

# Windows - скачайте с ffmpeg.org
</code></pre>
<h3>Видео и аудио не объединяются</h3>
<p dir="auto"><strong>Причина:</strong> ffmpeg не установлен или не указан путь.</p>
<p dir="auto"><strong>Решение:</strong></p>
<pre><code class="language-bash"># Убедитесь, что ffmpeg в PATH
which ffmpeg

# Если нет, установите его (см. выше)
</code></pre>
<h3>Требуется аутентификация</h3>
<p dir="auto"><strong>Причина:</strong> Видео защищено или требует логина.</p>
<p dir="auto"><strong>Решение:</strong></p>
<pre><code class="language-bash">yt-dlp -u username -p password "https://..."

# Или через .netrc файл
yt-dlp -n "https://..."
</code></pre>
<hr />
<h2>Встраивание в код (Python)</h2>
<p dir="auto">Если вы хотите использовать yt-dlp в своем Python-приложении:</p>
<pre><code class="language-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'])
</code></pre>
<pre><code class="language-python"># Более продвинутая загрузка с обработкой
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']}")
</code></pre>
<hr />
<h2>Обновление и версионирование</h2>
<p dir="auto"><strong>yt-dlp</strong> имеет три канала обновления:</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">Канал</th>
<th style="text-align:left">Описание</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>stable</code></td>
<td style="text-align:left">Стабильная версия (по умолчанию), регулярно тестируется</td>
</tr>
<tr>
<td style="text-align:left"><code>nightly</code></td>
<td style="text-align:left">Ежедневные релизы, рекомендуется для обычных пользователей</td>
</tr>
<tr>
<td style="text-align:left"><code>master</code></td>
<td style="text-align:left">Релиз после каждого коммита, может содержать баги</td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>Переключение:</strong></p>
<pre><code class="language-bash"># На 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://..."
</code></pre>
<hr />
<h2>Заключение</h2>
<p dir="auto"><strong>yt-dlp</strong> — мощный и гибкий инструмент для скачивания видео. Его основные преимущества:</p>
<p dir="auto"><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=1bd9ff6b60a" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Поддержка тысяч сайтов<br />
<img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=1bd9ff6b60a" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Гибкий выбор форматов и качества<br />
<img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=1bd9ff6b60a" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Встраивание метаданных и обложек<br />
<img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=1bd9ff6b60a" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Архивирование и фильтрация<br />
<img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=1bd9ff6b60a" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Конфигурационные файлы для удобства<br />
<img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=1bd9ff6b60a" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Регулярные обновления и активная поддержка</p>
<p dir="auto">Начните с простых команд и постепенно добавляйте нужные параметры. Конфиг файл значительно упростит вашу жизнь при частом использовании.</p>
]]></description><link>https://forum.exlends.ru/topic/389/yt-dlp-polnoe-rukovodstvo-po-skachivaniyu-video</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 08:18:23 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/389.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jan 2026 13:22:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to yt-dlp: Полное руководство по скачиванию видео on Thu, 15 Jan 2026 20:00:41 GMT]]></title><description><![CDATA[<p dir="auto">Ох, ну и большая же инструкция по yt-dlp…</p>
]]></description><link>https://forum.exlends.ru/post/1274</link><guid isPermaLink="true">https://forum.exlends.ru/post/1274</guid><dc:creator><![CDATA[kirilljsx]]></dc:creator><pubDate>Thu, 15 Jan 2026 20:00:41 GMT</pubDate></item><item><title><![CDATA[Reply to yt-dlp: Полное руководство по скачиванию видео on Mon, 12 Jan 2026 13:25:37 GMT]]></title><description><![CDATA[<h2>Предварительно: Что нужно знать про YouTube и yt-dlp</h2>
<p dir="auto">YouTube регулярно меняет защиту от скачивания, поэтому:</p>
<ol>
<li>
<p dir="auto"><strong>Обновляйте yt-dlp часто</strong> — используйте nightly версию для лучшей совместимости</p>
<pre><code class="language-bash">yt-dlp --update-to nightly
</code></pre>
</li>
<li>
<p dir="auto"><strong>Требуется JavaScript-рантайм</strong> — для расшифровки подписей YouTube (yt-dlp-ejs)</p>
<pre><code class="language-bash"># Установить с нужными зависимостями
pip install "yt-dlp[default]"
</code></pre>
</li>
<li>
<p dir="auto"><strong>Установите ffmpeg</strong> — нужен для объединения видео и аудио</p>
<pre><code class="language-bash"># Linux (Ubuntu/Debian)
sudo apt install ffmpeg

# macOS
brew install ffmpeg

# Fedora
sudo dnf install ffmpeg
</code></pre>
</li>
<li>
<p dir="auto"><strong>Проверьте установку:</strong></p>
<pre><code class="language-bash">yt-dlp --version
ffmpeg -version
</code></pre>
</li>
</ol>
<hr />
<h2>Пример 1: Скачать одно видео в лучшем качестве</h2>
<p dir="auto"><strong>Сценарий:</strong> Вы хотите скачать интересное видео с YouTube в лучшем доступном качестве.</p>
<h3>Самый простой способ</h3>
<pre><code class="language-bash">yt-dlp "<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe></div></div>"
</code></pre>
<p dir="auto">Это загрузит видео с лучшим качеством видео + лучшим качеством аудио, объединит их в один файл. Файл сохранится в текущую папку с названием как название видео.</p>
<h3>Что происходит “под капотом”:</h3>
<ol>
<li>yt-dlp соединяется с YouTube</li>
<li>Получает информацию о доступных форматах</li>
<li>Выбирает лучшее видео и лучшее аудио</li>
<li>Скачивает их отдельно (они идут отдельно на YouTube)</li>
<li>Использует ffmpeg для объединения в один MP4 файл</li>
<li>Удаляет временные файлы</li>
</ol>
<h3>Контролировать качество</h3>
<pre><code class="language-bash"># HD качество (720p) или лучшее, что есть
yt-dlp -f "720/best" "<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe></div></div>"

# Точно 1080p, если нет — ошибка
yt-dlp -f "1080" "<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe></div></div>"

# 4K качество
yt-dlp -f "2160/best" "<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe></div></div>"

# Минимальное качество (экономия трафика)
yt-dlp -f "worst" "<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe></div></div>"
</code></pre>
<h3>Увидеть все доступные форматы</h3>
<pre><code class="language-bash">yt-dlp -F "<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe></div></div>"
</code></pre>
<p dir="auto">Вывод:</p>
<pre><code>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
</code></pre>
<p dir="auto"><strong>Объяснение:</strong></p>
<ul>
<li><code>ID 251</code> — лучший аудиопоток (Opus 160k)</li>
<li><code>ID 22</code> — видео 720p с встроенным аудио (для старых плееров)</li>
<li><code>ID 249-251</code> — чистый аудио (без видео)</li>
</ul>
<h3>Практический пример: качество vs размер файла</h3>
<pre><code class="language-bash"># Маленький файл (~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&lt;200M]" "https://..."
</code></pre>
<hr />
<h2>Пример 2: Скачать только аудио (музыка с YouTube)</h2>
<p dir="auto"><strong>Сценарий:</strong> Вы нашли отличную музыку на YouTube и хотите сохранить как MP3.</p>
<h3>Быстрый способ</h3>
<pre><code class="language-bash">yt-dlp -x --audio-format mp3 "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto"><strong>Что происходит:</strong></p>
<ul>
<li><code>-x</code> — извлечь только аудио (игнорировать видео)</li>
<li><code>--audio-format mp3</code> — конвертировать в MP3 через ffmpeg</li>
</ul>
<h3>Разные форматы аудио</h3>
<pre><code class="language-bash"># 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://..."
</code></pre>
<h3>С красивым названием файла</h3>
<pre><code class="language-bash">yt-dlp -x --audio-format mp3 \
  -o "%(artist)s - %(title)s.%(ext)s" \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">Файл сохранится как: <code>Автор - Название песни.mp3</code></p>
<h3>Скачать несколько песен</h3>
<p dir="auto">Создайте файл <code>playlist.txt</code>:</p>
<pre><code>https://www.youtube.com/watch?v=song1
https://www.youtube.com/watch?v=song2
https://www.youtube.com/watch?v=song3
</code></pre>
<p dir="auto">Затем:</p>
<pre><code class="language-bash">yt-dlp -x --audio-format mp3 \
  -o "%(title)s.%(ext)s" \
  -a playlist.txt
</code></pre>
<hr />
<h2>Пример 3: Скачать плейлист</h2>
<p dir="auto"><strong>Сценарий:</strong> Вы нашли плейлист с интересными видео и хотите скачать их все.</p>
<h3>Скачать весь плейлист</h3>
<pre><code class="language-bash">yt-dlp "https://www.youtube.com/playlist?list=PLxxxxxxxxxxxxxx"
</code></pre>
<p dir="auto">yt-dlp автоматически:</p>
<ol>
<li>Найдет все видео в плейлисте</li>
<li>Скачает их одно за другим</li>
<li>Сохранит с номерами: <code>01 - название.mp4</code>, <code>02 - название.mp4</code>, и т.д.</li>
</ol>
<h3>Видеть, сколько видео в плейлисте</h3>
<pre><code class="language-bash">yt-dlp -s --list-formats "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<h3>Скачать только конкретные видео</h3>
<pre><code class="language-bash"># Только первые 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"
</code></pre>
<h3>С красивой структурой файлов</h3>
<pre><code class="language-bash">yt-dlp -o "%(playlist_index)s - %(title)s.%(ext)s" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<p dir="auto">Результат:</p>
<pre><code>01 - Введение.mp4
02 - Основы.mp4
03 - Практика.mp4
</code></pre>
<h3>По папкам по авторам</h3>
<pre><code class="language-bash">yt-dlp -o "%(uploader)s/%(playlist_index)s - %(title)s.%(ext)s" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<p dir="auto">Результат:</p>
<pre><code>Иван Петров/
  ├─ 01 - Видео 1.mp4
  └─ 02 - Видео 2.mp4
</code></pre>
<h3>Плейлист с подписями на русском</h3>
<pre><code class="language-bash">yt-dlp --write-auto-subs --sub-langs ru \
  -o "%(playlist_index)s - %(title)s.%(ext)s" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<p dir="auto">Каждое видео будет иметь файл <code>.ru.vtt</code> с русскими субтитрами.</p>
<hr />
<h2>Пример 4: Скачать видео канала (все видео от автора)</h2>
<p dir="auto"><strong>Сценарий:</strong> Вы подписаны на канал и хотите архивировать все видео.</p>
<h3>Скачать все видео канала</h3>
<pre><code class="language-bash">yt-dlp "https://www.youtube.com/@username"
</code></pre>
<p dir="auto">или</p>
<pre><code class="language-bash">yt-dlp "<div class="embed-wrapper"><div class="embed-container"><iframe src="https://www.youtube.com/embed/ChannelName" frameborder="0" allowfullscreen></iframe></div></div>"
</code></pre>
<p dir="auto">yt-dlp загрузит ВСЕ видео с канала (это может быть долго!).</p>
<h3>Скачать только последние N видео</h3>
<pre><code class="language-bash"># Только последние 50 видео
yt-dlp -I 1:50 "https://www.youtube.com/@username"

# Последние 20 видео (от новых к старым)
yt-dlp -I :20 "https://www.youtube.com/@username"
</code></pre>
<h3>С архивированием (не скачивать дважды)</h3>
<pre><code class="language-bash"># Первый раз:
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"
</code></pre>
<p dir="auto">Файл <code>downloaded.txt</code> будет содержать ID скачанных видео. При повторном запуске они пропустятся.</p>
<hr />
<h2>Пример 5: Скачать видео с определенными субтитрами</h2>
<p dir="auto"><strong>Сценарий:</strong> Видео на английском, но вам нужны русские субтитры, или автоматические субтитры для дальнейшей обработки.</p>
<h3>Видеть доступные субтитры</h3>
<pre><code class="language-bash">yt-dlp --list-subs "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">Вывод:</p>
<pre><code>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
</code></pre>
<h3>Скачать видео с русскими субтитрами</h3>
<pre><code class="language-bash">yt-dlp --write-subs --sub-langs ru \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">Скачается видео + файл <code>видео.ru.vtt</code> с русскими субтитрами.</p>
<h3>Скачать автоматические субтитры (если нет созданных)</h3>
<pre><code class="language-bash">yt-dlp --write-auto-subs --sub-langs ru \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Скачать субтитры нескольких языков</h3>
<pre><code class="language-bash">yt-dlp --write-subs --sub-langs ru,en,de \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">Результат:</p>
<pre><code>видео.mp4
видео.ru.vtt
видео.en.vtt
видео.de.vtt
</code></pre>
<h3>Скачать все доступные субтитры</h3>
<pre><code class="language-bash">yt-dlp --write-subs --sub-langs all \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Изменить формат субтитров</h3>
<pre><code class="language-bash"># 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://..."
</code></pre>
<h3>Практический пример: видео с субтитрами и обложкой</h3>
<pre><code class="language-bash">yt-dlp --write-subs --sub-langs ru,en \
  --write-thumbnail \
  --embed-thumbnail \
  -o "%(title)s.%(ext)s" \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">Результат:</p>
<pre><code>Название видео.mp4        (с встроенной обложкой)
Название видео.ru.vtt     (русские субтитры)
Название видео.en.vtt     (английские субтитры)
</code></pre>
<hr />
<h2>Пример 6: Скачать видео с метаданными и обложкой</h2>
<p dir="auto"><strong>Сценарий:</strong> Вы хотите сохранить не только видео, но и всю информацию о нем (описание, обложка, дата публикации).</p>
<h3>Все метаданные</h3>
<pre><code class="language-bash">yt-dlp --write-info-json \
  --write-description \
  --write-thumbnail \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">Результат:</p>
<pre><code>видео.mp4                (само видео)
видео.info.json          (метаданные в JSON)
видео.description        (описание)
видео.jpg                (обложка)
</code></pre>
<h3>Встроить обложку в видеофайл</h3>
<pre><code class="language-bash">yt-dlp --write-thumbnail \
  --embed-thumbnail \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">Обложка будет встроена в MP4 файл, и плеер покажет её как превью.</p>
<h3>Практический пример: архивирование видео</h3>
<pre><code class="language-bash">yt-dlp \
  --write-info-json \
  --write-description \
  --write-thumbnail \
  --embed-thumbnail \
  --write-subs --sub-langs ru,en \
  -o "%(upload_date&gt;%Y-%m-%d)s - %(title)s.%(ext)s" \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">Результат:</p>
<pre><code>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
</code></pre>
<hr />
<h2>Пример 7: Скачать видео с фильтрацией по продолжительности или дате</h2>
<p dir="auto"><strong>Сценарий:</strong> В плейлисте тысячи видео, вы хотите скачать только видео длиннее 30 минут или загруженные в последний месяц.</p>
<h3>Фильтр по продолжительности</h3>
<pre><code class="language-bash"># Только видео длиннее 30 минут (1800 секунд)
yt-dlp --match-filters "duration&gt;1800" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"

# Видео короче 10 минут
yt-dlp --match-filters "duration&lt;600" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"

# Видео между 5 и 30 минутами
yt-dlp --match-filters "duration&gt;300 &amp; duration&lt;1800" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<h3>Фильтр по дате загрузки</h3>
<pre><code class="language-bash"># Видео, загруженные после 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"
</code></pre>
<h3>Фильтр по количеству лайков</h3>
<pre><code class="language-bash"># Только популярные видео (более 10000 лайков)
yt-dlp --match-filters "like_count&gt;10000" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"

# Видео с более чем 1000 комментариев
yt-dlp --match-filters "comment_count&gt;1000" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<h3>Исключить видео</h3>
<pre><code class="language-bash"># Скачать всё, кроме лайв-трансляций
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"
</code></pre>
<h3>Комбинирование фильтров</h3>
<pre><code class="language-bash"># Видео после 1 января, длиннее 10 минут, с более чем 100 лайков
yt-dlp --dateafter 20240101 \
  --match-filters "duration&gt;600 &amp; like_count&gt;100" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<hr />
<h2>Пример 8: Скачать видео с ограничением скорости (не грузить интернет)</h2>
<p dir="auto"><strong>Сценарий:</strong> Вы хотите скачивать видео в фоне, но не перегружать интернет для других приложений.</p>
<h3>Базовое ограничение скорости</h3>
<pre><code class="language-bash"># Максимум 1 МБ/сек
yt-dlp -r 1M "https://www.youtube.com/watch?v=xxxxx"

# Максимум 500 КБ/сек
yt-dlp -r 500K "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>С параллельной загрузкой фрагментов</h3>
<p dir="auto">YouTube передает видео в виде фрагментов (chunks). Вы можете загружать несколько одновременно:</p>
<pre><code class="language-bash"># Загружать 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"
</code></pre>
<hr />
<h2>Пример 9: Скачать видео через прокси/VPN</h2>
<p dir="auto"><strong>Сценарий:</strong> Видео заблокировано в вашем регионе, нужно использовать VPN или прокси.</p>
<h3>Через SOCKS5 прокси</h3>
<pre><code class="language-bash"># Если у вас локально работает 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"
</code></pre>
<h3>Через HTTP прокси</h3>
<pre><code class="language-bash">yt-dlp --proxy http://proxy.example.com:8080 \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Принудительно IPv6 или IPv4</h3>
<pre><code class="language-bash"># Только IPv6
yt-dlp -6 "https://www.youtube.com/watch?v=xxxxx"

# Только IPv4
yt-dlp -4 "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Практический пример: через Tor</h3>
<p dir="auto">Если у вас запущен Tor браузер или Tor daemon на localhost:9050:</p>
<pre><code class="language-bash">yt-dlp --proxy socks5://127.0.0.1:9050 \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<hr />
<h2>Пример 10: Полный конфиг для удобного использования</h2>
<p dir="auto"><strong>Сценарий:</strong> Вы часто скачиваете видео с YouTube и хотите автоматизировать процесс.</p>
<h3>Создайте файл <code>yt-dlp.conf</code></h3>
<pre><code># ~/.config/yt-dlp/config

# Формат: лучшее видео + лучшее аудио в MP4
-f bestvideo+bestaudio/best
--merge-output-format mp4

# Название файла с датой загрузки
-o "%(upload_date&gt;%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
</code></pre>
<h3>Теперь просто используйте:</h3>
<pre><code class="language-bash"># Скачать видео (все параметры из конфига)
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"
</code></pre>
<h3>Расположение конфига</h3>
<p dir="auto">На разных системах конфиг кладется в разные места:</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Система</th>
<th>Путь</th>
</tr>
</thead>
<tbody>
<tr>
<td>Linux/BSD</td>
<td><code>~/.config/yt-dlp/config</code> или <code>/etc/yt-dlp/config</code></td>
</tr>
<tr>
<td>macOS</td>
<td><code>~/.config/yt-dlp/config</code></td>
</tr>
<tr>
<td>Windows</td>
<td><code>%APPDATA%\yt-dlp\config.txt</code></td>
</tr>
<tr>
<td>Текущая папка</td>
<td><code>./yt-dlp.conf</code></td>
</tr>
</tbody>
</table>
<hr />
<h2>Пример 11: Скачать только часть видео (рубрики/главы)</h2>
<p dir="auto"><strong>Сценарий:</strong> Видео состоит из нескольких глав (например, лекция с несколькими темами), вы хотите скачать только нужную часть.</p>
<h3>Видеть доступные главы</h3>
<pre><code class="language-bash">yt-dlp -O "%(chapters)s" "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">или через JSON:</p>
<pre><code class="language-bash">yt-dlp -j "https://www.youtube.com/watch?v=xxxxx" | jq '.chapters'
</code></pre>
<h3>Скачать только одну главу</h3>
<pre><code class="language-bash"># Скачать главу "Введение"
yt-dlp --download-sections "Введение" \
  "https://www.youtube.com/watch?v=xxxxx"

# Скачать главу "Практика" (если есть)
yt-dlp --download-sections "Практика" \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Скачать по времени (временной диапазон)</h3>
<pre><code class="language-bash"># От 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"
</code></pre>
<h3>Несколько секций</h3>
<pre><code class="language-bash"># Скачать главы "Введение" и "Основы"
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"
</code></pre>
<p dir="auto"><strong>Требует ffmpeg</strong> для работы!</p>
<hr />
<h2>Пример 12: Скачивание лайв-трансляций</h2>
<p dir="auto"><strong>Сценарий:</strong> Вам нужно скачать запись лайв-трансляции или начать скачивание во время трансляции.</p>
<h3>Скачать завершенную трансляцию</h3>
<pre><code class="language-bash"># Просто как обычное видео
yt-dlp "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">YouTube сохраняет лайв-трансляции как обычные видео после завершения.</p>
<h3>Дождаться начала трансляции и скачать</h3>
<pre><code class="language-bash"># Ждать 120 секунд между попытками, максимум 30 минут (1800 сек)
yt-dlp --wait-for-video 120-1800 \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto"><strong>Как это работает:</strong></p>
<ol>
<li>yt-dlp проверяет доступность видео</li>
<li>Если видео ещё недоступно, ждет 120 секунд</li>
<li>Пытается снова</li>
<li>Максимум ждет до 1800 секунд (30 минут)</li>
<li>Как только видео доступно, начинает скачивание</li>
</ol>
<h3>Скачивать с начала трансляции (если возможно)</h3>
<pre><code class="language-bash"># Для некоторых сайтов (YouTube, Twitch) можно скачать с начала
yt-dlp --live-from-start "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<hr />
<h2>Пример 13: Скачать видео и не скачивать дважды</h2>
<p dir="auto"><strong>Сценарий:</strong> У вас есть папка с видео, вы хотите добавить новые видео из плейлиста, но не скачивать старые.</p>
<h3>Использование архива</h3>
<pre><code class="language-bash"># Первый раз: скачать плейлист и записать ID в archive.txt
yt-dlp --download-archive archive.txt \
  -o "%(playlist_index)s - %(title)s.%(ext)s" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<p dir="auto">Файл <code>archive.txt</code> будет содержать:</p>
<pre><code>youtube dQw4w9WgXcQ
youtube jNQXAC9IVRw
youtube xxxxx
</code></pre>
<h3>При повторном запуске</h3>
<pre><code class="language-bash"># Запустите ту же команду
yt-dlp --download-archive archive.txt \
  -o "%(playlist_index)s - %(title)s.%(ext)s" \
  "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<p dir="auto">yt-dlp:</p>
<ol>
<li>Проверит <code>archive.txt</code></li>
<li>Пропустит уже загруженные видео</li>
<li>Скачает только новые видео</li>
<li>Добавит их ID в <code>archive.txt</code></li>
</ol>
<h3>Остановиться при обнаружении скачанного видео</h3>
<pre><code class="language-bash"># Полезно, если видео в плейлисте в хронологическом порядке
yt-dlp --download-archive archive.txt \
  --break-on-existing \
  "https://www.youtube.com/playlist?list=PLxxxxxx"
</code></pre>
<p dir="auto">Когда yt-dlp обнаружит видео, которое уже в <code>archive.txt</code>, он остановится (не будет проверять остальные видео).</p>
<hr />
<h2>Пример 14: Скачать видео и конвертировать в другой формат</h2>
<p dir="auto"><strong>Сценарий:</strong> YouTube отдает видео в контейнере WebM или MP4, а вам нужен MKV для Plex или другого медиа-сервера.</p>
<h3>Просто конвертировать контейнер (быстро)</h3>
<pre><code class="language-bash"># 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"
</code></pre>
<p dir="auto"><strong>Remux</strong> очень быстро, потому что просто переупаковывает видео без переконкодирования.</p>
<h3>Переконкодировать видео в другой кодек (медленно)</h3>
<pre><code class="language-bash"># Переконкодировать в 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"
</code></pre>
<h3>Практический пример: для Plex медиа-сервера</h3>
<pre><code class="language-bash">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"
</code></pre>
<hr />
<h2>Пример 15: Скачать видео со скрытым плейлистом (в комментариях)</h2>
<p dir="auto"><strong>Сценарий:</strong> Автор опубликовал ссылки на другие видео в описании или комментариях, и вы хотите скачать их все.</p>
<h3>Из описания видео</h3>
<pre><code class="language-bash"># Получить описание видео
yt-dlp -O "%(description)s" "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<p dir="auto">Затем обработайте вывод и найдите ссылки на видео, создайте файл <code>urls.txt</code> и скачайте:</p>
<pre><code class="language-bash">yt-dlp -a urls.txt
</code></pre>
<h3>Из комментариев (если доступны)</h3>
<pre><code class="language-bash"># Скачать информацию о видео с комментариями
yt-dlp --write-comments \
  -j "https://www.youtube.com/watch?v=xxxxx" &gt; video_info.json

# Обработать JSON и найти ссылки
jq '.comments' video_info.json | grep youtube.com
</code></pre>
<hr />
<h2>Часто встречаемые проблемы и решения</h2>
<h3>Проблема: “ERROR: Unable to decrypt signature”</h3>
<p dir="auto"><strong>Причина:</strong> yt-dlp не может расшифровать подпись YouTube (требуется JavaScript).</p>
<p dir="auto"><strong>Решение:</strong></p>
<pre><code class="language-bash"># Обновиться на nightly версию
yt-dlp --update-to nightly

# Убедиться, что JavaScript-рантайм установлен
yt-dlp --js-runtimes deno,node
</code></pre>
<h3>Проблема: “ERROR: ffmpeg not found”</h3>
<p dir="auto"><strong>Причина:</strong> ffmpeg не установлен или не в PATH.</p>
<p dir="auto"><strong>Решение:</strong></p>
<pre><code class="language-bash"># Linux
sudo apt install ffmpeg

# macOS
brew install ffmpeg

# Fedora
sudo dnf install ffmpeg

# Проверить установку
ffmpeg -version
</code></pre>
<h3>Проблема: “ERROR: Video unavailable”</h3>
<p dir="auto"><strong>Причина:</strong> Видео удалено, приватное, или заблокировано в вашем регионе.</p>
<p dir="auto"><strong>Решение:</strong></p>
<pre><code class="language-bash"># Если видео заблокировано в регионе, используйте VPN/прокси
yt-dlp --proxy socks5://127.0.0.1:1080 "https://..."

# Если видео приватное, нужно быть залогиненным (yt-dlp не поддерживает OAuth)
# Попробуйте скачать cookies из браузера
yt-dlp --cookies-from-browser chrome "https://..."
</code></pre>
<h3>Проблема: “ERROR: This video requires authentication”</h3>
<p dir="auto"><strong>Причина:</strong> Видео доступно только для залогиненных пользователей.</p>
<p dir="auto"><strong>Решение:</strong></p>
<pre><code class="language-bash"># Использовать cookies браузера
yt-dlp --cookies-from-browser chrome \
  "https://www.youtube.com/watch?v=xxxxx"

# Или вручную через .netrc
yt-dlp -n "https://..."
</code></pre>
<h3>Проблема: “WARNING: No video formats found”</h3>
<p dir="auto"><strong>Причина:</strong> YouTube может потребовать обновления yt-dlp.</p>
<p dir="auto"><strong>Решение:</strong></p>
<pre><code class="language-bash">yt-dlp --update-to nightly

# Или снова обновиться
yt-dlp -U --update-to nightly
</code></pre>
<hr />
<h2>Оптимальные настройки для разных сценариев</h2>
<h3>Максимальное качество (HD архив)</h3>
<pre><code class="language-bash">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&gt;%Y-%m-%d)s - %(title)s.%(ext)s" \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Быстрая загрузка (минимальный размер)</h3>
<pre><code class="language-bash">yt-dlp \
  -f "worst[ext=mp4]" \
  -r 2M \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Для мобильного устройства</h3>
<pre><code class="language-bash">yt-dlp \
  -f "360/worst" \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Для портативного медиа-плеера (MP3)</h3>
<pre><code class="language-bash">yt-dlp \
  -x --audio-format mp3 \
  -o "%(title)s.%(ext)s" \
  "https://www.youtube.com/watch?v=xxxxx"
</code></pre>
<h3>Архивирование плейлиста (полная информация)</h3>
<pre><code class="language-bash">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"
</code></pre>
<hr />
<h2>Заключение</h2>
<p dir="auto">yt-dlp мощно и гибко работает с YouTube. Начните с простых команд:</p>
<pre><code class="language-bash"># 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
</code></pre>
<p dir="auto">При необходимости добавляйте параметры для подписей, метаданных, фильтрации и т.д. Главное — регулярно обновляйте yt-dlp, чтобы не было проблем с YouTube.</p>
]]></description><link>https://forum.exlends.ru/post/1270</link><guid isPermaLink="true">https://forum.exlends.ru/post/1270</guid><dc:creator><![CDATA[Aladdin]]></dc:creator><pubDate>Mon, 12 Jan 2026 13:25:37 GMT</pubDate></item></channel></rss>