Skip to main content

is a tool for exporting Telegram group chats into static websites, preserving the chat history like mailing list archives.

Project description

favicon

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.

image

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

  1. tg-archive --new --path=mysite (creates a new site. cd into mysite and edit config.yaml).
  2. tg-archive --sync (syncs data into data.sqlite). Note: First time connection will prompt for your phone number + a Telegram auth code sent to the app. On successful auth, a session.session file is created. DO NOT SHARE this session file publicly as it contains the API autorization for your account.
  3. tg-archive --build (builds the static site into the site directory, 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tg_archive-1.3.1.tar.gz (30.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tg_archive-1.3.1-py3-none-any.whl (30.8 kB view details)

Uploaded Python 3

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

Hashes for tg_archive-1.3.1.tar.gz
Algorithm Hash digest
SHA256 c8e91de03cf823d14245e6827c6fc0b49596d7738aa93725e836abbc11674965
MD5 651d2c6a81b14c9aaa1a2dc3bd69f68a
BLAKE2b-256 3d2447a722fe29e2a7048adf21d15068a9193a9613563e22321f2561829358d5

See more details on using hashes here.

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

Hashes for tg_archive-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 311b2125759930eced8a46550a46e751cc2437c52651f4059619b1b71cdbdb4f
MD5 968b7631c63b8f939fde4b7dd50f2f89
BLAKE2b-256 2963ce588764846001339af90ae5a391622968c6a7757f8318ad48012e4a7fe3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page