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

Генератор команд yt-dlp для X (Twitter)

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

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

Ваша команда

yt-dlp --merge-output-format mp4 --no-playlist -o '%(uploader_id)s - %(id)s.%(ext)s' https://x.com/user/status/1234567890
Основное

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

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

Ограничивает высоту. 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)
Сбросить

Что учесть с X

Работают адреса и x.com, и twitter.com. То, что в X называют GIF, на самом деле короткие видео MP4, поэтому они скачиваются как любое другое видео; если нужен настоящий GIF, конвертируйте потом.

Публикации с чувствительным содержимым требуют авторизованной сессии с включённой соответствующей настройкой. Шаблон по умолчанию называет файлы по автору и id публикации, так что папка, полная таких файлов, остаётся обозримой.

X несколько раз менял поверхность своего API, и практическое следствие в том, что исправления extractor приезжают в обновлениях yt-dlp за считаные дни — установки старше пары недель и есть то место, где живут большинство репортов «X сломался». Обновитесь, прежде чем отлаживать: yt-dlp -U. Гостевой доступ появляется и исчезает; когда его отбирают, рабочая дорога — залогиненная сессия с cookies, и это же единственная дорога к чувствительному контенту.

В ветках и цитирующих постах URL путаются. Твит с видео встраивает его; та же видеозапись во вкладке медиа профиля — отдельный элемент. Для целого аккаунта URL вкладки медиа забирает всё, что публиковалось с медиа, с разбивкой на страницы, а файл архива плюс продолжение после ошибок разбирается с удалёнными постами, которые активный аккаунт неизбежно накапливает. Скачивание по URL поиска здесь намеренно не поддерживается: результаты дрейфуют между запросами, и архив по движущейся выдаче бессмыслен.

X отдаёт видео как HLS-фрагменты с MP4-фолбэком в большинстве случаев, поэтому объединения часты, и ffmpeg — первая зависимость для проверки. Посты «GIF» — исключение, которое стоит знать: они приходят MP4, как всё остальное, а конвертация в настоящий GIF — работа для ffmpeg, не для yt-dlp — зацикленный WebM обычно ближе к тому, что имел в виду отправитель.

Посты с возрастным ограничением и чувствительным контентом — жёсткая стена: настройка живёт в аккаунте, а не в команде. Один раз войдите через браузер, включите настройку чувствительного контента, передайте cookies — и всё работает — обхода без cookies не существует, потому что X проверяет сессию на сервере. Удалённые посты ведут себя как везде: пропало — пропало, а зеркала, хранившие копии, закрылись много лет назад.

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

Почему публикация с возрастным ограничением в X не скачивается?
Чувствительное содержимое требует авторизованной сессии. Используйте --cookies-from-browser с аккаунтом, где эта настройка включена.
Как скачать GIF из X?
Это видео MP4, а не GIF, и они скачиваются как любое другое видео. Если нужен настоящий GIF, конвертируйте потом.
Можно ли выбрать качество видео в X?
Да. X публикует несколько версий: ограничьте высоту через выбор качества или сначала посмотрите список через -F.