Sector: Telegram · Client project
Telegram Chat Exporter — conversation backup and archiving
Python tool built for a client that exports entire Telegram chats into an interactive HTML archive browsable offline — with search, embedded media and statistics — plus a plain-text file.
- HTML + TXT
- Formats
- Selective download
- Media
- Offline
- Browsing
Context
Telegram keeps conversations on its own servers, but anyone who needs an archive of their own — for backup, record keeping and content repurposing — has no flexible tool: the native export is rigid and barely filterable. At a client’s request I built a custom tool that fills the gap via the official Telegram APIs (MTProto), exporting any chat, group or channel the account participates in.
What it does
- Interactive picker from the terminal: search by name or username across all the account’s chats.
- Exports in two formats: a self-contained HTML file that emulates the chat interface — avatars, inline media playback, links between replies, reactions, per-day index, live search bar, light/dark theme, statistics panel — and a minimal TXT for archiving and grep.
- Selective media download: photos, videos, voice messages, stickers, documents — combinable flags, with files organized into a dedicated folder.
- Export filters: date range, text search, message limit, custom output directory.
Technical challenges
Rate limits and API etiquette. Telegram throttles request frequency: exporting chats with thousands of messages means pacing the calls to avoid temporary blocks, staying within the platform’s terms of use.
An HTML file that is an application. The exported file is not a static log: live search, reply navigation and inline media work with no server and no connection — everything is encapsulated in a single file browsable anywhere.
Robustness against an evolving API. The client library changes attributes and structures between versions (e.g. forwarded-message metadata): the parsing uses defensive access so it doesn’t break on messages with unexpected structures.
Stack
Python · Telethon (MTProto API) · generated HTML/CSS/JS · interactive CLI