kiman400

На Пикабу
Дата рождения: 1 января
107 рейтинг 4 подписчика 0 подписок 1 пост 0 в горячем
6

Мой первый AI-проект: Telegram-бот, превращающий видео в статьи для сайтов и блогов

Как я сделал Telegram-бота, превращающего видео в SEO-статьи

Привет! Меня зовут Сергей, я разработчик, и это мой первый независимый проект, который уже работает и которым можно реально пользоваться.

Раньше я был ведущим разработчиком 1С. Работал в крупных проектах, зарабатывал 350 000 рублей в месяц (моя последняя зп в найме). Но в какой-то момент понял: 1С меня достал. Нет, я с большим уважением отношусь к Борису Нуралиеву, но мне всегда это казалось очень скучным, до ломоты в костях.

Работа казалась мне рутиной, и чем больше я в ней развивался, тем больше чувствовал: это не мое, это не то, чем мне хочется заниматься. Мне всегда была интересна тема искусственного интеллекта, новых технологий и всяких микростартапов, которые можно запускать в одиночку или маленькой командой.

Я изучал истории фаундеров на Reddit, смотрел за успехами indie-хакеров, и все время думал: "А что, если попробовать самому?" Я пробовал поначалу совмещать разработку со своей фуллтайм работой, но достаточно быстро понял - это прямой путь в психушку из-за недосыпа. Выход был только один - сказать "бай-бай" своей зарплате, замечательному коллективу и моему руководителю ИТ-отдела, одному из лучших моих непосредственных руководителей, которые у меня были за всю мою карьеру.

Но зов сердца оказался сильнее. Так я и решил дать себе шанс - отложить всё лишнее и сделать что-то своё, маленькое, но настоящее. Не просто "поиграться с кодом", а довести до рабочего состояния. Чтобы кто-то другой мог этим воспользоваться. В итоге за несколько недель вечеров и выходных я собрал MVP Telegram-бота, который превращает YouTube-видео в SEO-оптимизированные статьи. Сейчас он уже работает, доступен в демо-режиме и я собираю обратную связь.

Что делает бот

Проект называется @gptnexus_bot — это Telegram-бот, который автоматически превращает YouTube-видео в статьи, уже адаптированные под SEO. Не просто транскрипт или пересказ, а именно структурированный, читаемый и логичный текст, как будто его написал опытный копирайтер (хотя транскрипт тоже сохраняется - на случай, если нужно проверить или подредактировать).

Зачем это нужно?

Когда я только начал разрабатывать бота, я думал про себя: "Кто вообще захочет превращать видео в статьи?" Честно говоря, вначале просто хотелось поработать с API, с AI, посмотреть, как это работает и какие есть возможности. Но чем глубже я погружался, тем яснее становилось: у этой задачи - переупаковска контента - есть конкретные, живые аудитории.

Вот кому бот реально может помочь: Копирайтерам и СММ-специалистам - чтобы ускорить создание текстов. Из видео-интервью, подкастов, лекций и гайдов можно быстро получить основу статьи, а дальше отредактировать под нужный стиль. Блогерам и авторам - чтобы делать посты, дайджесты или пересказы своих видео. Особенно если видео длинные, а хочется, чтобы контент оставался не только на YouTube, но и в текстовом формате - в блоге, на сайте, в Telegram. Владельцам сайтов и SEO-специалистам - чтобы генерировать полезный SEO-контент, основанный на реальном видео с смыслом, а не пустые тексты для галочки. Это особенно ценно для нишевых сайтов, которые хотят больше трафика из поиска. Фрилансерам - например, тем, кто пишет статьи "на заказ" и хочет автоматизировать рутину. Бот выдаёт черновик, с которым проще и быстрее работать.

Что конкретно делает бот?

Он не просто пересказывает. Внутри - пайплайн из нескольких шагов: -

- Определяет структуру статьи, основываясь на логике рассказа в видео

- Генерирует оглавление — как в настоящей длинной статье

- Делит текст по смыслу, ставит подзаголовки

- Суммирует длинные блоки, убирает "воду"

- Выдаёт на выходе цельный, связный, полезный текст

Всё это происходит автоматически - нужно просто скинуть ссылку на видео в Telegram-боте. В демо-режиме можно протестировать на 3-х видео до 5 минут бесплатно.

Как появилась идея

Когда я распрощался со своей работой в 1С, у меня оставался один главный вопрос: что создать такого, что реально помогает людям и при этом использует AI? Я много читал про микростартапы, MVP, идеи в один вечер и проверку гипотез. Параллельно изучал всё, что связано с LLM и автоматизацией.

Давно еще я заметил такую вещь: на YouTube миллионы видео, но у большинства из них нет никакого текстового сопровождения. Нет статьи, конспекта, дайджеста - даже краткого пересказа. А ведь многие из этих видео - полезные интервью, подкасты, обучающие ролики, инструкции.

Тогда я подумал: "А можно ли с помощью AI взять видео и автоматически превратить его в структурированную, SEO-дружелюбную статью?"

Ответ оказался: да, можно. Но непросто (я бы сказал - чертовски непросто).

Как я это сделал

Я начал собирать рабочий прототип - пайплайн, в котором каждый шаг автоматизирует конкретную часть рутинной работы копирайтера. Вот как всё устроено под капотом:

1. Пользователь присылает ссылку на YouTube Telegram - самый доступный интерфейс для большинства. Не нужен сайт, регистрация или десктоп - просто скидываешь ссылку, и бот начинает работать. Это сильно снижает порог входа.

2. Скачивается только аудиодорожка Чтобы не нагружать сервер лишним - бот извлекает только аудио, используя yt-dlp, настраивает минимальный битрейт и формат .webm, а затем конвертирует в .mp3. Так мы экономим трафик и ускоряем процесс.

3. Транскрипция через AI На этом этапе я пробовал разные модели: Сначала использовал Whisper от OpenAI (через API) Потом протестировал open-source Whisper-large-v3, запуская локально Сейчас использую гибридную схему: Whisper + фильтрация ошибок Вывод: точность зависит от качества звука, но в целом модели справляются на уровне 90%+ точности.

4. Кластеризация по смыслу. Вот тут начинается магия. Получается "полотно" - сплошной текст из тысячи строк. Чтобы из него сделать статью, нужно: разделить на смысловые блоки; выделить ключевые темы и переходы; и надо учитывать, что LLM может обрабатывать за один запрос конечное количество токенов, так что очень большие тексты каким-то образом нужно разбивать на блоки. Я использовал: SentenceTransformer для эмбеддингов (BERT-подобные модели), KMeans и AgglomerativeClustering для группировки смыслов, постобработку для улучшения связности. Каждый блок — это будущий параграф с подзаголовком.

5. Генерация структуры статьи и SEO-композиции. На основе кластеров запускается генерация:

Оглавление (TOC)

Заголовки H2/H3

Вводный и заключительный блок

Переходы между частями, чтобы текст читался как единое целое

Здесь я использую GPT-4-turbo, с carefully-crafted промптами и системой retries. Структура строится заранее, и потом каждую часть заполняет модель - в соответствии с семантикой и стилем.

6. Постобработка и финализация. Чтобы текст не выглядел как сырой AI-вывод:

Убираются повторения, "вода" и ошибки распознавания

Проводится легкая стилистическая нормализация (тон, стиль)

Добавляются буллеты, списки, форматирование (если надо)

7. Отдача результата пользователю. Пользователь получает полноценный текст прямо в Telegram. Он сразу читаемый, уже структурирован для SEO, можно копировать, дорабатывать, вставлять в блог или CMS. Вывод сразу в двух форматах - DOCX и HTML. Весь пайплайн работает автоматически, и всё это - внутри Telegram.

Как я запускал и с чем пришлось повозиться (DevOps, баги, подписки, отчаяние)

Когда бот начал хоть как-то работать, я подумал - ну всё, почти готово. Осталось "чуть-чуть подшаманить". Ха-ха. Спойлер: дальше начался ад.

Один и тот же баг 100 раз

Самое изматывающее - это не когда багов много, а когда ты уже вроде бы всё починил… но оно опять не работает. Например:

Прокинул webhook - всё работало. Через день: 500-я ошибка.

Настроил систему логов - в логах пусто.

Починил uvicorn, systemd, nginx - всё развалилось после перезагрузки. (Кстати, про nginx я узнал только сейчас в процессе работы, в 1С работал только с апачем)

И каждый раз ты такой: "Ладно, сейчас ещё раз, последний"

А через 4 часа понимаешь, что сидишь с той же задачей, с которой начал утром. Или еще хуже - все нахрен удаляешь и откатываешься на позавчерашний бэкап, и по новой - все то, что ты, казалось бы, успешно решил.

Nginx, Uvicorn, Gunicorn — кто тут главный, и главное, что это вообще такое?

Половина моего времени ушла на DevOps. Я не девопс. Я не хотел быть девопсом. Но приходилось разбираться, как правильно пробросить порты между Nginx и Uvicorn как настроить systemd, чтобы не падал при каждом пуше как сгенерировать Let's Encrypt-сертификат, чтобы Telegram вообще видел Webhook

Каждый раз, когда я загонял всё в систему и думал: "Теперь-то работает", - появлялась новая ошибка. То SSL handshake failed, то timeout, то ngrok expired.

OOM и память на сервере

Когда я подключил генерацию статей — память начала улетать в трубу. Я запускал Whisper, который ест по 2–4 ГБ RAM, GPT, который отвечает долго и может зависнуть обработку транскрипта длиной 10–20 минут. И сервер просто говорил мне: killed process 1453 (python3) total-vm: 10233444kB, anon-rss: 7982344kB, ...

Я сжимал аудио, убирал логи, рестартил вручную.

Я пробовал asyncio.Queue, Celery, multiprocessing, кеширование, потоковую генерацию - всё, что угодно, чтобы не падало.

Иногда помогало. Иногда — нет.

Подписки, лимиты, БД

Когда дело дошло до подписной модели, я думал - ну, просто счётчик добавить (спойлер: ха.ха.ха)

Но в реальности все намного сложнее (намного-намного сложнее):

надо различать пользователей: Free, Basic, Pro, Premium

у каждого - свои лимиты по количеству статей и длине видео

надо вести учёт в базе данных, проверять лимиты, блокировать запросы, ещё и хранить платежи, webhook-и ЮKassa, статус оплаты и дату окончания подписки

А потом оказывалось, что ЮKassa не принимает Webhook с нестандартными сертификатами. Или что Telegram WebApp отказывается работать без domain verification.

Эмоциональные качели

Я не шучу: иногда я просто сидел в тишине и смотрел в IDE, даже не понимая, что там за буковки. Потому что сил не было.

Я всё делал правильно, но оно не работало. Я писал один и тот же handler по 15–20 раз. Я начинал с нуля 3–4 файла, потому что всё запуталось. И периодически думал: "Может, ну его? Может, я зря этим занимаюсь?"

Такие мысли приходили регулярно. Особенно ночью, когда ты ещё не ложился, а уже 11 утра. Но я продолжал. Потому что уж больно хотелось сделать хоть что-то СВОЁ. Небольшое. Неидеальное. Но настоящее.

Как я это сделал — технический разбор

Идея звучала просто: "Берём YouTube-видео и делаем из него статью".

Но чтобы это действительно заработало, нужно было собрать целую цепочку из AI, кластеризации, обработки текста и Telegram-интеграции. Вот как это устроено под капотом:

1. На вход - YouTube-ссылка Пользователь присылает ссылку прямо в Telegram, например: https://www.youtube.com/watch?v=dQw4w9WgXcQ Бот обрабатывает ссылку, валидирует её и запускает пайплайн.

2. Скачиваем аудио (не видео). Видео весит много - поэтому я сразу фокусируюсь только на аудио. Использую yt-dlp с настройками:

yt-dlp -x --audio-format mp3 --audio-quality 5 ...

Это позволяет быстро получить аудиотрек даже с 10-20-минутного видео и не забить сервер.

3. Превращаем речь в текст (транскрипция)

Дальше начинается AI: я использую Whisper от OpenAI - это одна из самых точных моделей распознавания речи. Она справляется даже с: фоновым шумом, сложными акцентами, перемешкой английского и русского.

Пример результата:

"Привет! В этом видео мы разберём, как работает нейросеть и где она применяется в бизнесе..."

4. Делим по смыслу (кластеризация)

Вот тут начинается интересное. Обычный текст транскрипции - это сплошной поток слов, без логики и структуры. Я разбиваю его на смысловые блоки с помощью: SentenceTransformer (для векторизации), HDBSCAN или KMeans (для кластеризации), семантической фильтрации (удаление "воды", повторов, мусора).

Так получается примерно 5–10 тематических кластеров, каждый из которых - мини-раздел статьи.

5. Составляем SEO-оптимизированную статью

Для генерации статьи я использую модель GPT (пробовал локально, но в итоге остановился на API). Каждому кластеру передаётся его тема + кусок транскрипта, и модель генерирует: название раздела, текст с нормальной грамматикой, логическую структуру, ключевые слова (для SEO), сноски и полезные замечания. Пример:

"Как бизнес применяет нейросети

В последние годы нейросети нашли применение в десятках сфер. От прогнозирования спроса до автоматизации поддержки клиентов..."

6. Финализация: заголовки, оглавление, структура

На финальном этапе я собираю всё:

Генерирую заголовок статьи

Составляю оглавление

Склеиваю все блоки в один HTML/Markdown-файл

Добавляю выводы, summary, транскрипцию

Пользователь получает в Telegram полноценный текст, который можно: сразу опубликовать в блоге, вставить в Notion или WordPress, доработать вручную.

Всё работает прямо в Telegram И это была отдельная задача: вместо того, чтобы делать веб-приложение, я решил, что проще и быстрее — сделать Telegram-бота, у которого нет лишнего UI, всё уже под рукой у пользователя, можно просто отправить ссылку и получить текст. Пользователь никуда не уходит, всё работает прямо в чате. Для тех, кто использует Telegram в повседневной жизни - это 🔥.

Сейчас это работает в демо-режиме

На момент публикации сервис всё ещё в тестовом режиме. Я специально не стал сразу внедрять платёжки и подписки, потому что хочу сначала понять:

Насколько вообще это нужно людям?

Что работает, а что нет?

Что доступно прямо сейчас

Бесплатно можно обработать до 3 видео, каждое - до 5 минут. Это нужно, чтобы сервер не взорвался - сейчас у меня нет мощных кластеров, всё крутится на одном виртуальном сервере, за который я плачу сам.

Результат приходит прямо в Telegram: без лишних ссылок, переходов и сайтов. Просто кинул ссылку на YouTube - и получил готовую статью прямо в чат. Удобно, быстро, понятно. Можно копировать, сохранять, вставлять в блог или Notion - я постарался сделать формат максимально универсальным.

Почему пока нет оплаты?

Если честно, я много думал - стоит ли делать сразу платный доступ. Но потом подумал: это первый такой проект в моей жизни. Я не хочу делать вид, что у меня уже бизнес и 1000 пользователей. Я только учусь)).

Сейчас мне куда важнее получить живую обратную связь:

Что непонятно? Где глючит? Чего не хватает? А может, вообще не нужно такое?

Я читаю каждое сообщение. Если ты попробуешь и напишешь пару слов - это будет прям суперценный вклад. Если хочешь потестировать - вот он: https://t.me/gptnexus_bot

Буду очень благодарен за любой фидбэк - даже если просто напишешь: "Пользовался - норм", или "Вот тут не понял, что делать". Если понадобится увеличить лимиты - можешь написать мне, и мы это решим.

Что под капотом

Это мой первый продукт, поэтому я старался не распыляться — выбрал стек, с которым мне лично удобно работать, и который реально поднять в одного без DevOps-команды, Kubernetes и CI/CD на 30 шагов.

Python - моя основа

Всю логику я написал на Python. Это мой основной язык, мне он нравится за читаемость и огромное количество библиотек.

Проект состоит из двух частей:

FastAPI — отвечает за всю серверную логику: приём YouTube-ссылки, запрос к ИИ, сбор текста и отправка результата.

aiogram 2 — работает как оболочка Telegram-бота.

Почему aiogram 2, а не 3?

Я пробовал aiogram 3, но он сильно изменился - асинхронная архитектура стала более сложной, документации меньше, и большинство гайдов и плагинов всё ещё ориентированы на вторую версию. Для MVP и скорости разработки второй aiogram - надёжнее. Потом можно будет мигрировать, если станет тесно.

Whisper + GPT-4 + своя логика

Мозг системы - это связка: Whisper от OpenAI - превращает речь из YouTube-видео в текст. Работает стабильно, даже с шумами или акцентами. GPT-4 - помогает "понять" смысл сказанного и превратить это в связный, логичный и полезный текст.

Своя логика генерации - я не просто беру транскрипт и запрашиваю "напиши статью". Я кластеризую текст по смыслу (делю на логические блоки), формирую оглавление, добавляю подзаголовки и структуру, финализирую весь текст в единое целое.

Это на самом деле очень трудоемко - просто куча тестов, промптов и доработок по ходу.

SQLite - для старта

Сейчас всё хранится в SQLite — это максимально просто и удобно. Подключается одной строчкой и не требует отдельного сервера. Планирую перейти на PostgreSQL, когда нагрузка вырастет или понадобится масштабироваться.

VPS на Beget + nginx + SSL

Я развернул всё на VPS от Beget. Это простой и надёжный хостинг с понятной панелью и вменяемой техподдержкой (не реклама, а личное мнение) С нуля поднял: Nginx - для проксирования запросов и выдачи SSL Uvicorn + FastAPI - основной backend Сертификаты Let's Encrypt - автообновляются Да, пришлось погуглить десятки ошибок (да какие десятки - сотни), чтобы всё заработало, но теперь работает стабильно.

Что планирую дальше

Сейчас бот работает в демо-режиме и покрывает базовый кейс — короткие видео до 5 минут. Но я уже собираю идеи и планирую постепенно развивать проект:

Поддержка длинных видео. Сейчас ограничение на бесплатном тарифе - 3 видео до 5 минут, потому что с длинными файлами хочу еще поработать с разбивкой, кэшированием и склейкой смысла без потерь (хотя я пробовал на 6-часовом видео, и в принципе получалось очень прилично, хоть в википедии публикуй).

Платные тарифы. Бесплатно - классно, но ресурсы (и особенно GPT-4) не дешёвые. Планирую сделать подписки: без перегруза, с честными лимитами и бонусами для тех, кто будет поддерживать развитие проекта.

Личный кабинет и история статей. На самом деле, история уже сохраняется - в базе лежат все сгенерированные статьи, и их можно получить повторно по команде. Но пока это работает в виде простых команд в чате, без веб-интерфейса.

Я хочу сделать полноценный веб-кабинет: чтобы ты мог видеть свои статьи в виде списка, удобно их открывать, редактировать, экспортировать, копировать и делиться. Такой маленький редактор и архив - прямо под твою работу с контентом.

Экспорт в Markdown. Многие люди ведут блоги, пишут на Хабр или выкладывают статьи в CMS. Markdown - идеальный формат, чтобы быстро перенести текст в любую платформу, но с ним нужно отдельно работать, поэтому я оставил как задел на будущее.

Хочу собрать обратную связь

Друзья, если вы как-то связаны с контентом, SEO, видео, блогами или текстами - буду очень благодарен, если попробуете бота и честно скажете, что думаете.

Что удобно? Что бесит? Что не работает? Я не корпорация, у меня нет команды дизайнеров и тестировщиков. Всё делаю сам - и любая обратная связь (даже "фигня, не юзабельно") помогает двигаться в правильную сторону.

Ссылка на бота: @gptnexus_bot

Мой телеграм: @quantras

Если вы фаундер, копирайтер, SEOшник, преподаватель или просто энтузиаст — напишите, мне очень важно узнать:

  • Насколько полезен вам такой инструмент?

  • Чего не хватает?

  • Что бы вы улучшили?

Я открыт к диалогу и ищу первых пользователей, которые готовы попробовать бота и дать честный фидбэк

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества