Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/knadh/tg-archive
A tool for exporting Telegram group chats into static websites like mailing list archives.
https://github.com/knadh/tg-archive
exporter static-site static-site-generator telegram telegram-api telegram-export
Last synced: 6 days ago
JSON representation
A tool for exporting Telegram group chats into static websites like mailing list archives.
- Host: GitHub
- URL: https://github.com/knadh/tg-archive
- Owner: knadh
- License: mit
- Created: 2021-03-16T18:12:15.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-22T05:27:47.000Z (5 months ago)
- Last Synced: 2024-09-23T11:46:01.473Z (4 months ago)
- Topics: exporter, static-site, static-site-generator, telegram, telegram-api, telegram-export
- Language: Python
- Homepage:
- Size: 67.4 KB
- Stars: 840
- Watchers: 18
- Forks: 124
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - knadh/tg-archive - A tool for exporting Telegram group chats into static websites like mailing list archives. (Python)
- awesome-starred - knadh/tg-archive - A tool for exporting Telegram group chats into static websites like mailing list archives. (Python)
README
![favicon](https://user-images.githubusercontent.com/547147/111869334-eb48f100-89a4-11eb-9c0c-bc74cdee197a.png)
**tg-archive** is a tool for exporting Telegram group chats into static websites, preserving chat history like mailing list archives.
## Preview
The [@fossunited](https://tg.fossunited.org) Telegram group archive.![image](https://user-images.githubusercontent.com/547147/111869398-44188980-89a5-11eb-936f-01d98276ba6a.png)
## How it works
tg-archive uses the [Telethon](https://github.com/LonamiWebs/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](https://my.telegram.org/auth?to=apps). 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 `pip3 install tg-archive` (tested with Python 3.8.6).### Usage
1. `tg-archive --new --path=mysite` (creates a new site. `cd` into mysite and edit `config.yaml`).
1. `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.
1. `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.