转写文字是完整结果:短语音就是一行;长语音自动换行显示整段,
不会截断、也不会出现省略号(.vp-trans-result 显式声明了 white-space: pre-wrap)
💡 想确认一条语音到底多长:看气泡上的秒数(已修正),或播放时播放器显示的时长。
7. 附录:命令行参考(高级用户)
以下内容适用于熟悉命令行的高级用户。普通用户无需了解此部分,直接双击 exe 使用即可。
7.1 全局选项
wechat_exp.exe --help # 显示所有命令
wechat_exp.exe <命令> --help # 显示特定命令的帮助
# 快速测试模式(无需子命令)
wechat_exp.exe -q # 快速打开聊天查看器
wechat_exp.exe -q -c 联系人 # 快速打开指定聊天
| 选项 |
简写 |
说明 |
--quick |
-q |
快速测试:跳过备份,直接打开聊天查看器(使用已有备份数据) |
--contact |
-c |
配合 --quick,自动打开指定联系人的聊天(支持名称模糊匹配) |
7.2 backup 命令
wechat_exp.exe backup [选项]
选项:
--db-dir PATH 微信 db_storage 目录路径
--output, -o PATH 备份输出目录
--key-file PATH 密钥文件路径(可选,默认自动检测)
--days N 备份最近 N 天 (默认: 30, 0=全部)
--date-from DATE 起始日期 YYYY-MM-DD
--date-to DATE 截止日期 YYYY-MM-DD
--wxid WXID 指定备份的微信账号(多账号时必选)
--link-dest PATH 前一次备份目录,媒体文件优先从该目录硬链接复用(增量备份)
--no-harvest 禁用后台 V2 图片密钥收割
7.3 serve 命令
wechat_exp.exe serve [选项]
选项:
--decrypted-dir PATH 备份数据目录(如已备份则自动检测)
--host HOST 监听地址 (默认: 127.0.0.1)
--port PORT 监听端口 (默认: 5000)
7.4 export 命令
wechat_exp.exe export -m <模式> [选项]
模式:chat / wordcloud / report / employee / list / keys / decrypt
选项:
--chat NAME 指定聊天对象 (wordcloud 模式)
--output, -o PATH 输出路径
--excel PATH 员工 Excel 文件路径 (employee 模式)
--decrypted-dir PATH 备份数据目录
7.5 harvest-keys 命令
wechat_exp.exe harvest-keys [选项]
选项:
--decrypted-dir PATH 备份数据目录
--wxid WXID 微信用户 ID (自动检测)
--interval SECONDS 扫描间隔秒数 (默认: 2.0)
--max-rounds N 最大扫描轮次 (默认: 无限)
7.6 典型工作流(命令行)
# 首次使用:备份 → 收割密钥 → 启动查看
wechat_exp.exe backup --days 30
wechat_exp.exe harvest-keys
wechat_exp.exe serve
# 日常快速查看(跳过备份,直接用已有数据)
wechat_exp.exe -q # 打开聊天查看器
wechat_exp.exe -q -c 张三 # 直接打开张三的聊天
# 仅更新最近一周数据
wechat_exp.exe backup --days 7 --output "backup\latest"
wechat_exp.exe serve --decrypted-dir "backup\latest"
# 每日增量备份(复用前次媒体文件,仅复制新增)
wechat_exp.exe backup --days 0 --wxid 你的wxid --link-dest "E:\wechat_bak\backup\2026-06-01"
# 导出分析报告
wechat_exp.exe export -m wordcloud
wechat_exp.exe export -m report
7.7 从源码运行(开发者)
如果您下载的是源代码版本(而非打包好的 .exe),需要先安装 Python 依赖:
pip install -r requirements.txt
python main.py backup
python main.py serve
源代码版本的使用方式与 .exe 版本完全一致,只需将命令中的 wechat_exp.exe 替换为 python main.py。
7.8 ChatLab 集成(导出 + 远程数据源)
ChatLab 是一款开源的聊天记录分析工具。WeChat EXP 支持两种对接方式:导出 ChatLab 标准格式 与 Pull 远程数据源协议。
普通用户可直接在 Web 界面完成,无需命令行:导出见 3.6 聊天记录导出 的「ChatLab JSONL / JSON」格式,远程数据源见 3.9 Pull 数据源。本节介绍命令行等价操作,适合批量、脚本化场景。
方式一:导出 ChatLab 格式文件
将聊天记录导出为 ChatLab 标准格式(JSONL 或 JSON),然后在 ChatLab 中导入:
# 导出全部会话(JSONL,推荐;支持断点续传)
wechat_exp.exe export -m chatlab
# 只导出名称匹配的会话
wechat_exp.exe export -m chatlab --chat 张三
# 指定输出目录与格式
wechat_exp.exe export -m chatlab --output "E:\chatlab_export" --format jsonl
# 使用 JSON 格式(单文件、便于阅读;不支持断点续传)
wechat_exp.exe export -m chatlab --format json
断点续传(大数据量场景):JSONL 导出按会话分文件,每 50 条落盘一次,并在输出目录维护进度清单 _chatlab_export_state.json。如果导出中途被中断(关机、崩溃、手动停止),重新执行同一条命令即可自动续传——已完成的会话会跳过,未完成的会话从上次的位置继续追加,不会重复或丢失消息。 |
特性 |
说明 |
| 输出粒度 |
每个会话一个 .jsonl(可单独导入,也可批量导入) |
| 落盘策略 |
每 50 条 flush + 每会话完成时更新进度清单 |
| 中断恢复 |
自动截断文件末尾不完整的行,按 (时间戳, 消息ID) 复合游标续传 |
| 去重保障 |
platformMessageId 带分片前缀,会话内全局唯一 |
| JSON 格式 |
写 .partial 完成后原子改名,避免产生无法解析的半截文件 |
在 ChatLab 中:首页 → 导入 → 选择输出目录下的 .jsonl 文件(可多选)。
方式二:Pull 远程数据源(推荐)
WeChat EXP 内置 Pull 协议服务(协议规范),ChatLab 可自动发现会话、全量拉取、增量同步:
# 启动数据源服务(默认 127.0.0.1:8765)
wechat_exp.exe chatlab-pull
# 局域网访问(手机/其他电脑上的 ChatLab 也能连)
wechat_exp.exe chatlab-pull --host 0.0.0.0 --port 8765 --token 你的访问令牌
启动后在 ChatLab 中操作:设置 → 数据源 → 添加远程数据源 → 填入 http://127.0.0.1:8765(如设了 Token 一并填写),即可浏览会话列表、选择导入、点击"立即同步"。 |
端点 |
用途 |
GET /sessions |
发现:会话列表(支持 keyword / limit / cursor 分页) |
GET /sessions/<id>/messages?format=chatlab&since=<ts>&limit=<n> |
拉取:since=0 全量,since>0 增量;sync.hasMore/nextSince 自动续拉 |
GET /push/messages |
SSE 实时通知(可选,用于秒级触发同步) |
GET /health |
健康检查 |
以上端点在根路径与 /api/v1 前缀下都会响应:ChatLab 客户端会把数据源地址规范化为 <地址>/api/v1(其 normalizeBaseUrl() 行为),因此服务同时注册了两套路径,避免出现 Remote server returned HTTP 404。
提示:服务读取的是已解密的备份数据(backup/ 或 output/decrypted),请先执行一次备份。服务默认仅监听本机,如需局域网访问请加 --host 0.0.0.0 并设置 --token。
7.9 手动导入密钥(命令行)
与界面「手动输入密钥」等价,适合脚本化或批量导入:
# 查看各数据库的密钥覆盖情况(不动配置)
wechat_exp.exe import-keys --list
# 直接指定一条密钥(可重复 -k 传多条)
wechat_exp.exe import-keys --key "message_0.db=<64位hex>"
# 从文本文件批量导入(写法与界面一致,每行一条)
wechat_exp.exe import-keys --file keys.txt
# 只校验不保存
wechat_exp.exe import-keys --file keys.txt --dry-run
# 数据库文件不在本机时强制保存(该行必须写明数据库名)
wechat_exp.exe import-keys --key "message_0.db=<64位hex>" --force
输出示例:
微信数据目录: D:\xwechat_files\wxid_xxx\db_storage
数据库 32 个:已就绪 30,缺少密钥 1,密钥不匹配 1
[1] 1a2b3c...f809 -> HMAC 校验通过,匹配 1 个数据库
[2] 3c4d5e...1a2b -> no_match (HMAC 校验未通过:该密钥与本机任何数据库不匹配)
已保存 1 个数据库的密钥到 .wechat_exp_config.json
当前覆盖:已就绪 31/32,缺少 0,校验失败 1
密钥只写进本机的 .wechat_exp_config.json(已在 .gitignore 中),不会上传到任何地方;命令输出中的密钥一律打码显示。