微信聊天记录导出终极指南:wechat-dump 让你把整段回忆打包成网页

发布时间:2026/8/17 18:59:42
微信聊天记录导出终极指南:wechat-dump 让你把整段回忆打包成网页 微信聊天记录导出终极指南wechat-dump 让你把整段回忆打包成网页【免费下载链接】wechat-dumpAnalyzing your wechat message history from android项目地址: https://gitcode.com/gh_mirrors/we/wechat-dump你有没有过这种时刻——换了新手机几千条聊天记录跟着旧设备一起沉睡想写点什么回忆录却翻不动微信里那又长又乱的时间线或者单纯想统计一下和某个人到底聊了多少句却发现微信压根没给你留任何出口。微信是目前国内用户量最大的即时通讯软件但它从诞生起就把导出聊天记录这扇门焊死了。于是很多人选择放弃觉得自己的数据注定被锁在那一台手机里。其实不然一个开源工具 wechat-dump 就能完成微信聊天记录导出它直接读取安卓端微信的数据库文件把文字、图片、语音、表情全部解析出来最后渲染成一个自包含的 HTML 网页像浏览真实聊天界面一样回看过去。今天这篇指南就从零开始带你把这件事完整跑通。先弄明白它到底替你做了什么在动手之前值得先花两分钟搞清楚这套工具的工作方式免得走弯路。微信的数据并不是一个黑箱。它在你手机里存了两样东西一个是加密的数据库文件EnMicroMsg.db里面是消息文本、联系人、时间戳等结构化信息另一个是资源目录包括avatar头像、image2图片、voice2语音、emoji表情、video视频等文件夹存放实际的媒体文件。wechat-dump 的思路非常朴素把数据库里的消息条目和资源目录里的媒体文件对上号再套用模板渲染成 HTML。整个项目由几个模块分工完成——parser.py负责读数据库render.py负责拼 HTMLres.py负责调度图片语音等资源emoji.py负责表情的匹配与下载。这里有个重要的前提必须说清楚wechat-dump 不负责解密数据库。加密的EnMicroMsg.db需要你先用其他手段解成明文比如用 SQLCipher工具拿到的是解密后的文件。这也是它和许多一键导出商业工具最大的不同——它只做解析与渲染把最敏感的解密环节留给你自己掌控数据始终不经过第三方服务器。出发前的行囊环境与依赖清单工欲善其事必先利其器。我们先把需要的装备列清楚缺一不可一台已 root 的安卓手机且开启了 USB 调试。root 权限是硬性要求因为微信的数据库存放在应用私有目录里普通权限读不到。一台 Linux 或 Mac 电脑Windows 用户需要 WSL 之类的 Bash 环境并装好adb。Python 3.8 及以上版本装完依赖pip install -r requirements.txt。sox命令行工具负责音频处理语音解码还需要编译项目自带的 Silk 解码器执行./third-party/compile_silk.sh即可。ffmpeg可选但强烈建议稍后会讲到它和微信专有图片格式的关系。安装部分也很简单克隆仓库后进入目录装依赖就行git clone https://gitcode.com/gh_mirrors/we/wechat-dump cd wechat-dump pip install -r requirements.txt如果你只是想把聊天记录快速导出为 HTML其实核心依赖就上面这些。接下来的步骤才是真正的重头戏。第一关从手机里取出原料微信的所有数据都藏在/data/data/com.tencent.mm/MicroMsg/目录下。这里会有一个以 32 位十六进制字符命名的文件夹比如2a3b...cdef它就是你的微信账号专属目录里面躺着数据库和全部媒体资源。项目贴心地准备了一个自动脚本android-interact.sh帮你完成两步搬运# 第一步拉取数据库和头像索引 ./android-interact.sh db # 第二步拉取头像、图片、语音、视频等资源到本地 resource 目录 ./android-interact.sh res脚本会自动在设备上寻找那个 32 位的用户名目录然后通过 adb 把东西搬回来。如果你只想手动操作也可以自己找到EnMicroMsg.db拷到电脑上再把avatar、emoji、image2、sfs、video、voice2这几个子目录复制到项目的resource目录下。这里有个实用小技巧资源文件通常有几百 MB直接adb pull又慢又容易失败。脚本内部其实会优先尝试用busybox tar打包成压缩流再传输如果你在手机上不方便跑脚本也可以自己在设备端先打个包adb shell busybox tar -czf /sdcard/resources.tar.gz /data/data/com.tencent.mm/MicroMsg/${userid}/ adb pull /sdcard/resources.tar.gz .搬运完成后记得确认本地resource目录下有avatar、image2、voice2等子目录——缺任何一个对应类型的消息渲染时就会显示不出来。第二关搞定微信的专有图片格式 WXGF数据库解了密、资源也搬回来了但你可能还会遇到一个拦路虎微信自某一版本起图片和表情不再用标准的 JPEG/PNG 存储而是换成了自家定义的WXGF/WXAM 格式。这种格式市面上几乎没有通用解码器直接当成普通图片读必然失败。好消息是 wechat-dump 给出了两条解码路线你任选其一即可路线 A让 ffmpeg 在家干活推荐如果电脑上装了 ffmpeg 和 ffprobe工具会自动尝试本地解码。项目里wxgf.py这个模块专门负责把 WXGF 文件里的 HEVC 视频流抽取出来再交给 ffmpeg 转成可显示的图片。这条路最简单你什么都不用额外配置装上 ffmpeg 即可。路线 B让手机当解码服务器如果你的环境里没有 ffmpeg或者本地解码覆盖率不够可以把安卓手机变成一个解码服务器——这就是项目里 WXGFDecoder 这个安卓应用存在的意义。它从微信 APK 里提取了原生解码库手机上点几下就能开一个 WebSocket 服务电脑端把待解码的图片字节流发过去它把结果回传回来。下图就是 WXGFDecoder 的运行界面你能看到端口配置、启动按钮和实时的解码日志使用方式非常直接手机上打开应用点Start Server记录下地址默认是ws://设备IP:8080然后在导出命令里加一个参数就行。要注意手机和电脑必须处于同一局域网内比如连同一个 Wi-Fi。第三关一条命令把聊天记录变成完整网页原料齐了解码方案定了接下来就是见证成果的时刻。假设你要导出和联系人张三的聊天记录只需要一条命令./dump-html.py 张三命令默认读取当前目录下的EnMicroMsg.db.decoded数据库和resource资源目录执行完会在当前目录生成一个output.html文件用浏览器打开即可。如果要用 WXGF 服务器解码或者想调整输入输出路径可以加上参数./dump-html.py 张三 \ --db 解密后的数据库路径 \ --res resource \ --output zhang_san.html \ --wxgf-server ws://192.168.1.100:8080生成的文件是自包含的——CSS、JS、图片、语音全部内嵌或随文件一起保存拷到任何一台电脑、任何时间打开都能完整还原当时的对话场景。看看下面这张真实导出效果的截图你会立刻明白为什么这个工具值得折腾从截图里能看出几个细节左侧是对应的头像和语音消息带时长显示右侧是绿色气泡包裹的文字和图片时间戳把不同时段自然隔开图片以接近原始质量嵌入页面。整个界面和微信本身的观感高度接近浏览起来毫无陌生感。如果你导出的消息量特别大工具会自动把 HTML 拆分成多个分片文件每片约 1500 条消息文件名类似output00.html、output01.html避免单个文件大到浏览器都打不开。另外它还支持--start参数指定起始时间只导出某段时间之后的记录比如只保留最近半年的对话。第四关把聊天数据玩出更多花样HTML 只是最直观的一种输出形态这个工具真正让人惊喜的是它把数据库解析成了通用接口你可以借此做各种数据分析。先看看自己到底有多少段对话./list-chats.py 解密后的数据库它会列出所有聊天对象的名字和对应的 ID方便你确认联系人名称是否拼写正确。把所有聊天批量导出成纯文本./dump-msg.py 解密后的数据库 output_dir这条命令会把每个联系人的消息单独存成一个.txt文件适合做全文检索、写文章素材收集或者干脆留一份纯文字的备份。统计谁和你聊得最多./count-message.sh output_dir脚本会输出每个联系人的行数、字符数、词数排行——你可以用这个结果验证一下自己回复最多的人到底是谁结果往往出人意料。绘制聊天活跃度曲线./plot-num-msg-by-time.py 解密后的数据库 联系人名它会生成一张消息数量随时间变化的直方图一眼看出你们聊天的高峰期是热恋期每天几百条还是后来逐渐归于平淡。单独导出语音消息为 MP3./dump-audio.py 联系人名语音消息在微信里存储的是 SILK 编码格式电脑播放器普遍不认。项目内置了从微信拆出来的 Silk 解码器配合 sox 可以把每条语音转成通用的 MP3 文件存到指定目录。这意味着你甚至可以永久保存某个重要的人的所有语音留言。避坑指南这些细节决定成败走完整个流程你会发现真正麻烦的不是工具本身而是各种环境差异带来的小坑。我把自己踩过的和替大家排查过的问题整理成几条经验资源目录名字要对上。新版微信的资源在应用私有目录里老版本则可能在/mnt/sdcard/tencent/MicroMsg/下路径不同记得先确认再跑脚本。语音转不出 MP3先确认 Silk 解码器编译成功./third-party/compile_silk.sh是否正常结束再检查 sox 是否已安装。表情显示成占位符部分表情在数据库里只有 md5 没有下载地址工具无法自动补齐。可以预先下载官方提供的表情缓存包解压到项目根目录能显著减少渲染时的网络下载量大幅加快导出速度。联系人名字对不上用list-chats.py先打印一遍所有昵称微信的备注名和显示名可能和你记忆中的不完全一致直接照抄工具输出的名字最稳妥。本地 ffmpeg 解码失败某些 WXGF 变体本地解不了此时果断切换 WXGF Decoder 服务器方案两条路线互补使用效果最佳。如果你还要导出多个联系人可以把上面的命令写成一个简单的循环脚本一个周末的下午就能把整个微信档案全部搬进电脑。把回忆握在自己手里微信没有义务给你的数据开一扇门但你有权利为自己留一把钥匙。wechat-dump 的价值正在于此它让你不用再依赖任何云端服务就能把散落在手机里的聊天记录完整地导出、归档、分析成为真正属于你的数字资产。如果你也想参与这个项目可以从几个方向入手试着在安卓设备上补充 WXGF 解码的覆盖场景修一修那些罕见的消息类型比如系统消息、撤回通知的渲染问题或者优化 HTML 模板让它更符合现代审美。源码目录结构清晰wechat/parser.py、wechat/render.py、wechat/res.py都是不错的阅读起点仓库的 TODO 列表也一直向社区开放。数据是你的回忆是你的。现在就拿起手机把第一段聊天记录变成网页你会发现过去那些舍不得删的对话原来还能以这么体面的方式继续存在。【免费下载链接】wechat-dumpAnalyzing your wechat message history from android项目地址: https://gitcode.com/gh_mirrors/we/wechat-dump创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考