Новости ИИ

YandexGPT помог одному разработчику собрать сервис для видео

Рабочее место разработчика с двумя мониторами, бумагами, микрофоном и серверным оборудованием

Разработчик в одиночку сделал postvid.ru — сервис, который принимает ссылку на видео или файл и возвращает расшифровку, тезисы, таблицу, презентацию и карточки для соцсетей. По пути ему пришлось решить не только задачу с ИИ, но и вопросы отказоустойчивости, защиты ссылок и безопасных платежей.

Что умеет сервис и на чём он собран

Идея появилась из очень бытовой потребности: автору надоело вручную пересматривать видео, чтобы выписывать из них основные мысли. Из этой личной задачи вырос сервис postvid.ru, который берёт на вход ссылку или загруженный файл, а на выходе отдаёт расшифровку, тезисы, таблицу, презентацию, карточки для карусели и даже субтитры.

Технически проект собран без лишней экзотики. За веб-часть отвечает FastAPI, распознавание речи делает faster-whisper с моделью small — она выбрана потому, что сервер работает без GPU, а более тяжёлая версия на CPU была бы слишком медленной. Для извлечения тезисов используется YandexGPT или любой другой OpenAI-совместимый API, а если облачный вариант недоступен, включается локальная модель через Ollama или офлайн-алгоритм без нейросети. Для таблиц и презентаций автор использовал openpyxl и python-pptx, для картинок — Pillow, а для аккаунтов, сессий, подписок и платежей — SQLite.

Почему у проекта оказалось сразу несколько запасных вариантов

Главная проблема в таких сервисах — не только качество результата, но и стабильность. В первой версии всё завязали на облачную LLM напрямую, и одна краткая недоступность модели ночью сразу сделала сервис бесполезным для пользователей. После этого в схему добавили резервные сценарии: если облако не отвечает, запрос уходит в локальную модель, а если и она недоступна, система переключается на простой офлайн-метод, который разбивает текст на предложения и выбирает наиболее важные по эвристикам.

Чтобы не тратить время на заведомо провальные попытки, автор добавил кулдаун: если основной сервис упал, следующие задачи в ближайшую минуту сразу отправляются в запасной режим. На странице результата также показывается, какой движок сработал — cloud, local или offline. Это помогает пользователю понять, почему итог мог получиться чуть менее точным, и снижает раздражение от «магии», когда всё вроде бы работает, но непонятно как.

Безопасность, домены и платежи без лишнего риска

Отдельно пришлось продумать защиту при скачивании видео по ссылке. Сервис проверяет, что можно использовать только http или https, и не даёт обращаться к внутренним адресам сервера, чтобы не подставиться под SSRF-атаки. При необходимости можно ещё и ограничить список разрешённых доменов через белый список.

Похожая осторожность понадобилась и на уровне доменов. Если сайт запускается сразу под несколькими адресами, Caddy настраивается так, чтобы одни домены делали полную копию сайта с canonical и noindex, а другие просто перенаправляли на основной адрес через 301. Также были добавлены проверки заголовка Host, чтобы нельзя было подменить адрес и увести ссылки на вход или оплату на чужой домен.

С платежами автор тоже не стал полагаться только на вебхуки ЮKassa: перед выдачей тарифа система дополнительно сверяет сумму и статус через API. Для автопродления запущен отдельный воркер, который проверяет сроки раз в 10 минут, а если банк три раза подряд отклоняет списание, продление тихо отключается. Сейчас очередь задач и их статусы хранятся в памяти процесса: это удобно на старте, но при росте нагрузки автор уже понимает, что позже придётся вынести их во внешнюю очередь.

Частые вопросы

Чем полезен такой сервис обычному человеку или маркетологу?
Он экономит время на ручном просмотре видео и быстро превращает длинный ролик в тезисы, таблицу, презентацию или карточки для публикаций. Это удобно, если нужно пересобрать контент, подготовить выжимку для команды или быстро понять суть материала.
Зачем в проекте сразу несколько моделей и запасных сценариев?
Чтобы сервис не ломался из-за временной недоступности облачного API. Если основной вариант не работает, система автоматически переключается на локальную модель или простой офлайн-алгоритм.
Почему автор не выбрал сразу более тяжёлую модель распознавания?
Потому что сервер работает без GPU, а на CPU более крупная модель стала бы слишком медленной. Для такого проекта важен баланс между качеством и скоростью ответа.
Что здесь важнее всего с точки зрения практики?
Не только ИИ, но и инженерная надёжность: проверка ссылок, защита от SSRF, резервные модели, контроль доменов и перепроверка платежей. Именно такие вещи делают сервис пригодным для реального использования, а не только для демонстрации.

Читайте также

Попробовать Lord GPT бесплатно →