/
InvestClub 🐹
Esc
Начните вводить для поиска

📡 MegaParser — парсер Telegram-каналов с AI-переписыванием

🎯 Что это

MegaParser — self-hosted веб-сервис, который собирает свежие посты из публичных Telegram-каналов (которые ты укажешь), переписывает их через GPT-4o в твоём стиле и публикует в твои собственные каналы через Telegram Bot API. Полный контроль: один пользователь, один сервер, никаких облаков.

Репозиторий: github.com/Dimks777/megaparser · MIT · бесплатно

Идеален когда ты ведёшь несколько каналов и не хочешь руками копировать посты из источников. Настроил один раз → забыл. MegaParser каждый день вытягивает новый контент, переписывает его через AI, показывает тебе для модерации и публикует.


Как это работает

  1. Ты указываешь источники — публичные Telegram-каналы, откуда собирать контент (например, новостные или аналитические каналы по твоей теме)
  2. Ты указываешь целевые каналы — свои Telegram-каналы, куда будет публиковаться переписанный контент
  3. Парсер (через Telethon MTProto) вытягивает последние посты из источников
  4. AI-переписывание — каждый пост проходит через GPT-4o с твоим системным промптом. Результат — уникальный текст в твоём стиле, не копипаст
  5. Модерация — ты видишь оригинал, переписанную версию и кнопки «Опубликовать / Изменить / Отклонить»
  6. Публикация — одобренный пост уходит в целевой канал через Telegram Bot API (твой бот должен быть админом канала)

Что нужно для установки

  • VPS или сервер с Linux (Ubuntu 22.04+), минимум 1 GB RAM
  • Python 3.11+ для backend
  • Node.js 18+ для frontend (сборка)
  • PostgreSQL 14+ для хранения постов и настроек
  • Telegram API credentialsapi_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)

  1. Открой my.telegram.org
  2. Войди по номеру телефона (придёт код в Telegram)
  3. Нажми API development tools
  4. Если приложения ещё нет — создай новое:
    • App title: MegaParser
    • Short name: megaparser
    • Platform: Desktop
    • URL/Description — оставь пустыми
  5. Сохрани api_id (числовой) и api_hash (32-символьная строка) в заметку

⚠️ api_hash — это как пароль. Никогда не публикуй его в чатах, git, скриншотах. Если утёк — отзови через my.telegram.org и пересоздай приложение.

2. Telegram Bot для публикации

  1. Открой @BotFather
  2. Напиши /newbot
  3. Придумай имя (например «Мой контент-бот») и username (заканчивается на bot)
  4. Скопируй полученный токен (1234567890:ABC...) и сохрани
  5. Добавь бота администратором в свои целевые каналы:
    • Открой канал → ⚙️ Настройки → Администраторы
    • «Добавить администратора» → найди своего бота по username
    • Дай минимум права «Публиковать сообщения»

3. OpenAI API key

  1. Зайди на platform.openai.com/api-keys
  2. Нажми Create new secret key
  3. Дай имя megaparser и создай ключ
  4. Скопируй сразу (показывается один раз) и сохрани

⚠️ Для 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+OEnterCtrl+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)

  1. Вход в дашборд — открой свой домен, авторизуйся по номеру Telegram (SMS или QR-код). Войдёт только тот пользователь, чей ALLOWED_USER_ID указан в .env
  2. Добавь свои целевые каналы — «Мои каналы» → «Добавить канал» → укажи канал где бот уже админ
  3. Добавь источники — публичные каналы откуда парсить контент (например @durov_news) → привяжи каждый источник к одному или нескольким целевым каналам
  4. Получи посты — кликни на источник → «Получить последние посты» → парсер стянет N свежих публикаций
  5. Переписывание через AI — выбери пост → «Переписать с AI» → GPT-4o выдаст уникальную версию в твоём стиле
  6. Редактирование — доработай результат вручную при желании
  7. Публикация — «Опубликовать» → пост уходит в привязанный целевой канал через 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