Контент-ферма

Небольшое продолжение эксперимента с AI/automation-системой и минимальными расходами на инфраструктуру. В прошлом посте показывал свой «простой контент-пайплайн». Теперь чуть подробнее про то, из чего он собирается и какие решения использую 🙂 Выделил отдельный контентный конвейер: подготовка сценария → озвучка → сборка медиа → адаптация под площадки → отправка → сохранение результата. Под капотом — Python и несколько отдельных модулей: подготовка материалов, планирование, рендер и публикация. У каждого своя задача, поэтому менять сборку видео можно отдельно от интеграций с площадками. Из конкретных решений: — Cloudflare Workers + D1 — управляющий слой, очередь заданий и учёт результатов. В очереди хранится компактное задание, а подписи для площадок достраиваются уже во время обработки. — GitHub Actions — запуск обработки по расписанию. Вычислительно тяжёлая часть выполняется отдельными заданиями: постоянно держать включённую машину для рендера здесь не требуется. — Piper TTS + Pillow + FFmpeg — озвучка, графика и сборка видео. Из сценария формируется вертикальный ролик с субтитрами, обложка и набор карточек. Добавлены движение в кадре и нормализация громкости. — Composio и прямые API — взаимодействие с площадками. Для каждой предусмотрен отдельный адаптер, который учитывает нужные поля и способ загрузки материала. Медиа временно размещаются в Workers KV: площадки, которым нужен файл по ссылке, получают его оттуда. Отдельно добавил планировщик форматов. По дням могут чередоваться ролики, фотографии, карусели и истории. План рассчитывается от даты, поэтому его можно воспроизвести и проверить. И вот здесь начинается интересная часть инженерии 😅 Перед отправкой резервируется попытка, после — сохраняется результат по конкретному аккаунту. Если запрос оборвался, результат отмечается как неопределённый и требует сверки. Ответ «материал принят» тоже учитывается отдельно от завершённой публикации. Такие мелочи постепенно и определяют, насколько системой вообще удобно пользоваться. Сценарии в этом контуре сейчас собираются из подготовленного банка тем по заданным правилам. Это даёт предсказуемый результат и помогает контролировать расходы. Для проверки сборки есть отдельный режим подготовки медиа перед включением отправки. В CI добавлены тесты на формирование материалов, чередование форматов и отдельные условия отправки. Проверка полного цикла на подключённых площадках — следующий этап. Постепенно общая идея обрастает вполне конкретной архитектурой. Особенно интересно собирать её в условиях, когда каждый дополнительный сервис приходится обосновывать. А начиналось всё с: «сейчас быстренько автоматизирую публикации» 🙂

Контент-ферма | Сетка — социальная сеть от hh.ru