is a tool for exporting Telegram group chats into static websites, preserving the chat history like mailing list archives.
Project description
tg-archive is a tool for exporting Telegram group chats into static websites, preserving chat history like mailing list archives.
IMPORTANT: I'm no longer actively maintaining or developing this tool. Can review and merge PRs (as long as they're not massive and are clearly documented).
Preview
The @fossunited Telegram group archive.
How it works
tg-archive uses the Telethon Telegram API client to periodically sync messages from a group to a local SQLite database (file), downloading only new messages since the last sync. It then generates a static archive website of messages to be published anywhere.
Features
- Periodically sync Telegram group messages to a local DB.
- Download user avatars locally.
- Download and embed media (files, documents, photos).
- Renders poll results.
- Use emoji alternatives in place of stickers.
- Single file Jinja HTML template for generating the static site.
- Year / Month / Day indexes with deep linking across pages.
- "In reply to" on replies with links to parent messages across pages.
- RSS / Atom feed of recent messages.
Install
-
Get Telegram API credentials. Normal user account API and not the Bot API.
- If this page produces an alert stating only "ERROR", disconnect from any proxy/vpn and try again in a different browser.
-
Install with:
uv pip install tg-archive(tested with Python 3.13.2).
Usage
tg-archive --new --path=mysite(creates a new site.cdinto mysite and editconfig.yaml).tg-archive --sync(syncs data intodata.sqlite). Note: First time connection will prompt for your phone number + a Telegram auth code sent to the app. On successful auth, asession.sessionfile is created. DO NOT SHARE this session file publicly as it contains the API autorization for your account.tg-archive --build(builds the static site into thesitedirectory, which can be published)
Customization
Edit the generated template.html and static assets in the ./static directory to customize the site.
Note
- The sync can be stopped (Ctrl+C) any time to be resumed later.
- Setup a cron job to periodically sync messages and re-publish the archive.
- Downloading large media files and long message history from large groups continuously may run into Telegram API's rate limits. Watch the debug output.
Licensed under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tg_archive-1.3.1.tar.gz.
File metadata
- Download URL: tg_archive-1.3.1.tar.gz
- Upload date:
- Size: 30.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8e91de03cf823d14245e6827c6fc0b49596d7738aa93725e836abbc11674965
|
|
| MD5 |
651d2c6a81b14c9aaa1a2dc3bd69f68a
|
|
| BLAKE2b-256 |
3d2447a722fe29e2a7048adf21d15068a9193a9613563e22321f2561829358d5
|
File details
Details for the file tg_archive-1.3.1-py3-none-any.whl.
File metadata
- Download URL: tg_archive-1.3.1-py3-none-any.whl
- Upload date:
- Size: 30.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
311b2125759930eced8a46550a46e751cc2437c52651f4059619b1b71cdbdb4f
|
|
| MD5 |
968b7631c63b8f939fde4b7dd50f2f89
|
|
| BLAKE2b-256 |
2963ce588764846001339af90ae5a391622968c6a7757f8318ad48012e4a7fe3
|