Как собрать свой сервис для генерации субтитров за вечер

07 Apr, 2026
425
🔱 67
👥 1

Знакомая боль: нужно закинуть короткое видео в соцсети, но без субтитров его никто не будет смотреть со звуком. Можно пойти в платные сервисы, где просят подписку ради десятиминутного ролика, или мучаться в видеоредакторе, выставляя каждый таймкод вручную. Я недавно наткнулся на репозиторий SubStudio, который решает эту задачу изящно и, что самое главное, дает полный контроль над процессом.

Проект Nutlope/ai-subtitles — это готовое open-source приложение на Next.js. Оно берет ваше видео, прогоняет аудиодорожку через нейросеть и выдает готовые титры, которые можно стилизовать прямо в браузере.

Что умеет SubStudio

Автор проекта не стал изобретать велосипед и собрал воедино проверенные технологии. Основная фишка здесь в связке Whisper Large v3 и удобного интерфейса для правки текста.

Вот что вы получаете из коробки:

  • Транскрибация с точностью до слова. Система не просто выдает текст, а привязывает каждое слово к конкретному моменту времени.
  • Интеллектуальное объединение. Короткие интервалы автоматически склеиваются в читаемые блоки, чтобы текст на экране не мельтешил.
  • Живое редактирование. Если нейросеть ошиблась в фамилии или сложном термине, поправить это можно в пару кликов до экспорта.
  • Стилизация под разные площадки. Внутри зашито 6 пресетов: от классических белых букв до «тиктоковского» стиля с крупным шрифтом и подложкой.
  • Гибкий экспорт. Можно забрать файл .srt или .vtt для YouTube, а можно сразу скачать .mp4 с «вшитыми» (burned-in) субтитрами.

Техническая начинка

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

Интересно, как распределены задачи. За фронтенд отвечает Next.js (App Router) с анимациями на Framer Motion. Для работы с видео используется FFmpeg, а магию распознавания речи обеспечивает Together AI.

SubStudio

Почему Together AI? Это позволяет не нагружать ваш локальный компьютер или сервер вычислениями. Модель Whisper Large v3 достаточно тяжелая, и прогонять её через API — здравое решение для быстрого результата.

Как запустить проект у себя

Для старта вам понадобится ключ API от Together AI. На момент написания обзора у них есть пробный период или достаточно демократичные цены за объем обработанного контента.

Сначала клонируем репозиторий:

git clone https://github.com/Nutlope/ai-subtitles.git
cd ai-subtitles

Затем создаем файл .env в корне и прописываем ключ:

TOGETHER_API_KEY=ваш_ключ_здесь

Дальше всё стандартно: устанавливаем зависимости через npm install и запускаем npm run dev. Проект поднимется на 3000 порту. Если не хочется возиться с консолью, в репозитории есть кнопка для моментального деплоя на Vercel.

Кому это пригодится

Я вижу два основных сценария использования этого кода.

Первый — личные нужды. Если вы ведете блог или делаете контент для компании, иметь собственный инстанс такого сервиса банально дешевле и безопаснее, чем использовать сторонние SaaS-решения с непонятными условиями хранения ваших видео.

Второй — база для своего продукта. Код под лицензией MIT позволяет взять SubStudio за основу и докрутить специфические фичи. Например, добавить перевод на другие языки через GPT-4 или внедрить корпоративные шрифты и логотипы компании в пресеты стилей.

Небольшой нюанс

Стоит учитывать, что проект завязан на внешнее API. Если вам нужна полностью автономная работа без интернета (например, из-за требований безопасности), придется переписывать логику взаимодействия с Whisper на локальный запуск через whisper.cpp или аналогичные решения. Но для быстрого прототипа или личного пользования текущая реализация — золотая середина между сложностью и качеством.

В остальном, это отличный пример того, как современный ИИ можно упаковать в понятный и полезный инструмент без лишнего пафоса. Свою задачу — сделать субтитры «чистыми» и аккуратными — проект выполняет на отлично.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.