Мне нужен был конвейер, который берёт тему и отдаёт готовое видео в Instagram, и не «когда-нибудь пригодится», а под конкретную задачу под конкретный проект. На прошлой неделе я договорился о работе с крипто-блогером: контент-система для его канала, рост аудитории, автоматизация, и чтобы делать контент в объёме, нужен именно конвейер, потому что ручной монтаж по ролику в день — это потолок, дальше ты упираешься в себя самого.
Два дня назад тут не было ни строчки кода, а сейчас работающий конвейер: тема на входе, опубликованный ролик на выходе. Сценарий пишет Claude, озвучивает ElevenLabs, видео подбирает Pexels, монтирует FFmpeg, а публикует instagrapi, и первый ролик получился про то, «Как падал FTX: 32 миллиарда за 4 дня». Восемь шагов, 73 теста, 16 центов за ролик. Вот так это и работает, если просто взять и собрать вместо того чтобы рассуждать.
Дальше расскажу как это собиралось и что сломалось по дороге, потому что без поломок не обошлось, как обычно.
Конвейер: 8 шагов от темы до публикации
Архитектуру из 8 атомарных шагов я спроектировал сам, и каждый шаг — это отдельный модуль с чётким входом и выходом, а уже все модули по моим спекам собрал Claude Code. То есть тут не «напиши мне приложение» наугад, а разбивка задачи на куски, которые нейросеть тащит без проблем, и вот это и есть нормальный вайбкодинг, когда ты думаешь головой, а руки тебе заменяет ИИ.
- Сценарий — тема уходит в Claude через OpenRouter, на выходе структурированный скрипт с битами
- Парсинг — скрипт разбирается на блоки: текст для озвучки + поисковый запрос для визуала
- Озвучка — ElevenLabs озвучивает каждый блок отдельно
- Поиск видео — по запросу из каждого блока Pexels API отдаёт подходящий клип
- Нарезка — клипы обрезаются под длительность аудио
- Конвертация в 9:16 — FFmpeg адаптирует горизонтальные клипы под вертикальный формат
- Монтаж — видео с аудио склеиваются в финальный ролик
- Публикация — instagrapi отправляет ролик в Instagram Reels
Стек: Python, Claude API (через OpenRouter), ElevenLabs, Pexels, FFmpeg, instagrapi.
Семь файлов: scenario.py, tts.py, storyboard.py, visual.py, montage.py, publish.py, generate.py. Моя работа тут была в том, чтобы формулировать задачи, ревьюить результат и принимать архитектурные решения, а строчки кода набивала нейросеть.
73 теста — все зелёные
Каждый шаг конвейера покрыт тестами: что на входе, что на выходе, что происходит при ошибках.
Спросите, зачем 73 теста для проекта, которому два дня от роду? А затем, что конвейер — это цепочка, и если ломается шаг 3, то выясняется это не на третьем шаге, а на седьмом, когда ты сидишь и не понимаешь, почему нет звука. С тестами проблема находится за секунды вместо получаса отладки вслепую, и вот ради этих секунд всё и затевалось.
Плюс тесты позволяют менять части конвейера без страха сломать остальное, а следующий этап у меня как раз улучшение сценариев, так что с тестами это уже безопасно, а не «трогай и молись».
Что пошло не так
Два дня — это не «сел и всё заработало», а серия проблем, которые надо было разруливать одну за другой.
ElevenLabs и геоблок. API заблокирован для России, и обнаружилось это не сразу, потому что запросы просто молча падали, и пришлось разбираться с обходом. Детали опускаю, но если будете повторять — имейте в виду, что тут вас ждёт это весёлое приключение.
Мёртвые аккаунты. Купленные Instagram-аккаунты оказались нерабочими, два аккаунта ушли в мусорку, а третий завёлся только через код на почту, и тут отдельная головная боль в том, что Instagram активно блокирует автоматику на свежих аккаунтах — про то, как система работает, а аккаунты дохнут, у меня отдельная история.
FFmpeg вручную. Бинарник пришлось ставить руками, и конфигурация кодеков, битрейта, кропинга под 9:16 — это тоже ручная работа по настройке, которую за тебя никто не сделает.
И вот что важно понять про всю эту историю: код-то писал Claude Code, а вот геоблок, мёртвые аккаунты и настройку окружения разруливал я сам, потому что это уже не про код, а про реальность вокруг него, и никакой ai агент за тебя в неё не полезет.
Первый результат
Ролик «Как падал FTX: 32 миллиарда за 4 дня» получился в формате 9:16, 6 визуальных блоков, закадровый голос от ElevenLabs, 4.8 MB, и он реально опубликован в Instagram, а не лежит черновиком в папке.
Скажу честно, качество контента пока так себе, но задача этих двух дней была не в качестве, а в работающем конвейере от начала до конца, и качество — это уже следующий этап, до него ещё дойдём.
Стоимость одного ролика вышла примерно $0.16, то есть шестнадцать центов от темы до опубликованного видео, и вот это та цифра, ради которой вся возня с ии для автоматизации и затевается.
Что делал я, что делала нейросеть
- Я не писал код, ни одной строчки, и вот что было на мне:
- Спроектировал архитектуру (8 шагов, разбивка по модулям)
- Формулировал задачи для Claude Code на каждом шаге
- Ревьюил код и тесты
- Решал проблемы за пределами кода: геоблок, мёртвые аккаунты, настройка FFmpeg
- Принимал решения: какие сервисы использовать, какую структуру выбрать
Claude Code написал весь код — все 7 модулей и 73 теста, а я этим оркестрировал.
Что дальше
Конвейер работает от начала до конца, а следующий фокус — качество сценариев, и модуль scenario.py будет переписываться первым.
Два дня, один работающий конвейер, 73 теста, шестнадцать центов за ролик. Вот и делайте выводы про то, на что способна разработка с ИИ, если её не бояться.
Этот текст, кстати, тоже сгенерирован автоматически: контент-система сама извлекла историю из рабочих логов Claude Code и оформила в черновик, а я уже поправил и опубликовал. То есть система пишет о себе, и это вам не «кожаный» копирайтер. Правда, в первый раз такая система написала за меня 20 текстов, и все оказались плохими, так что причёсывать руками всё равно пришлось.
Следующий пост: Content engine: 3 этапа за 2 дня через спеки и AI-дебаты