⚡ Instantly summarize global news inside Telegram — 100% free, private, and local. Built with Python + TextRank.
Free, local-first Telegram bot that fetches news via RSS feeds and returns concise extractive summaries for user-selected topics.
No paid APIs required. Summarization is extractive (TextRank) and runs locally.
- Topic selection via inline buttons (technology, world, business, sports, science, health, entertainment)
- Fetches from reputable RSS feeds (no paid APIs)
- Extractive summarization (TextRank) – fully free, no external LLM API
- Simple JSON storage for per-user topic preferences
- Python 3.10+
- python-telegram-bot (async, v21)
- feedparser, trafilatura (fetch + extract article content)
- sumy (TextRank summarizer)
- dotenv for configuration
-
Create a bot with BotFather and obtain your bot token.
-
Environment variables (keep secrets out of git):
- Copy
env.sampleto.env - Set
TELEGRAM_BOT_TOKENin.env - Note:
.envis ignored by.gitignoreso your token isn’t committed
- Copy
-
Create a virtual environment and install dependencies:
python -m venv .venv
.venv\Scripts\activate # Windows PowerShell
pip install -r requirements.txt- Run the bot:
python -m src.main/startto begin and choose your topics/topicsto update your preferences/latestto get summarized headlines for your selected topics/helplist all commands/setlatestcount <n>set articles per topic for/latest(1-10)/setdailycount <n>set articles per topic for daily digest (1-10)/schedule <morning|evening|night>pick your daily digest time/subscribestart receiving the daily digest automatically/unsubscribestop receiving the daily digest
Contributions are welcome! Please:
- Open an issue for bugs/feature requests
- Submit PRs with a clear description and minimal changes
- Keep code readable and documented where non-obvious
python -m src.main- Render/OCI/Hetzner/Fly.io free tiers
- Use polling or set up webhooks; ensure the process stays alive
- Never commit
.env; the file is ignored by default - Rotate tokens if accidentally exposed
MIT
python, telegram-bot, automation, news, rss, nlp, text-summarization, textrank, open-source, local-first, bot-development, python-telegram-bot, asyncio, free-api, news-aggregator
- Summaries are extractive using TextRank; no paid API keys are needed
- The default feed set is curated but you can add/change RSS feeds in
src/news.py - User preferences are stored in
data/users.json
- Fly.io, Deta Space, or Render free tiers can run this
- For hosting, add a
Procfileand keep the process alive; also consider webhook mode instead of polling