Архитектура
Система разделена на несколько независимых компонентов.
News Bot — сбор, обработка и доставка
Python-сервис отвечает за автоматические потоки контента.
Он получает материалы из RSS, X и TikTok, сохраняет состояние обработки и применяет правила конкретного источника.
Для разных потоков можно отдельно задавать:
Один поток может почти дословно переводить короткие публикации из X, другой — делать краткий пересказ большой статьи из RSS, третий — автоматически обрабатывать публикации с изображениями или видео.
News Bot поддерживает повторные попытки после временных ошибок, восстановление после перезапуска, постоянный кэш медиаданных и защиту от повторной публикации одного материала.
Публикация может выполняться непосредственно в Telegram, MAX, VK либо через централизованный News Hub.
News Hub — редакционный единый центр управления
По мере развития проекта управление контентом было вынесено в отдельный Laravel-сервис News Hub.
Hub становится единой точкой управления редакционным процессом:
источник → материал → редакция → модерация → публикация → статус
В нём хранятся материалы, их ревизии, медиа, история действий и задания на публикацию.
Добавлена модель рабочих пространств и ролей пользователей. Клиентские приложения не получают токены VK, Telegram или других площадок — все секреты и фактическая публикация остаются на серверной стороне.
Это позволяет подключать к одной системе разные интерфейсы: административную панель, мобильное приложение и браузерные расширения.
Ручной сбор материалов из браузера
Не весь интересный контент удобно получать автоматически.
Для таких сценариев создано Chrome-расширение News Bot Capture.
Пользователь может открыть статью или публикацию на любом сайте и прямо из браузера:
захватить материал → получить текст и изображения → при необходимости обработать его AI → отредактировать → отправить в News Hub
Поддерживается локальное подключение собственного AI-провайдера: OpenAI-compatible API, OpenRouter, DeepSeek, Gemini, Claude и другие.
Ключ AI остаётся в браузере пользователя, а решение об отправке материала в Hub принимается явно.
Таким образом автоматический и ручной контент попадает в одну редакционную систему.
Мобильное приложение
Отдельно развивается Flutter-клиент для iOS и Android.
Приложение строится как тонкий клиент News Hub: оно не хранит credentials социальных сетей и не публикует контент напрямую.
Уже реализованы:
авторизация через Hub, безопасное хранение сессии, автоматическое обновление access token, выбор рабочего пространства и базовая структура редакционного интерфейса.
На серверной стороне уже работает API чтения материалов, ревизий, истории. Следующий этап — полноценное подключение редакционной очереди и операций модерации в мобильном клиенте.
Работа с видео
Проект получил отдельный сервис Video Worker для автоматизации многоязычного видеоконтента.
Конвейер строится независимо от News Bot:
видео → анализ → распознавание речи → перевод → субтитры → рендер → проверка → готовые артефакты
Для распознавания речи используется faster-whisper. Перевод выполняется через OpenAI-compatible LLM API.
Система работает не просто с последовательным переводом отдельных субтитров. Для модели формируется контекст видео, соседние реплики и глоссарий имён и терминов. Для сомнительных фрагментов рассчитывается уровень достоверности и материал может быть отправлен на ручную проверку.
Результатом становятся:
Перед тем как признать результат готовым, модуль проверяет структуру и параметры полученного видео.
Video Worker интегрирован с News Hub: готовые результаты могут сохраняться в общем хранилище и далее проходить тот же процесс проверки и публикации, что и остальные материалы.
Контур активно развивается и сейчас проходит финальные этапы проверки качества и production-подготовки.
Надёжность
Важная часть проекта — не только автоматизировать обычный сценарий работы, но и обеспечить устойчивость системы при сбоях внешних сервисов.
News Bot сохраняет состояние обработки материалов, поэтому после перезапуска может продолжить работу с того места, на котором остановился.
Для временных ошибок предусмотрены повторные попытки с увеличивающимися интервалами. При этом система различает временные и окончательные ошибки и не пытается бесконечно повторять заведомо невозможную операцию.
Отдельные механизмы защищают от повторной обработки и публикации одного материала. Если внешний сервис вернул неоднозначный результат, система сначала проверяет фактическое состояние публикации и только после этого решает, требуется ли повторная отправка.
История изменений материалов сохраняется в виде отдельных версий, а операции модерации и публикации выполняются с проверкой актуального состояния. Это снижает риск конфликтов при одновременной работе нескольких пользователей или фоновых процессов.
Новые функции включаются постепенно и независимо друг от друга. Поэтому добавление нового источника, канала публикации или интерфейса не требует сразу менять уже работающую систему.
Такой подход позволяет развивать проект поэтапно, не останавливая существующие автоматические потоки.
Технологии
Backend и automation:
Python, Laravel, Filament, PostgreSQL, SQLite, Redis, REST API.
AI:
OpenAI-compatible LLM API, faster-whisper, собственные prompts, contextual translation, glossary и semantic QA.
Источники:
RSS, X, TikTok, web pages.
Клиенты:
Filament Web UI, Flutter, Chrome Extension Manifest V3.
Media:
yt-dlp, FFmpeg, ffprobe, SRT, ASS.
Интеграции:
Telegram API, VK API, MAX API, Bitrix24 REST API.
Infrastructure:
Docker, systemd, CI/CD.
Пример реальной эксплуатации
Один из тестовых проектов — фанатское сообщество с иностранным контентом.
News Bot следит за заданными аккаунтами в X и TikTok и одновременно получает новости из RSS-потоков по ключевым словам.
Материалы автоматически переводятся и подготавливаются к публикации.
В Telegram поток работает полностью автоматически: публикации из X, TikTok и RSS могут выходить без участия редактора.
В VK публикации из X и TikTok также отправляются автоматически, а RSS-материалы проходят премодерацию контент-менеджером.
Поддерживаются текст, несколько изображений и видео.
Это уже не демонстрационный проект на тестовых данных, а система, которая используется на реальном постоянно обновляющемся контенте.
На данный момент перевод в указанных пабликах осуществляется с помощью модели GPT-6 Luna.
VK: https://vk.ru/akb48_news
TG: https://t.me/akb48_news
MAX: https://web.max.ru/channel_akb48