三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

微信聊天记录永久保存方案:WeChatExporter开源导出工具完整上手指南(含避坑清单)

微信聊天记录永久保存方案:WeChatExporter开源导出工具完整上手指南(含避坑清单)

微信聊天记录永久保存方案:WeChatExporter开源导出工具完整上手指南(含避坑清单)

【免费下载链接】WeChatExporter一个可以快速导出、查看你的微信聊天记录的工具项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter

你有没有想过一个问题:微信十年不提供官方导出功能,我们的聊天记录到底还算不算"自己的数据"?手机一换、系统一崩、账号一出问题,成百上千条对话就可能再也找不回来。今天要聊的 WeChatExporter,就是一款免费开源的微信聊天记录导出工具,它不越狱、不折腾,能把 iPhone 里的文字、语音、图片、视频全部搬回电脑,并且导出的记录可以在本地 HTML 页面里随时翻阅。这篇文章会带你走一遍完整的微信聊天记录备份流程,从数据提取、工具安装到导出查看,每一步都配有可复现的操作说明,遇到报错也有对应的自查清单。

先回答三个关键问题:它能做什么、适合谁、有什么限制

在动手之前,把预期管理做好,后面才不会踩坑。

它能做什么

  • 无需越狱手机,即可读取 iPhone 备份中的微信数据
  • 完整解析并导出文字、图片、语音、视频、小视频、动画表情、分享链接、位置、名片、语音/视频通话、系统消息等类型
  • 语音消息自动转码为通用格式,可在任何播放器里打开
  • 导出的记录以本地网页形式呈现,离线也能看

它适合谁

  • 想给家庭群聊、恋爱记录做永久备份的个人用户
  • 需要归档客户沟通、项目记录的商务人士
  • 需要留存聊天证据、做内容研究的专业用户

它目前的限制

  • 数据来源目前仅支持 iOS 系统;安卓机可以先把聊天记录迁移到 iPad 再导出
  • 官方适配的运行环境是 macOS;Windows 与安卓虽"能用但没适配",需自行折腾
  • 部分特殊消息类型只做占位显示(如"分享链接""位置"),不展开正文

一句话总结:这是一款"能用、免费、可扩展"的微信备份工具,适合愿意花半小时搞定本地归档的普通用户。

第一站:从 iPhone 到电脑,把微信数据"搬"出来

工具本身不碰手机,它读取的是你电脑上已有的微信数据文件。所以第一步是把数据导出来,整个过程可以看作一条流水线。

1. 用 iTunes 做一次不加密的整机备份

把 iPhone 连上 Mac,打开 iTunes,选择"立即备份"。这里有一个必须注意的红线:不要勾选"加密本地备份"。一旦加密,后面的工具将无法读取数据文件,这是新手最常踩的第一个坑。

2. 用 iMazing 提取微信的 Documents 文件夹

iTunes 的备份是整机级别的,而 WeChatExporter 只需要微信那一部分。此时用 iMazing 这类第三方工具,在备份中定位微信应用,把它的 Documents 文件夹完整导出到电脑上,存到哪都行,记住路径即可。

![用iMazing从iTunes备份中导出微信Documents文件夹](https://raw.gitcode.com/gh_mirrors/wec/WeChatExporter/raw/976c9474db687bb592d4a623edb0ec42ee831a18/imgs/for readme/backup2.png?utm_source=gitcode_repo_files)

3. 认识一下你手上的"原材料"

导出完成后,Documents 文件夹内部大致长这样:里面有几个 32 位 MD5 命名的子文件夹,对应这台手机上登录过的不同微信账号;每个账号目录下又包含 DB、Audio、Img、Video 等子目录,分别存放数据库和各类媒体文件。其中DB/MM.sqlite就是聊天记录的"总账本",工具的核心工作就是解析它。

第二站:装环境、跑项目,15 分钟内让工具站起来

先备齐两样运行环境

WeChatExporter 基于 Node.js 开发,运行在 NW.js(node-webkit)桌面容器里,所以两样都要装:

组件作用版本建议
Node.js项目运行与依赖管理8.11.3 或 10.16.3
NW.js桌面应用运行环境0.32.1 或 0.40.1

版本号不是随便写的——它们和预编译的 SQLite 模块严格对应,后面会用到。

拉取项目并安装依赖

git clone https://gitcode.com/gh_mirrors/wec/WeChatExporter cd WeChatExporter/development npm install

跳过编译地狱:直接用预编译模块

项目里的 SQLite3 需要针对 NW.js 重新编译,过程相当折磨人(要装 Xcode、配 node-gyp、指定 Python 2.7 路径……)。懒人福音来了:项目仓库的development/framework/目录下已经放好了编译好的node_sqlite3.node文件,两个版本二选一:

  • node-webkit-v0.32.1-darwin-x64对应 nodejs 8.11.3 + nwjs 0.32.1
  • node-webkit-v0.40.1-darwin-x64对应 nodejs 10.16.3 + nwjs 0.40.1

把对应版本的文件夹整个拷贝到node_modules/sqlite3/lib/binding/目录下即可,一步到位。

启动工具

npm start

或者手动指定 NW.js 可执行文件:

/path/to/nw/nwjs.app/Contents/MacOS/nwjs .

看到界面弹出来,说明环境这块已经通关了。

第三站:三步完成一次完整的聊天记录导出

工具的主流程分两段:先"解析并导出数据",再"直接查看聊天内容"。按下面这个顺序操作,一次就能跑通。

第 1 步:选择微信账号和聊天对象

进入界面后点击"开始原始数据分析",选择之前导出的 Documents 文件夹。左上角会列出这台手机上登录过的所有微信账号(以 MD5 命名),点选任意一个,左下角立刻出现与你聊过天的联系人列表。

小细节:列表默认只显示聊天消息总数超过 100 条的联系人或群聊,冷门的对话会被自动隐藏,界面更清爽。

![微信聊天记录导出工具主界面,左侧选择账号与联系人,右侧预览聊天内容](https://raw.gitcode.com/gh_mirrors/wec/WeChatExporter/raw/976c9474db687bb592d4a623edb0ec42ee831a18/imgs/for readme/soft1.png?utm_source=gitcode_repo_files)

第 2 步:确认目标并配置导出参数

点击左下角任意聊天对象,右侧会实时预览最近 10 条记录,帮你确认"没选错人"。确认无误后,右上角会出现"某某与某某的聊天记录"红色提示,点击进入下一步。

在导出设置页里需要填两项:

  • 数据导出目录:导出的文件放哪里
  • 日期区间:只导出某段时间的聊天;不填则导出全部

点击"开始生成数据",工具会逐条处理消息:图片原图与缩略图分开归档、语音调用 silk 解码器转成 mp3、视频与缩略图也一并搬运。处理完成后,指定目录下会生成一个完整的 output 文件夹,此后 Documents 目录就没用了,可以删除。

第 3 步:回到主页,开始翻阅导出的聊天记录

回到工具主页,选择"显示聊天记录",填入刚才的 output 目录,一份完整的聊天记录就在眼前了:文字、语音(带播放条)、图片、视频一应俱全,界面模拟真实的聊天窗口,还支持点击图片放大查看。

![导出的微信聊天记录查看界面,支持语音播放与图片查看](https://raw.gitcode.com/gh_mirrors/wec/WeChatExporter/raw/976c9474db687bb592d4a623edb0ec42ee831a18/imgs/for readme/soft3.png?utm_source=gitcode_repo_files)

之后再想查看,直接进入"显示聊天记录"页面即可,不需要重新解析。

它能导出的消息类型一览

整理成表格,方便你对照自己的需求:

消息类型导出表现
文字消息完整保留,可显示 QQ 表情
图片消息原图 + 缩略图,点击可放大
语音消息自动转码为 mp3,网页内直接播放
视频/小视频保留 mp4 原文件,支持内嵌播放
动画表情占位显示
分享链接占位显示
位置/名片占位显示
语音/视频通话占位显示
系统消息占位显示(如撤回提示)

诚实地说,占位类型目前不展开正文,这是项目作者在 README 里也坦承的"不完善之处",但这并不影响核心的文字、图片、语音、视频备份价值。

避坑清单:导出报错自查手册

遇到问题先别慌,按下面的清单逐项排查,多数问题都能自己解决。

Q1:报错里出现 xcodebuild / Xcode 字样说明你要走源码编译路线,而系统没装 Xcode。装好后在终端执行sudo xcodebuild -license,按空格翻完协议后输入agree,再回到编译步骤。当然,最省事的是直接用预编译文件绕开编译。

Q2:提示无法读取备份文件九成是 iTunes 备份被加密了。重新做一次不勾选"加密本地备份"的备份,再走一遍流程。

Q3:导出过程卡住或界面无响应

  • 检查磁盘剩余空间是否充足(语音转码和图片搬运都很吃空间)
  • 关掉其他占用内存的程序
  • 重启工具,换个输出目录再试

Q4:导出的语音播不了先确认 output 目录下的audio文件夹里有没有生成 mp3 文件;再检查 silk 解码器相关文件是否完整(converter.shffmpegsilk/decodersilk/libSKP_SILK_SDK.a四件套缺一不可)。

Q5:其他疑难杂症软件右上角【工具】→【导出运行日志】,会导出系统版本、Node 版本、NW.js 版本、sqlite3 绑定目录等信息——最常见的病因就是"版本不符"。把日志内容连同问题描述一起贴到项目 issue 区,开发者回复 PR 和问题都很及时。

进阶玩法:让备份变成习惯,而不是一次性的心血来潮

从手动到自动:写一个简单的备份脚本

把"备份"变成定时任务,才是真正意义上的数据保护。思路很简单:写一个 shell 脚本,固定好数据源和输出目录,每次运行自动完成"执行导出 → 验证结果 → 压缩归档"三步,再挂到 cron 定时执行(比如每周日凌晨 3 点)。具体脚本逻辑可根据自己的目录结构微调,核心就一句话:让机器替你记得备份这件事

备份策略参考

用户类型频率建议存储建议
个人用户每季度一次本地硬盘 + 网盘同步
商务用户每周增量 + 每月全量加密硬盘 + 定期归档
专业用户每日增量 + 每周全量多重加密 + 离线存储

隐私底线

所有数据都在本地处理,但请务必遵守三条原则:

  1. 只备份自己的聊天记录,不碰他人数据
  2. 用加密容器存放备份文件
  3. 遵循"3-2-1"原则:3 份副本、2 种介质、1 份离线

聊聊它的技术底子:为什么这么轻快

WeChatExporter 的架构很"古典"但很扎实:

  • 前端:AngularJS + Bootstrap + UI-Router,负责界面交互与路由
  • 后端:Node.js + Express,处理文件系统操作与数据解析
  • 数据库:SQLite3,直接读取微信的 MM.sqlite 并重建为新的 data.sqlite
  • 桌面容器:NW.js(node-webkit),让 Web 技术栈跑成桌面应用
  • 构建工具:Grunt + nw-builder,负责打包分发

因为完全开源,你可以按需改造:模板在development/templates/、控制器在development/js/、样式在development/css/。想加新消息类型、适配 Windows、支持导出 HTML 静态包,都有现成的扩展点。

写在最后:备份不是选项,是责任

微信聊天记录里藏着的,是家人的叮嘱、朋友的玩笑、工作上的重要决策,以及那些再也无法复制的瞬间。WeChatExporter 的价值不在于功能多么炫酷,而在于它把"导出聊天记录"这件官方一直没做的事,用免费开源的方式交还到了用户手里。

花半小时按本文走一遍流程,你就拥有了一份永不丢失的数字记忆副本。动手之前,再帮你把整个流程浓缩成一句话:不加密的 iTunes 备份 → iMazing 取出 Documents → 装好 Node.js 与 NW.js → 跑起工具解析导出 → 在本地网页里慢慢回味。

如果你对项目本身感兴趣,想查看源码细节、完整 README 文档,或参与功能改进,项目仓库位于development/目录,官方说明文档就在仓库根目录的 README.md 中,随时可以翻阅。

重要提醒:请仅将本工具用于个人合法数据的备份,尊重他人隐私,切勿尝试导出他人聊天记录。定期备份,让每一段对话都能穿越时间。

【免费下载链接】WeChatExporter一个可以快速导出、查看你的微信聊天记录的工具项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter

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

← 返回列表