📡 MegaParser — парсер Telegram-каналов с AI-переписыванием
🎯 Что это
MegaParser — self-hosted веб-сервис, который собирает свежие посты из публичных Telegram-каналов (которые ты укажешь), переписывает их через GPT-4o в твоём стиле и публикует в твои собственные каналы через Telegram Bot API. Полный контроль: один пользователь, один сервер, никаких облаков.
Репозиторий: github.com/Dimks777/megaparser · MIT · бесплатно
Идеален когда ты ведёшь несколько каналов и не хочешь руками копировать посты из источников. Настроил один раз → забыл. MegaParser каждый день вытягивает новый контент, переписывает его через AI, показывает тебе для модерации и публикует.
Как это работает
- Ты указываешь источники — публичные Telegram-каналы, откуда собирать контент (например, новостные или аналитические каналы по твоей теме)
- Ты указываешь целевые каналы — свои Telegram-каналы, куда будет публиковаться переписанный контент
- Парсер (через Telethon MTProto) вытягивает последние посты из источников
- AI-переписывание — каждый пост проходит через GPT-4o с твоим системным промптом. Результат — уникальный текст в твоём стиле, не копипаст
- Модерация — ты видишь оригинал, переписанную версию и кнопки «Опубликовать / Изменить / Отклонить»
- Публикация — одобренный пост уходит в целевой канал через Telegram Bot API (твой бот должен быть админом канала)
Что нужно для установки
- VPS или сервер с Linux (Ubuntu 22.04+), минимум 1 GB RAM
- Python 3.11+ для backend
- Node.js 18+ для frontend (сборка)
- PostgreSQL 14+ для хранения постов и настроек
- Telegram API credentials —
api_idиapi_hashс my.telegram.org - Telegram Bot Token от @BotFather — бот должен быть администратором во всех твоих целевых каналах
- OpenAI API key с platform.openai.com (для GPT-4o)
- Твой Telegram User ID (узнай через @userinfobot) — только этот пользователь сможет войти в дашборд
Подготовка API-ключей и токенов (10 минут)
1. Telegram API credentials (my.telegram.org)
- Открой my.telegram.org
- Войди по номеру телефона (придёт код в Telegram)
- Нажми API development tools
- Если приложения ещё нет — создай новое:
- App title:
MegaParser - Short name:
megaparser - Platform:
Desktop - URL/Description — оставь пустыми
- App title:
- Сохрани
api_id(числовой) иapi_hash(32-символьная строка) в заметку
⚠️ api_hash — это как пароль. Никогда не публикуй его в чатах, git, скриншотах. Если утёк — отзови через my.telegram.org и пересоздай приложение.
2. Telegram Bot для публикации
- Открой @BotFather
- Напиши
/newbot - Придумай имя (например «Мой контент-бот») и username (заканчивается на
bot) - Скопируй полученный токен (
1234567890:ABC...) и сохрани - Добавь бота администратором в свои целевые каналы:
- Открой канал → ⚙️ Настройки → Администраторы
- «Добавить администратора» → найди своего бота по username
- Дай минимум права «Публиковать сообщения»
3. OpenAI API key
- Зайди на platform.openai.com/api-keys
- Нажми Create new secret key
- Дай имя
megaparserи создай ключ - Скопируй сразу (показывается один раз) и сохрани
⚠️ Для GPT-4o нужен платный баланс на OpenAI. Минимум $5 хватит на тысячи постов. Пополнить можно через Settings → Billing.
4. Твой Telegram User ID
Напиши боту @userinfobot команду /start — он ответит числом. Это твой ID (обычно 9-10 цифр). Сохрани.
Итого в заметке должно быть
TELEGRAM_API_ID: 123456
TELEGRAM_API_HASH: abcdef1234567890abcdef1234567890
TELEGRAM_BOT_TOKEN: 1234567890:AABBCCdd...
OPENAI_API_KEY: sk-proj-...
ALLOWED_USER_ID: 123456789 (твой TG user id)
SSH на VPS: ssh root@IP_твоего_сервера
Установка на сервере — 6 шагов
Шаг 1 — Установить PostgreSQL и создать базу
sudo apt update
sudo apt install -y postgresql postgresql-contrib
sudo -u postgres psql
CREATE DATABASE telegram_parser;
CREATE USER megaparser WITH PASSWORD 'выбери_надёжный_пароль';
GRANT ALL PRIVILEGES ON DATABASE telegram_parser TO megaparser;
\q
Шаг 2 — Установить Python и Node.js
sudo apt install -y python3.11 python3.11-venv python3-pip git curl
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs
Шаг 3 — Клонировать репозиторий
git clone https://github.com/Dimks777/megaparser.git
cd megaparser
Шаг 4 — Настроить переменные окружения
cp .env.example .env
nano .env
Заполни значения из своей заметки:
TELEGRAM_API_ID=123456
TELEGRAM_API_HASH=abcdef1234567890abcdef1234567890
TELEGRAM_BOT_TOKEN=1234567890:AABBCCdd...
OPENAI_API_KEY=sk-proj-...
ALLOWED_USER_ID=123456789
DATABASE_URL=postgresql+asyncpg://megaparser:выбери_надёжный_пароль@localhost:5432/telegram_parser
Сохрани (Ctrl+O → Enter → Ctrl+X).
Шаг 5 — Запустить backend
cd backend
python3.11 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
alembic upgrade head # создаст таблицы в базе
uvicorn main:app --host 127.0.0.1 --port 8000 --workers 1
На экране должно появиться: Uvicorn running on http://127.0.0.1:8000. Это dev-режим — для продакшена ниже подключим systemd.
Шаг 6 — Собрать и запустить frontend
Открой ещё одну SSH-сессию (первая должна продолжать держать uvicorn):
cd ~/megaparser/frontend
npm install
npm run build # собирает статику в frontend/dist/
npm run dev # dev-режим на порту 5173 — только для теста
Открой в браузере http://IP_сервера:5173 — увидишь страницу входа. Авторизуйся через номер телефона Telegram.
Продакшен-деплой через Nginx + systemd
Dev-режим (uvicorn через --reload + Vite dev server) подходит только для тестирования. Для постоянной работы нужен nginx + systemd. В репо уже есть готовые конфиги в папке deploy/.
systemd-юнит для backend
sudo cp ~/megaparser/deploy/megaparser.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable megaparser
sudo systemctl start megaparser
sudo systemctl status megaparser # проверка что запустилось
Nginx reverse proxy с SSL
sudo apt install -y nginx certbot python3-certbot-nginx
sudo cp ~/megaparser/deploy/nginx.conf /etc/nginx/sites-available/megaparser
sudo ln -s /etc/nginx/sites-available/megaparser /etc/nginx/sites-enabled/
sudo nginx -t # проверка конфига
sudo systemctl reload nginx
# Получаем SSL от Let's Encrypt
sudo certbot --nginx -d твой-домен.ru
После этого MegaParser будет доступен по HTTPS на https://твой-домен.ru. Certbot автоматически обновляет сертификат раз в 90 дней.
Как пользоваться (workflow)
- Вход в дашборд — открой свой домен, авторизуйся по номеру Telegram (SMS или QR-код). Войдёт только тот пользователь, чей
ALLOWED_USER_IDуказан в.env - Добавь свои целевые каналы — «Мои каналы» → «Добавить канал» → укажи канал где бот уже админ
- Добавь источники — публичные каналы откуда парсить контент (например @durov_news) → привяжи каждый источник к одному или нескольким целевым каналам
- Получи посты — кликни на источник → «Получить последние посты» → парсер стянет N свежих публикаций
- Переписывание через AI — выбери пост → «Переписать с AI» → GPT-4o выдаст уникальную версию в твоём стиле
- Редактирование — доработай результат вручную при желании
- Публикация — «Опубликовать» → пост уходит в привязанный целевой канал через Bot API. Работает с текстом, картинками, медиа-группами
Безопасность
- Single-user mode — в дашборд может войти только один Telegram-пользователь (указан в
ALLOWED_USER_ID). Никто больше не получит доступ, даже зная адрес - MTProto session хранится в зашифрованном виде в локальной базе
- Bot Token и OpenAI key живут только в
.envи памяти процесса, наружу не уходят - Все запросы через HTTPS — nginx с Let's Encrypt обязателен для прода
- Парсинг только публичных каналов — MegaParser не может читать приватные чаты или каналы, куда ты не вошёл
Обновление MegaParser
cd ~/megaparser
git pull
# Backend — обновление зависимостей
cd backend
source venv/bin/activate
pip install -r requirements.txt --upgrade
alembic upgrade head # на случай новых миграций
sudo systemctl restart megaparser
# Frontend — пересборка
cd ../frontend
npm install
npm run build
sudo systemctl reload nginx
Если включал автодеплой через deploy/deploy.sh — можешь просто запустить его, он сделает всё сам.
Проблемы и решения
| Проблема | Решение |
|---|---|
| «Invalid API credentials» при входе | Проверь TELEGRAM_API_ID и TELEGRAM_API_HASH — они должны быть из того же приложения на my.telegram.org, с которого ты логинишься |
| Бот не публикует в канал | Проверь что бот добавлен как администратор канала с правом «Публиковать сообщения». Без админ-прав Bot API отказывает |
| «Connection refused» при открытии дашборда | Проверь sudo systemctl status megaparser — скорее всего backend упал. Посмотри логи: sudo journalctl -u megaparser -n 50 |
| OpenAI ошибка «insufficient_quota» | Пополни баланс на platform.openai.com/billing. Минимум $5 |
| Только я могу войти, а партнёр/ассистент — нет | Это так и задумано (single-user mode). Если нужно больше пользователей — добавь их ID в ALLOWED_USER_IDS списком через запятую (требует доработки кода) |
| Парсер не стягивает новые посты | Проверь что источник — публичный канал, а не приватный чат. Для приватных каналов MTProto-сессия должна быть их участником |
| База не мигрируется (alembic упал) | Проверь подключение к Postgres: psql postgresql://megaparser:PAROL@localhost:5432/telegram_parser. Если не подключается — проверь пароль и роль |
По нестандартным вопросам — пиши @algot888 или в чат клуба.
Как переключить с GPT на Qwen / Claude / другую модель
По умолчанию MegaParser использует GPT-4o через OpenAI API. Если хочешь сэкономить (Qwen3.6 Plus в ~15 раз дешевле GPT-5) или уйти с OpenAI — открой backend/ai_rewriter.py, найди инициализацию клиента и поменяй на OpenRouter:
from openai import AsyncOpenAI
client = AsyncOpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.getenv("OPENROUTER_API_KEY"), # добавь в .env
)
# В вызове chat.completions.create используй:
model="qwen/qwen3.6-plus" # или любую другую модель с OpenRouter
Потом перезапусти backend — всё. В гайде по gstack подробнее про модели OpenRouter.
📦 Открыть репозиторий MegaParser →
MIT-лицензия · Бесплатно навсегда · Self-hosted · Single-user