Видео-пайплайн на Claude Code: от записи до YouTube за один промпт
Вчера записал двухчасовой воркшоп. Впереди рутина: субтитры, таймкоды, превью, загрузка.
Раньше на это уходило полдня — час на правку субтитров, ещё час на таймкоды и остаток на мелочи.
Теперь говорю «опубликуй видео» — и иду пить кофе.
Проблема
После каждого занятия один и тот же список дел. Транскрибировать аудио. Разметить главы. Сделать превью. Написать описание с таймкодами. Загрузить на YouTube. Собрать страницу урока для студентов.
Шесть шагов. Каждый требует отдельного инструмента. Whisper для субтитров, ffmpeg для нарезки, Playwright для рендера превью, youtubeuploader для загрузки. И везде свои флаги, свои форматы, свои подводные камни.
Я не хочу это помнить. Агенты помнят.
Архитектура
Пайплайн состоит из шести скиллов. Каждый делает одну задачу и передаёт результат следующему.
Запись.mp4
│
▼
┌─────────────────────┐
│ subtitle-generator │ MLX Whisper → SRT/VTT
└─────────────────────┘
│
▼
┌─────────────────────┐
│ yt-metadata-gen │ Таймкоды + описание
└─────────────────────┘
│
▼
┌─────────────────────┐
│ chapter-slides │ PNG-заставки для глав
└─────────────────────┘
│
▼
┌─────────────────────┐
│ thumbnail-gen │ HTML → PNG превью
└─────────────────────┘
│
▼
┌─────────────────────┐
│ youtube-upload │ youtubeuploader CLI
└─────────────────────┘
│
▼
┌─────────────────────┐
│ video-lesson-page │ HTML страница урока
└─────────────────────┘
Оркестратор — скилл mentor-video-publish. Запускает цепочку и следит за выполнением. Сам код не пишу — Claude Code сгенерировал всё по спеке.
Что происходит внутри
Начинается с субтитров: MLX Whisper на Apple Silicon транскрибирует двухчасовое видео за 10-15 минут.
Дальше метадата. Агент парсит субтитры, находит смысловые блоки, генерирует таймкоды и описание для YouTube. Это работа для LLM — я только проверяю результат.
А вот слайды глав — самое интересное. Playwright рендерит HTML-шаблон в PNG для каждой главы, потом ffmpeg вставляет эти заставки перед соответствующими сегментами видео.
Превью — просто HTML-шаблон с заголовком. Playwright делает скриншот 1280x720, никакого Фотошопа. Подробнее про этот подход — в гайде по HTML-обложкам.
Для загрузки использую youtubeuploader — CLI-утилита принимает видео, метадату в JSON и превью.
В конце генерируется страница урока: HTML с вкладками для видео, конспекта, заданий и материалов.
Практический пример
Вчерашний воркшоп. Два часа записи, 26 глав.
| Этап | Время |
|---|---|
| Субтитры | 12 мин |
| Метадата | 30 сек |
| Слайды (26 шт) | 53 сек |
| Сборка видео | 14 мин |
| Превью | 2 сек |
| Загрузка (1.8 ГБ) | 2 мин 40 сек |
| Страница урока | мгновенно |
Итого: около 30 минут. Из них моего участия — минута на запуск и проверку результата. Остальное делают агенты в фоне.
Структура файлов
Каждая сессия живёт в своей папке:
sessions/session-20260113_182000/
├── source.mp4 # исходник
├── subtitles.srt # субтитры
├── subtitles.vtt
├── metadata.json # таймкоды, описание
├── thumbnail.png # превью
├── slides/ # заставки глав
│ ├── slide-00.png
│ └── ...
├── video_with_slides.mp4 # финальное видео
└── lesson-page.html # страница урока
Чистая структура — ничего не теряется, можно откатиться к любому этапу.
Что нужно для запуска
mlx-whisper— транскрипция на Apple Siliconffmpeg— нарезка и сборка видеоplaywright— рендер HTML в PNGyoutubeuploader— CLI для YouTube API- Claude Code с Opus 4.5 — оркестрация
Всё ставится через Homebrew и pip. OAuth для YouTube настраивается один раз.
Ограничения
Пайплайн заточен под мой воркфлоу. Шаблоны превью и страниц — под мой стиль. Если нужен другой дизайн — придётся менять HTML.
Whisper ошибается в терминах — вчера написал «Claude Coat» вместо «Claude Code». Есть скилл subtitle-term-fixer с глоссарием, но ручная проверка остаётся обязательной.
YouTube API имеет квоту: около 6 загрузок в сутки на стандартном лимите. Для большинства это не проблема.
Главный вывод
Видеопродакшн — это последовательность детерминированных шагов. Идеальная задача для автоматизации. Агенты справляются лучше меня, потому что не забывают флаги ffmpeg и не путают форматы таймкодов.
Я описываю что хочу получить. Код пишет Claude Code. Рутину выполняют скиллы.
Вайбкодинг в чистом виде.
Источники
- youtubeuploader — CLI для загрузки на YouTube
- OpenAI Whisper — модель для транскрипции
- FFmpeg 8.0 + Whisper — нативная интеграция
- HN: Video pipeline with Claude Code — похожий подход
Подписаться на обновления — @sereja_tech