Котики, видео и немного магии: как мы разработали бота для СТС
Привет, это Коля, CEO студии GRCH! СТС захотели, чтобы пушистики заговорили — мечта всех кошатников. Мы разработали для них бота, который принимал видео, искал кота, озвучивал и возвращал в личку за пару минут. Как это было — читайте в статье.
Задача от клиента
СТС пришли к нам с идеей: запустить интерактивную механику через бота в соцсетях, чтобы поддержать выход 2-го сезона сериала «Котострофа».
Цель — развлечь аудиторию, повысить интерес к сериалу и подсветить премьеру с помощью персонализированного, вирального контента.
Идея была простая: пользователь загружает видео — получает готовый ролик с фирменной озвучкой и делится им с друзьями.
Что нужно было реализовать:
- Механику, где пользователь загружает видео, система ищет кота на 3-й секунде и, если он есть, заменяет исходный звук на одну из заранее записанных озвучек от СТС.
- Сделать процесс максимально простым: зашел → загрузил → получил.
- Интегрировать внутри бота во ВКонтакте.
Что мы сделали
Механика оказалась довольно непростой с технической точки зрения, хотя со стороны пользователя все выглядело легко и дружелюбно.
Как работал бот → схема флоу:
Как построили сценарий: после приветствия бот проверял, подписан ли пользователь на сообщество, и только после этого предлагал загрузить видео.
Автоматическая проверка видео. Встроили модель распознавания объектов, чтобы находить кота в кадре. Она анализировала 3-й кадр видео и понимала, релевантен ли ролик.
Если система не находила кота, например, он прятался в тени, был слишком далеко или размытый, то могла отклонить ролик. И в этом моменте важно было объяснить человеку, что не так, и дать ему возможность попробовать еще раз.
Генерация финального ролика. Если проверка проходила успешно, видео отправлялось на сервер, где добавлялась заставка СТС и озвучка. Ролик обрабатывался с помощью FFmpeg и кастомных скриптов, которые собирали финальный ролик буквально за пару минут.
Озвучки были заранее записаны — 40 штук, и бот выбирал одну случайным образом, но с исключением, чтобы одному пользователю не пришли одинаковые варианты. Это добавляло ощущение персонализации. А затем готовое видео загружалось обратно в чат с пользователем.
Админка и ручной контроль. Добавили админ-панель для команды, в которой можно было отслеживать загрузки, смотреть, где и на чем пользователи ошибаются, и если нужно — вручную отправлять видео на повторную обработку.
Это пригодилось в нескольких кейсах, когда кот был, допустим, на 2-й или 4-й секунде, а не на 3-й.
Какие сложности мы учли
1. С самого начала было понятно, что не все видео подойдут: кто-то мог загрузить ролик без кота, в неподходящем формате или слишком тяжелый файл, который просто не проходил обработку.
Как решили проблему. Чтобы не ломать пользовательский сценарий, мы заранее подготовили набор технических проверок на бэкенде, например, соответствует ли видео по формату, весу и длине. Также продумали сценарии-сообщения: бот всегда объяснял, что именно пошло не так — например: «Не удалось определить кота» или «Файл слишком тяжелый».
2. Нужно было справляться с нагрузкой на серверы — ведь каждый ролик обрабатывался в реальном времени: проверка → генерация → озвучка.
Как решили проблему. Чтобы все работало стабильно и без задержек, мы распараллелили процессы обработки. То есть система одновременно обрабатывала до 8 роликов в потоках.
Что получилось
Проект реализовали в сжатые сроки — от первых обсуждений до запуска прошло около 1 месяца. Активность проходила в течение недели — с 21 по 27 февраля.
Мы собрали живую интерактивную механику, которая работает в реальном времени, общается с пользователем, проверяет контент и выдает персонализированный результат.
- Спроектировали понятный пользовательский сценарий и упаковали его в чат-бот.
- Продумали технически сложные решения: проверку видео, автоматическую обработку, озвучку.
- Добавили инструменты для ручного контроля, чтобы в случае чего команда могла оперативно подключиться и обработать нестандартные случаи.
- Создали решение, которое можно масштабировать и адаптировать под любые платформы и задачи, например, в Телеграме, — от спецпроектов до массовых рекламных кампаний.
Стек технологий:
- Python + VK API
- FFmpeg
- ML-модель распознавания объектов
- Кастомная логика исключений
В нашем Телеграм-канале GRCH.Digital | Студия веб-разработки делимся, как работаем над другими проектами. А еще рассказываем, как выстраиваем процессы и какие бывают сложности. Подписывайтесь, там все по делу и без воды.