一个将Telegram数据(用户、聊天、消息和媒体)下载到数据库(并显示保存的数据)的工具。
项目描述
telegram-export
一个将Telegram数据(用户、聊天、消息和媒体)下载到数据库(并显示保存的数据)的工具。
数据库模式
安装
最简单的方法是运行 sudo pip3 install --upgrade telegram_export,之后在终端中应该可以直接使用 telegram-export 命令。就这样!
如果你不喜欢使用 sudo pip,你可以使用 pip3 install --user telegram_export,但你需要将类似 ~/.local/bin/ 的路径添加到你的 $PATH 中才能使命令可用。如果你不想添加到 PATH,你也可以在任何地方使用 python3 -m telegram_export 来代替 telegram-export。如果你在使用虚拟环境,你可能会遇到类似的问题,但如果你使用它们,你可能已经知道自己在做什么 :)
下载慢?
你也可以用同样的方法安装 cryptg,以便在下载媒体时提高速度。Telegram 需要大量的加密和解密,这可能会使文件下载变得非常慢,除非使用像 cryptg 这样快速的库。一位用户报告了 速度提高了 1100%。
使用方法
首先,将 config.ini.example(从 GitHub 获取)复制到 ~/.config/telegram-export/config.ini 并编辑一些值。你可能需要创建这个文件夹。为了编写你的配置白名单,你可能需要参考 telegram-export --list-dialogs 的输出以获取对话 ID 或 telegram-export --search <query> 以过滤结果。
然后运行 telegram-export 并允许它转储数据。
完整选项列表
usage: __main__.py [-h] [--list-dialogs] [--search-dialogs SEARCH_STRING]
[--config-file CONFIG_FILE] [--contexts CONTEXTS]
[--format {text,html}] [--download-past-media]
Download Telegram data (users, chats, messages, and media) into a database
(and display the saved data)
optional arguments:
-h, --help show this help message and exit
--list-dialogs list dialogs and exit
--search-dialogs SEARCH_STRING
like --list-dialogs but searches for a dialog by
name/username/phone
--config-file CONFIG_FILE
specify a config file. Default config.ini
--contexts CONTEXTS list of contexts to act on eg --contexts=12345,
@username (see example config whitelist for full
rules). Overrides whitelist/blacklist.
--format {text,html} formats the dumped messages with the specified
formatter and exits.
--download-past-media
download past media instead of dumping new data (files
that were seen before but not downloaded).
telegram-export 与 telegram-history-dump 的比较
(为了简洁,我们只把它们称为“export”和“dump”)
SQLite 而不是 jsonlines 允许进行更强大的查询和更好的效率,但会失去与文本操作 UNIX 工具的兼容性,因为数据不是以文本格式存储的(或者更强大的工具,如 jq)。
export 存储的数据比 dump 的 json 输出更简单。
支持保存个人或其他对话的历史记录,这样你就可以查看例如他们的名字随着时间的推移。
使用 telethon 而不是 tg-cli 允许支持新的 Telegram 功能,如固定消息、管理员日志、用户简介、对超级组的优先级支持,并避免了 tg-cli 的错误,这使得导出频道变得不可能,以及几个其他 tg-cli 的烦恼(例如安装相对困难)。
比 dump 更新但不够成熟
还没有专门的分析程序(dump 有 telegram-analysis 和 pisg)
实现了 dump 不支持的功能(不完全列表)
管理员日志
将用户/频道/聊天作为它们自己的实体导出,而不仅仅是作为消息元数据。这允许像用户简介、频道描述和个人资料图片这样的功能。
固定消息(dump 某种程度上支持这一点,但只通过保存回复固定消息的文本为“固定了消息”的消息)
参与者列表
与 Telegram API 的更紧密交互理论上允许大幅提高速度(很快将比较实际时间)
export 的数据库文件绑定到用户(就像 dump 一样),如果你以另一个人登录,程序将退出以避免混淆。如果你使用 export 与多个用户,你应该为每个用户指定不同的数据库。你可以通过 --config-file 容易地选择不同的配置文件。
限制
仍在开发中。它会转储一些东西,但模式可能会改变,我们不会支持旧的模式迁移。
依赖于 Telethon <https://github.com/LonamiWebs/Telethon>,它仍然是预 1.0 版本。
出于简洁的考虑,某些信息不会被删除。例如,编辑过的消息不会被重新下载,目前数据库中也不支持多个版本的同一消息。然而,这不应该成为大问题,因为大多数编辑或删除都是合法的,并且通常是为了纠正错误。
它是做什么的?它是一个机器人吗?
它使用Telegram API(Telegram应用程序使用的技术),因此它可以访问Telegram应用程序可以执行的所有操作。这就是为什么你需要API ID和API哈希才能使用它,为什么Telegram Desktop的API可以工作。由于普通客户端需要下载消息、媒体、用户等信息以在应用程序中显示,因此telegram-export也可以这样做,并将其保存到数据库中。
所以,它并不是真正的机器人,但它确实使用了与用户机器人相同的技术来工作。据我们所知,它不会让你被禁止使用Telegram或类似的事情。
从源代码安装
git clone 此仓库,然后 python3 setup.py install。你还应该阅读安装部分的相关说明。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码发行版
构建发行版
telegram-export-1.8.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c6f328825dafb867ebede007e1f94dbb8edd68d5029d7d3942d4e71457f17b35 |
|
MD5 | 06986054872bf0992b2adbde351a71a1 |
|
BLAKE2b-256 | 047139b0f5f18132e7a70a98daaab469c8fedd04eb30c3c417c41c0cfcff162a |
telegram_export-1.8.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4a8ad6bb0e0018259e2411e61f6bfc76769c65b434e0294b7970b65ed367fe55 |
|
MD5 | e9545d8c938ca0ca329c2a384dfc4e30 |
|
BLAKE2b-256 | 20dc229a0de75d8321b51cab830bb0c324f67918d4adef6292d19185aab84073 |