news 2026/8/17 17:43:17

如何免费导出微信聊天记录?一份从安卓手机到HTML的完整实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何免费导出微信聊天记录?一份从安卓手机到HTML的完整实战指南

如何免费导出微信聊天记录?一份从安卓手机到HTML的完整实战指南

【免费下载链接】wechat-dumpAnalyzing your wechat message history from android项目地址: https://gitcode.com/gh_mirrors/we/wechat-dump

手机换了,微信里几百条和家人、老同学的聊天记录眼看就要随着旧手机一起"退休",可微信官方始终没有提供一键导出功能——这大概是每个想永久保存聊天历史的人都遇到过的尴尬。好在开源工具 wechat-dump 提供了一条完全免费、可自行掌控的微信聊天记录导出路径:从已 root 的安卓手机里取出加密数据库,解析成文字、语音、图片、表情一应俱全的独立 HTML 文件,还能顺手做聊天统计。本文就跟着一个真实用户的完整操作经历,把整条路线从零走一遍。

先从"微信为什么不让导出"说起

你可能会问:明明是自己的聊天记录,为什么想导出这么难?答案很简单——微信把数据存放在安卓手机内部私有目录/data/data/com.tencent.mm/MicroMsg之下,数据库EnMicroMsg.db默认加密,资源文件也使用内部私有格式。官方不提供任何接口,普通用户自然无从下手。

wechat-dump 的思路则是"绕道而行":借助 root 权限直接读取微信数据,再通过解码算法把数据还原成通用格式。项目在wechat/目录里把整套逻辑拆成了模块——parser.py负责解析数据库,render.py负责渲染 HTML,audio.py负责语音转码,emoji.py负责表情解密下载,代码结构清晰,也方便你在此基础上二次开发。

第一步:从手机里把数据库"抱出来"

在动手之前,先确认三件事:一台已 root 的安卓手机、电脑上装好 adb、本机有 Python 3.8 以上环境。然后克隆项目并安装依赖:

git clone https://gitcode.com/gh_mirrors/we/wechat-dump cd wechat-dump pip install -r requirements.txt

接下来就要进入微信的私有目录。微信的数据目录里有多个以 32 位十六进制字符串命名的子目录,对应不同微信号,你需要找到自己的那个${userid},然后把数据库和资源文件取出来。手动找太麻烦?项目自带的android-interact.sh帮你自动完成这一切:

./android-interact.sh db

这个脚本会通过 adb 在设备上查找 32 位字符串目录,自动定位并拉取EnMicroMsg.db。如果你想要更稳妥的手动方式,也可以直接用 adb 或文件管理器到/data/data/com.tencent.mm/MicroMsg/${userid}/EnMicroMsg.db把文件拷贝出来。

第二步:给加密的"日记本"找钥匙

数据库拿到手了,但它是一本上了锁的日记——EnMicroMsg.db默认使用 SQLCipher 加密,直接读取只会得到乱码。项目刻意不提供解密方法,而是让你用 SQLCipher 等第三方工具完成这一步,解密后得到一个名为EnMicroMsg.db.decoded的明文数据库,这才是后续所有操作的基础。

这一步相当于给加密日记本配钥匙,是整个流程里技术含量最高的一环。解密成功后,你可以先用一条命令验证成果,把手机里所有聊天对话列出来看看:

./list-chats.py EnMicroMsg.db.decoded

看到一长串联系人和群聊名称,就说明解析已经成功,钥匙配对了。

第三步:把头像、图片、语音资源一网打尽

光有数据库还不够,微信的图片、语音、头像文件都存在独立的资源目录里,包括avataremojiimage2sfsvideovoice2六个子目录。这些文件也要从手机里搬到电脑上,统一放进项目的resource目录。

推荐的做法是先打包再传输,避免逐个文件拷贝浪费大量时间:

./android-interact.sh res

脚本会自动尝试用busybox tar压缩后传输,速度远快于逐文件 pull;如果手机上目录结构有差异,改一下脚本里的RES_DIR即可。最终你要得到一个包含上述六个子目录的resource文件夹,缺一不可。

第四步:一行命令生成属于自己的聊天网页

材料和工具都齐了,现在到了最有成就感的时刻——把某个联系人(比如刚才提到的家人)的全部聊天记录渲染成网页:

./dump-html.py "联系人显示名称"

执行完毕,当前目录会多出一个output.html,用浏览器打开就能像翻阅聊天软件一样回顾所有记录。项目自带的screenshots/byvoid.jpg展示了实际导出效果:左侧是对方头像和带时长显示的语音消息,右侧绿色气泡里是文字与图片,时间戳清晰分隔不同时段,画面和真实微信界面几乎一致。

上图是 wechat-dump 实际生成的聊天记录 HTML 页面,包含头像、文字气泡、图片和语音消息,离线也能完整浏览。

如果你只想导出某段时间的对话,dump-html.py还支持--start参数按起始时间过滤,比如只保留 2024 年之后的内容,非常实用。

第五步:让语音消息"开口说话"

很多人以为语音消息导出后就废了,其实 wechat-dump 能把它们转成通用音频格式。微信语音原始格式是 SILK(老版本是 AMR),普通播放器不认,好在项目third-party/silk/目录内置了完整解码源码,先编译一下:

./third-party/compile_silk.sh

再配合系统安装 sox 命令行工具,wechat/audio.py会自动完成 SILK → 原始 PCM → MP3 的转换,并把语音时长一并解析出来,最终嵌进 HTML 里直接可播。整个转换过程对使用者完全透明,你只需要确保编译成功、sox 可用即可。

第六步:破解 WXGF 图片格式的两条路

图片和表情是聊天记录的重头戏,但微信把图片存储为专有的 WXGF/WXAM 格式,普通浏览器无法显示。wechat-dump 提供了两条解码路线,你根据环境二选一:

路线 A:本机 ffmpeg 解码。如果电脑装了 ffmpeg 和 ffprobe,wechat/wxgf.py会优先尝试本地解码——先探测图片是否以wxgf魔数开头,再从中提取 HEVC 码流,单帧转 PNG、多帧转 GIF,质量和兼容性都有保障。这是最省事的方案,什么都不用配置。

路线 B:安卓解码服务器。没有 ffmpeg 的环境,可以编译并安装项目附带的 WXGFDecoder 安卓应用(源码在WXGFDecoder/目录),在手机上点一下"Start Server",然后给导出命令加上服务器地址:

./dump-html.py "联系人显示名称" --wxgf-server ws://192.168.1.5:8000

手机上的解码服务器收到请求后,会逐个把 WXGF 图片解码回传,电脑端再写入本地缓存(.dec文件),下次直接命中缓存,不用重复解码。

上图是 WXGFDecoder 安卓应用界面,显示服务器启动状态与连接信息,手机与电脑处于同一局域网即可作为 WXGF 图片解码服务器使用。

表情包的处理逻辑也在这条线路上:wechat/emoji.py会先在本地resource/emoji里按 MD5 查找,找不到再依据数据库中的 CDN 地址联网下载,必要时用 AES 解密,全程自动缓存,省心省力。

第七步:让历史数据"开口说话"

聊天记录导出了,还能干点更有意思的事——数据分析。项目自带几个统计脚本,帮你从对话中挖掘规律:

# 统计每个对话的文本消息条数、字符数、单词数 ./count-message.sh output_dir # 按时间分布绘制消息数量图表 ./plot-num-msg-by-time.py

前者可以帮你直观看到"我和谁聊得最多",后者能分析出你的消息高峰时段,比如深夜 11 点最活跃、周末消息量暴涨,数据里藏着你的社交作息。如果你想导出所有对话的纯文本,dump-msg.py也能一步到位,输出的 txt 文件方便导入其他分析工具。

进阶:批量导出、表情缓存与自定义外观

走完全流程后,还有几个能显著提升体验的小技巧:

  • 批量导出多个联系人dump-html.py一次只处理一个对话,写个简单的 for 循环脚本就能循环导出所有人,输出文件名用--output参数分别指定即可。
  • 预置表情缓存:首次导出时大量表情需要联网下载,很拖时间。可以提前下载项目提供的emoji.cache.tar.bz2表情缓存包并解压到项目根目录,渲染时直接从缓存读取,速度肉眼可见地变快。
  • 自定义网页外观:所有 HTML 模板都放在wechat/static/目录下,TP_MSG.html管文字消息、TP_IMG.html管图片、TP_VIDEO_FILE.html管视频、wx.css管全局样式。想改气泡配色、调整头像布局,直接编辑这些文件再重新运行导出命令即可。

把回忆握在自己手里

回到开头的场景:那位用户最终把和家人的全部聊天记录导出成了 HTML,拷进 U 盘、存进网盘,从此再也不怕换手机。微信聊天记录导出这件事,门槛没有想象中高——root 手机、解密数据库、拉取资源、跑一条命令,四步走完,你就拥有了一份完全属于自己、永久可读的聊天档案。现在就去克隆 wechat-dump,趁数据还在,把你的聊天历史变成可以随时翻开的数字相册吧。

【免费下载链接】wechat-dumpAnalyzing your wechat message history from android项目地址: https://gitcode.com/gh_mirrors/we/wechat-dump

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/17 17:42:45

乌鲁木齐播音主持专业学校分享

引言在当今信息时代,播音与主持专业不仅承载着文化传播的重任,也是连接公众与世界的桥梁。对于那些渴望成为这一领域佼佼者的学生来说,选择一所能够提供全面教育并重视实践能力培养的学校至关重要。本文将深入探讨【乌鲁木齐播音主持技工学校…

作者头像 李华
网站建设 2026/8/17 17:42:35

3分钟告别提取码困扰:baidupankey网盘提取码查询工具全解析

3分钟告别提取码困扰:baidupankey网盘提取码查询工具全解析 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是不是也有过这样的瞬间:好不容…

作者头像 李华
网站建设 2026/8/17 17:40:35

AI安全左移四层架构:从设计评审到渗透测试的全自动闭环

用四层递进架构把安全嵌入 SDLC 每一步,90% 的安全活动 $0 成本,10% 的付费渗透精准打击高风险面。首次落地 12 个问题归零,4 次渗透测试总成本 $2833。 目录 前言 一、为什么需要"安全左移" 二、四层架构全景 三、第一层:设计评审($0) 四、第二层:代码扫描(…

作者头像 李华
网站建设 2026/8/17 17:37:36

动画版本标识解析与龙珠Z制作流程揭秘

1. 项目背景与核心价值"dragonballz_e189-1"这个看似随机的字符串组合,实际上蕴含着丰富的文化密码。作为资深动漫从业者,我第一眼就识别出这是《龙珠Z》第189集的某种特定版本标识。这种命名方式常见于动画作品的原始制作素材、海外发行版本或…

作者头像 李华