AI-Powered Football News Aggregator & Telegram Bot

Overview

An automated, multi-source ingestion and broadcasting ecosystem built for football curators. The bot tracks breaking news, updates, and transfer rumors for three specific clubs — Arsenal, Liverpool, and Inter Milan — and delivers them directly to dedicated Telegram channel topics.

To ensure high-quality content delivery, the pipeline employs Google Gemini to summarize long articles into digestible, punchy Telegram posts, and auto-translates non-English social media updates (e.g., from Arabic or Italian journalists) on the fly.

Architectural Highlights & Ingestion Pipeline

To prevent breaking news from being delayed by slow, headless browser execution, the system runs two independent loops:

  1. The Fast Ingestion Loop (~3 min) — A lightweight, async process that pulls from RSS feeds, Google News, and X (Twitter) accounts. Since tweets and short headlines require no AI processing, they are routed and broadcasted almost instantly.
  2. The Headless Ingestion Loop (~20 min) — A specialized queue that runs a headless Chromium instance (using DrissionPage) to bypass Cloudflare-protected sports websites (e.g., Telegraph, Mirror, Sky Sports) and scrape full-article contents.
  3. The TikTok Loop (~10 min) — A media monitor that watches specific creators, downloads new clips via yt-dlp, processes them using ffmpeg, and broadcasts them as native autoplay videos along with top liked comments.

Control Panel & Admin Tools

Instead of modifying configurations in files, the bot exposes a complete Telegram Admin Panel allowing administrators to:

  • Add or remove news sources (RSS feeds, X handles, TikTok creators).
  • Manage club-relevance keyword lists to filter out off-topic articles.
  • Run dry-runs on specific URLs to test scraping templates.
  • Update X cookies/session credentials directly from the chat.
  • Launch the X Lead Finder tool to discover high-follower football accounts and export them to Excel.

Stack

Python · Telegram Bot API · Google Gemini API · DrissionPage · SQLite · yt-dlp · ffmpeg · Docker · Asyncio

Outcome

The bot maintains strict 24-hour freshness and filters out duplicate news entries by hashing unique source IDs. It serves as a fully autonomous news channel operator, handling ingestion, filtering, summarization, translation, and media formatting with zero daily human intervention.