
tg-archive
https://github.com/knadh/tg-archive- Category
- Productivity
- Rank
- No. 821Tools index
Previous survey · No. 802 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- knadh
- GitHub
- 1.2k stars
- Latest release
- v1.3.0
- Date
About
Export Telegram group chats into searchable static websites — like a mailing list archive for your community.
What it does
tg-archive pulls group messages through Telegram’s user-account API, stores them locally in SQLite, then renders a publishable website. Repeated syncs fetch only newer messages. The output organizes conversations by month and day, preserves reply links, and can include avatars, media, polls, RSS, and Atom feeds.
Why it's ranked here
Its strongest idea is a simple, inspectable publishing pipeline: Telegram, SQLite, templates, static files. Incremental syncing and portable output suit long-lived community records. The central reservation is serious: the author says active maintenance and development have stopped, while Telegram access and several pinned dependencies remain moving parts.
What's good
The archive needs no application server after generation. Monthly pagination, day indexes, stable message anchors, and cross-page reply links preserve useful conversational structure. Operators can edit the bundled HTML and assets, filter downloaded media by MIME type, choose a timezone, resume interrupted syncs, and publish feeds alongside the pages.
Tradeoffs
Setup requires Telegram developer credentials for a normal user account, plus phone-number and authorization-code login. The resulting session file grants account API authorization and must remain private. Large histories and media downloads may trigger Telegram rate limits. Builds recreate the output directory, and customization assumes comfort editing configuration, templates, and static assets.
How to use it well
Use it for a group whose maintainers can run a scheduled Python command, protect account credentials, and publish generated files to static hosting. Keep the SQLite database as the local source, sync incrementally, then rebuild and republish. It does not provide hosted operations, active upstream development, or an application server for dynamic features.
Technical notes+
setup.py defines the tg-archive console entry point and reads pinned dependencies from requirements.txt; MANIFEST.in packages the example site assets. tgarchive/__init__.py implements initialization, synchronization, and build modes with YAML configuration. tgarchive/sync.py uses Telethon, supports standard and takeout clients, commits batches to SQLite, caches avatars, and converts Telegram media and polls. tgarchive/db.py defines messages, users, and media tables plus chronological queries. tgarchive/build.py paginates by month, maps message IDs to generated pages for reply links, renders Jinja templates with autoescaping, copies or symlinks assets, and emits RSS and Atom files. tgarchive/example/template.html supplies the responsive archive interface.
Observed
- License
- MIT License
- Primary language
- Python
- Install surface
- Python package installable with uv pip
- Interface
- Command-line interface for site initialization, Telegram synchronization, and static-site builds
- Storage
- Local SQLite database with messages, users, and media tables
- Telegram access
- Telethon client using normal user-account API credentials, not the Bot API
- Output
- Static HTML site with optional RSS and Atom feeds
- Maintenance status
- The author states that active maintenance and development have stopped, while documented pull requests may still be reviewed and merged
Read from README.md, setup.py, requirements.txt, tgarchive/db.py, tgarchive/sync.py, tgarchive/build.py, tgarchive/__init__.py, tgarchive/__metadata__.py, tgarchive/example/static/main.js, LICENSE, MANIFEST.in, tgarchive/example/config.yaml, tgarchive/example/template.html, tgarchive/example/rss_template.html, tgarchive/example/static/style.css.
What it can do
Export Telegram group chat history
Telegram group chat → Raw chat data
Convert chat messages into static website
Telegram chat data → Static HTML website
Make chat archives searchable
Chat messages and metadata → Search-enabled website interface
Create mailing list style archive interface
Group chat conversations → Browsable message archive website
Organize messages chronologically
Unstructured chat history → Time-ordered message display
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.