GKBot is an async Telegram bot with a modular feed system, media tooling, and optional AI integrations.
Features
- Telegram bot built on
aiogram3. - Modular feed handlers for YouTube, TikTok, Twitch, Reddit, VK, Telegram, Rezka, Kinogo, Shiki, Spotify, Discours, Pornhub, Piokok, Stories, and generic video.
- Media downloading via
yt-dlp, with async workers andffmpegsupport. - LLM integrations via Gemini and OpenRouter.
- Notion database/page integration.
- Text-to-speech via Edge TTS.
- Wikipedia quote lookup.
Tech Stack
- Python 3.13
aiogram3tortoise-ormwithasyncpg(Postgres) and SQLite supportyt-dlpandffmpeggoogle-generativeaiand OpenAI SDK (OpenRouter)notion-clientedge-ttsuvandrufffor tooling
Installation
- Copy the environment template and fill in required values.
cp .env.dist .env- Install dependencies (recommended with
uv).
uv sync --all-extras- Run the bot.
python bot/main.pyDocker
- Create
.envand set required variables (see.env.dist). - Start the container.
docker compose up --buildConfiguration Required:
BOT_TOKENADMIN_IDS- Database config via
DB_URLorSQLDIALECTplusDB_USER,DB_PASSWORD,DB_HOST,DB_PORT,DB_NAME
Optional integrations:
NOTION_API_TOKENYOUTUBE_API_KEYTELEGRAPH_API_KEYGEMINI_API_KEYOPENROUTER_API_KEYAPI_SERVER_URL