QQBackup / QQ-History-Backup

【停更】QQ/TIM 聊天记录导出为 HTML,支持图片、语音,可 GUI 与 非 GUI 操作 (Python)
MIT License
324 stars 15 forks source link
android backup qq

QQ聊天记录导出

本项目用于将 非 QQNT 的 Android 端 QQ/TIM 的聊天记录数据库转换为 HTML 文件,并转换图片、语音等部分特殊消息。

关于其他平台(Windows, MacOS, iOS…)

请看 QQBackup/qq-win-db-key

维护情况

省流:没时间维护,欢迎新 maintainer 与 PR(或者可以自行开个fork)。请提交到dev分支。

同时,请参看qq-win-db-key 中列出的改进版

运行方式

  1. 一切操作之前,你需要先安装 Python 3.x(建议使用可下载的最高版本,已知支持3.12),可参考此文章(Windows)
  2. 然后,在当前目录打开终端,Windows 用户若不懂可以看这篇博文
  3. 输入以下命令永久加速相关依赖的下载(换源):pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  4. 安装依赖:pip install -r requirements.txt
  5. 若是运行 GUI,就python GUI.py
  6. 若是直接运行命令行版,就修改好QQ_History.py最下面的内容,并运行:python QQ_History.py

声明

本项目仅供学习交流使用,严禁用于任何违反中国大陆法律法规、您所在地区法律法规、QQ软件许可及服务协议的行为,本人不承担任何相关行为导致的直接或间接责任。

本项目理论仅能将可以通过正常方法查看的聊天记录导出,而不能进行包括但不限于已删除聊天记录恢复在内的操作。

本项目不对生成内容的完整性、准确性作任何担保,因此生成的一切内容没有法律效力,您不应当将其用于学习与交流外的任何用途。

简介

作为国内最常用的聊天工具之一,QQ 为了用户留存度,默认聊天记录备份无法脱离 QQ 被独立打开。

目前版本往往需要通过命令行运行,本方法在之前版本的基础上简化了操作,制作了GUI方便使用;并且不再需要提供密钥,自动填入备注/昵称,添加了QQ表情、图片和语音的一并导出。

如果你不使用打包后的版本,请首先运行以下命令以安装依赖:pip install -r requirements.txt

获取聊天记录文件夹方法

注:以下提到的“电脑”泛指一切可以运行此程序的环境,如安卓手机上的 Termux 也属于此列

注:以下内容假设您使用的是 QQ 而非 TIM,如果您在使用 TIM,请将com.tencent.mobileqq改为com.tencent.tim,将MobileQQ改为Tim

如果手机已获得 root 权限,聊天记录可在以下路径找到。

/data/data/com.tencent.mobileqq/

我们需要的文件只有databases/<QQ号>.dbdatabases/slowtable_<QQ号>.dbfiles/kc,因此您可以将整个文件夹压缩后传输到电脑上,亦或将这三个文件单独放在同一个目录中传输。本程序会自动识别这两种不同的目录结构。

如果没有 root 权限,可以通过手机自带的备份工具备份整个 QQ,拷贝备份文件到电脑,解压找到 com.tencent.mobileqq

具体方法可以参见

怎样导出手机中的QQ聊天记录? - 益新软件的回答 - 知乎 https://www.zhihu.com/question/28574047/answer/964813560

关于苹果设备导出,参见此讨论;对于安卓系统导出内容的提取,请自行在互联网查询。

如果同时需要在聊天记录中显示图片,拷贝手机中 /sdcard/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/chatpic/chatimgGUI.exe 同一文件夹中或者拷贝过来的com.tencent.mobileqq目录下。

(QQ)如果同时需要在聊天记录中显示语音,拷贝手机中 /sdcard/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/<QQ号>/pttGUI.exe 同一文件夹中或者拷贝过来的com.tencent.mobileqq目录下。

(TIM)如果同时需要在聊天记录中显示语音,拷贝手机中 /sdcard/Android/data/com.tencent.tim/Tencent/Tim/ptt/<QQ号>GUI.exe 同一文件夹中或者拷贝过来的com.tencent.mobileqq目录下,并重命名为ptt

GUI使用方法

GUI_image

输出截图

screenshot screenshot

如果没有启用合并图片,拷贝生成的聊天记录时需要一起拷贝 emoticon 以及 chatimg 文件夹.

有 bug 的话提 issue,记得附上 log.txt 里的内容以及终端的报错内容。

TODO

FAQ

CHANGELOG

v2

v2.2

v2.3

v2.4

致谢

  1. roadwide/qqmessageoutput

  2. WincerChan/export.py

  3. Yiyiyimu/QQ-History-Backup (本仓库的来源,致敬!同时,源代码基于 MIT 协议使用。)

  4. ZhangJun2017/QQChatHistoryExporter (参考了 Protobuf 相关内容)

适配新类型笔记

  1. 下载 protoc 这一可执行文件,设置可执行权限(仅 Linux 类系统)并移动到适当位置(位于 PATH 环境变量中的目录)

  2. 编辑proto/RichMsg.proto,增加新类型(可以参照此项目

  3. 切换到目录proto中,运行compile,在 Windows 下需先将其改名为compile.bat

  4. 编辑QQ_History.py中的decrypt,加入msgtype对应判断与处理代码

  5. 记得写文档