微信聊天记录导出与归档的完整指南:wechat-dump 从零到生成精美HTML 微信聊天记录导出与归档的完整指南wechat-dump 从零到生成精美HTML【免费下载链接】wechat-dumpAnalyzing your wechat message history from android项目地址: https://gitcode.com/gh_mirrors/we/wechat-dump想重温那些已经换过三次手机的旧对话却发现自己连一张聊天截图都没留下微信始终没有开放官方导出接口想要把聊天记录变成可搜索、可长期保存的数字档案一直是不少人的心结。开源项目 wechat-dump 正是为解决这一痛点而生它能从已 root 的安卓手机上解析微信消息数据库把文字、图片、语音、表情、视频统一渲染成一份可离线浏览的 HTML 文件让你真正拥有属于自己的聊天记录归档。为什么我们需要一个聊天档案馆大多数人对聊天记录的诉求其实很简单怕丢想查想回味。但微信的数据壁垒让这三点都很难实现——聊天记录换机迁移靠官方备份云端同步看缘分而把记录导出成自己能控制的格式这个需求官方从未正面回应过。wechat-dump 的思路非常直接数据库在我自己的手机上我为什么不能读它于是它做了三件事解析读取微信的EnMicroMsg.db数据库还原每条消息的类型、发送方、时间戳和内容还原把分散在avatar、emoji、image2、voice2等目录里的资源与消息一一对应渲染用模板把整段对话拼装成自包含的 HTML所有图片、CSS、JS 全部内嵌断网也能打开。换句话说它把微信从封闭的应用变成了可分析的数据源这是它最核心的价值。动手前的准备清单需要什么环境正式开工前先确认你手头有这几样东西缺一不可需求项说明已 root 的安卓手机需要读取/data/data/com.tencent.mm下的私有目录adb 工具通过 USB 连接电脑与手机Python 3.8运行解析与渲染脚本sox 命令行工具把 AMR/SILK 语音转成可播放的 MP3ffmpeg可选用于在电脑本地解码 WXGF 专有图片格式依赖安装很简单克隆仓库后执行pip install -r requirements.txt即可。需要注意本工具不包含数据库解密功能EnMicroMsg.db默认是加密的你需要先用其他手段如 SQLCipher将其解密成明文数据库再交给 wechat-dump 处理。克隆仓库命令如下git clone https://gitcode.com/gh_mirrors/we/wechat-dump快速上手四步拿到第一份聊天记录第一步把数据库和资源文件搬回电脑微信的用户数据都存放在/data/data/com.tencent.mm/MicroMsg/{userid}/下其中的{userid}是一串 32 位十六进制字符的目录名。需要拷贝的内容分两部分数据库EnMicroMsg.db先解密再使用资源目录avatar、emoji、image2、sfs、video、voice2这几个子目录拷入本地项目的resource目录。项目提供了自动化脚本./android-interact.sh可以帮你省去手动敲 adb 命令的麻烦如果目录结构和脚本默认值不一致改脚本里的RES_DIR变量即可。资源文件往往体积不小建议先在手机上用busybox tar打包再传输——安卓自带的 tar 处理长路径时容易报错这是老玩家都知道的坑。第二步看看自己到底有多少个聊天数据库解密后先用list-chats.py确认里面有哪些联系人顺便核对解析是否成功./list-chats.py decoded.db输出会列出所有聊天对象及其对应的 chatid方便你确认目标对话的显示名称。第三步把单个联系人导出成 HTML确认名称后一条命令即可生成网页版聊天记录./dump-html.py 联系人名称默认生成output.html也支持--output指定输出路径、--start只导出某时间点之后的消息。如果对话太长脚本还会自动把结果拆分成多个连续的 HTML 文件避免单个文件过大影响浏览器性能。第四步顺手做一次全量文本备份如果想对所有聊天做一份纯文本快照用dump-msg.py即可它会按联系人为单位输出 TXT 文件方便后续做关键词检索或数据分析./dump-msg.py decoded.db output_dir核心机制拆解wechat-dump 是怎么读懂微信的消息类型全覆盖微信消息在数据库里以数字类型编码wechat/msg.py中定义了几十种文字1、图片3、语音34、视频43、表情47、链接49、引用回复822083633、微信转账419430449……渲染器按类型分发到不同模板未知类型会被统计并跳过保证整个导出过程不中断。语音消息的三明治转换微信语音使用 AMR 或 SILK 编码浏览器无法直接播放。wechat-dump 的做法分两步先用项目自带的 Silk 解码器third-party/silk需运行./third-party/compile_silk.sh编译把 SILK 转成 PCM再用 sox 转成 MP3 并嵌入页面最终你看到的是带播放器、带时长的语音气泡。WXGF 专有图片格式的两种解码路线微信的表情和部分图片是自研的 WXGF/WXAM 容器格式本质是包了一层 HEVC 视频流直接塞进 HTML 是打不开的。项目为此准备了两套方案本地 ffmpeg 解码如果电脑装了 ffmpeg/ffprobe脚本会提取 HEVC 裸流并转成 PNG单帧或 GIF多帧动画优先走这条路最省事安卓解码服务器没有 ffmpeg 时可以安装项目附带的 WXGF Decoder 安卓应用让手机充当解码服务端电脑通过 WebSocket 把图片数据发给它收回来再嵌入页面。WXGF Decoder 的使用方法很直白安装后设置端口默认 8080点击 Start Server再把地址以--wxgf-server ws://手机IP:端口的形式传给导出命令即可。注意手机和电脑要处于同一局域网。进阶玩法让导出这件事更快、更省预置表情缓存跳过重复下载微信表情动辄上百个首次渲染时逐个请求会很慢。项目官方发布过预打包的表情缓存文件解压到项目目录后渲染时会优先命中本地缓存大量减少网络请求wget -c https://github.com/ppwwyyxx/wechat-dump/releases/download/0.1/emoji.cache.tar.bz2 tar xf emoji.cache.tar.bz2批量导出多个联系人写一个几行的 shell 循环就能把重要联系人一次性全部导出配合--output参数让每个对话独立成文件归档时也更好管理。自定义页面样式所有渲染模板都集中在wechat/static/目录下TP_MSG.html管文字、TP_IMG.html管图片、TP_SPEAK.html管语音、TP_VIDEO_FILE.html管视频wx.css是全局样式表。想改气泡颜色、头像圆角、时间戳样式改完模板后重新跑一次dump-html.py即可不需要碰任何解析逻辑。做点简单的聊天统计配合脚本还能快速得到一些有意思的数据count-message.sh统计各对话的消息量plot-num-msg-by-time.py可以按时间画出消息分布图。想分析我俩到底什么时候最聊得来这些工具就是现成的起点。避坑指南常见问题与应对数据库解密卡住——这是新手遇到最多的坎。wechat-dump 不参与解密环节你需要先在外部完成这一步注意解密后得到的是明文 SQLite 文件别再把加密文件传给脚本。WXGF 图片无法显示——先检查 ffmpeg 是否安装、是否在 PATH 中如果走安卓解码路线确认两台设备在同一 Wi-Fi、端口放通且 APK 为 ARMv8 架构原生库依赖所致非 ARM 设备跑不起来。表情显示为占位符——个别表情的下载地址可能因微信版本更新而失效属于已知限制。可以手动补图或接受占位符存在。资源目录路径不对——老版本微信的资源可能不在/data/data/下而在/mnt/sdcard/tencent/MicroMsg/记得根据手机上的实际情况调整。写在最后让数据回到自己手里wechat-dump 的定位很纯粹它是一个数据搬运工把微信锁在私有格式里的聊天记录搬回到你完全可控的普通文件中。无论是为了永久保存、深度检索还是做个人数据统计它都提供了一个足够专业又足够开放的起点。项目仍在持续演进官方 README 中的 TODO 清单也公开了若干待完善项——如果你愿意甚至可以参与进来让这个聊天档案馆变得更好用。【免费下载链接】wechat-dumpAnalyzing your wechat message history from android项目地址: https://gitcode.com/gh_mirrors/we/wechat-dump创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考