Перейти к содержимому
yt-dlp

Запись трансляций — генератор команд yt-dlp

Соберите команду yt-dlp для записи прямой трансляции — с начала, если платформа это позволяет.

Необязательно. Если оставить пустым, команда закончится словом URL, которое вы подставите сами.

Ваша команда

yt-dlp --merge-output-format mkv --no-playlist -N 4 --live-from-start --wait-for-video 60-300 'https://www.youtube.com/watch?v=live_stream_id'
Основное

Только звук извлекает звуковую дорожку и отбрасывает видео.

Видео и качество

Ограничивает высоту. yt-dlp всё равно выберет лучшую дорожку в пределах этого ограничения.

Тип файла, в который объединяются раздельные видео- и аудиодорожки.

Дополнительные опции (3)

Заменяет выбор качества. Для тех, кто уже знает синтаксис форматов.

Перепаковывает дорожки без перекодирования. Быстро и без потерь.

Перекодирует видео. Медленно и с потерями — только если remux не подходит.

Аудио

Файл, в который конвертируется звук.

VBR даёт лучшее соотношение размера и качества; фиксированный bitrate предсказуемее по размеру.

Субтитры

Встраивание помещает субтитры внутрь видео; сохранение пишет рядом отдельный файл .srt.

Через запятую. Если нужны все доступные языки, напишите all.

Плейлисты и каналы

Что делать, когда URL относится и к видео, и к плейлисту.

Работают и диапазоны, и списки — например 1-10,15 или -5::2, чтобы брать каждый второй с конца.

Дополнительные опции (1)

Записывает уже скачанное, поэтому повторный запуск это пропустит. Именно так канал держат синхронизированным.

Фрагменты и главы
Дополнительные опции (2)

Диапазон времени вида *00:01:30-00:03:00 или название главы. Звёздочка в начале означает, что это метка времени.

Метаданные и обложка
Дополнительные опции (3)
SponsorBlock

Вырезает из файла фрагменты, отмеченные сообществом, по данным SponsorBlock.

Дополнительные опции (1)

Оставляет фрагменты, но помечает их, чтобы вы пропускали их сами.

Файлы и папки

Названия полей пишутся внутри %(...)s. Слэши создают папки.

Дополнительные опции (4)

Куда писать файлы. В сочетании с шаблоном выше можно получить подпапки.

Максимальная длина имени файла в символах.

Фильтры
Дополнительные опции (5)

ГГГГММДД или относительная дата вида now-1month.

ГГГГММДД или относительная дата.

Пропускает всё, что меньше. Принимает 5M, 500K и подобное.

Пропускает всё, что больше.

Сколько файлов скачать, прежде чем остановиться.

Сеть

Например 2M или 500K. Полезно, когда остальная полоса нужна для другого.

Дополнительные опции (5)

Ускоряет фрагментированные потоки. Четыре — разумное начало.

Сколько раз повторять неудавшуюся часть. Можно указать infinite.

Адрес HTTP, HTTPS или SOCKS proxy.

Делает запросы похожими на настоящий браузер. Обычное решение, когда внезапно начинается 403.

Вход и cookies

Читает вашу авторизованную сессию напрямую. Нужно для приватного, возрастного и доступного только участникам содержимого.

Дополнительные опции (1)

Файл cookies.txt в формате Netscape, выгруженный из вашего браузера.

Прямые трансляции
Дополнительные опции (2)

Опрашивает, пока запланированная трансляция не начнётся. MIN-MAX — интервал между проверками в секундах.

Обходные пути
Дополнительные опции (3)

Устарело в пользу --add-headers. Оставлено потому, что множество старых руководств всё ещё это используют.

Устарело в пользу --add-headers.

Опции для конкретного сайта, например youtube:player_client=web.

Вывод и отладка
Дополнительные опции (2)
Сбросить

Как записывать трансляцию без потерь

Запись с начала берёт трансляцию от её начала, а не с момента, когда вы запустили команду, — при условии, что платформа ещё хранит предыдущую часть. Ожидание трансляции опрашивает запланированный стрим и начинает в ту же секунду, когда он выходит в эфир.

Выбирайте MKV. Запись, оборвавшаяся неожиданно — а записи трансляций обрываются, — обычно оставляет воспроизводимый MKV, тогда как MP4, обрезанный посреди записи, часто вообще не открывается. Возобновить запись трансляции нельзя, поэтому выбор container и есть вся страховка.

Ожидание запланированной трансляции — режим, отличный от записи идущей: «ожидание трансляции» опрашивает URL, пока трансляция не откроется, и начинает запись — оставьте терминал работать, и он снимет с первой минуты. Интервал опроса — минуты, а не секунды, поэтому запускайте команду заранее; опоздание к опросу стоит минут эфира, и никакая опция не вернёт минуты, которые никогда не были записаны.

У «записи с начала» есть платформенная граница: YouTube хранит начало трансляции и отдаёт его по запросу, так что опция действительно достаёт его; Twitch аналогично в пределах своего окна хранения. Другие платформы не хранят ничего до момента вашего присоединения. Именно поэтому опция не волшебный переключатель — она забирает то, что платформа сохранила, а что хранить, у платформ различается. Если платформа потом предлагает повтор, повтор — лучший источник, чем любая live-запись.

Прямая трансляция по определению HLS: сотни коротких сегментов, приходящих в реальном времени и соединяемых ffmpeg в контейнер по мере прибытия. Вот почему live-запись — случай, где MKV важнее всего — MP4 пишет индекс в конце, и запись, убитая на третьей минуте двухчасовой трансляции, индекса не имеет вовсе. Дисковое пространство — другой реальный предел: live-запись растёт с битрейтом потока, пока идёт; лимит размера защитит диск, когда стример забыл остановиться и трансляция идёт двенадцатый час.

По факту два момента заслуживают упоминания. Запись с мёртвым воздухом — норма: тишина между сегментами события есть в самом источнике, и вырезать её потом — правка, а не неудавшаяся загрузка. И трансляции, закончившиеся часами раньше, к моменту находки — обычные VOD: пользуйтесь обычными видеоопциями платформы — теми, что форма показывает по умолчанию, — а специфичными для live — только пока трансляция действительно идёт.

Частые вопросы

Можно ли записать трансляцию с начала?
Включите запись с начала. Это работает только там, где платформа ещё хранит предыдущую часть трансляции.
Как записать трансляцию, которая ещё не началась?
Используйте ожидание трансляции с интервалом MIN-MAX. yt-dlp будет опрашивать и начнёт в тот момент, когда стрим выйдет в эфир.
Какой container лучше для трансляций?
MKV. Он переносит обрыв записи, тогда как MP4, обрезанный посреди записи, может оказаться невоспроизводимым.
Что будет, если запись прервётся?
С MKV обычно остаётся всё, что успело записаться. Возобновить запись трансляции нельзя — пропущенная часть потеряна.