把豆包 / DeepSeek / Kimi / 千问 / 讯飞星火 / 腾讯元宝 / 纳米 AI 的完整对话一键导出,图片一并下载到本地并正确链接到正文。
纯本地处理 · 不依赖任何在线服务 · 对话内容不出你的浏览器。
在网页里复制对话,只会拿到屏幕上看得见的那些字。这个脚本在页面请求返回数据的那一刻就把原始结构抄下来 —— 所以你能拿到接口里的完整原文:思考过程、时间戳、全部轮次,还有页面根本没渲染出来的内容。
装上之后页面上会出现一组悬浮按钮,点一下导出一个 zip:
| 文件 | 内容 |
|---|---|
对话.md |
排版好的 Markdown,可直接丢进 Obsidian / Typora |
对话.json |
平台接口的原始数据,信息最全,适合二次处理 |
images/ |
所有图片已下载到本地,Markdown 里是相对路径(换电脑也不会丢图) |
files/ |
PDF / Word / Excel 等非图片附件 |
| 平台 | 匹配域名 | 状态 |
|---|---|---|
| 豆包 | *.doubao.com |
✅ |
| DeepSeek | chat.deepseek.com |
✅ |
| Kimi | *.kimi.com |
✅ |
| 千问 | qianwen.com / *.qianwen.com |
✅ 2026-10-12 新增 |
| 通义千问(旧域名) | *.tongyi.com |
✅ 保留兼容 |
| 讯飞星火 | *.xfyun.cn |
✅ |
| 腾讯元宝 | yuanbao.tencent.com |
✅ |
| 纳米 AI | bot.n.cn |
✅ |
阿里已于 2026-03 将「通义千问」品牌统一为「千问」,主域名迁到
qianwen.com(旧域名仍在但已非主站)。本脚本同时匹配两个域名。
ai-chat-exporter-plus.user.js 整份内容粘进去 → 保存(或直接导入该文件)。页面右侧中部会出现悬浮按钮组(2 秒后折叠成小圆点 ↓↓↓,鼠标移上去展开,可拖动位置)。
| 按钮 | 行为 | 滚动页面 |
|---|---|---|
| ⬆️ 回到顶部·加载历史 | 只加载更早的历史分页,不导出 | ✅ |
| ⬇️ 全量拉取并导出(主) | 加载历史 → 全量渲染 → 收图 / 附件 → 导出 zip(文件名带 _全量) |
✅(30 分钟内已拉取过则跳过) |
| 📄 仅 MD | 只出 Markdown 文本 | ❌ |
| 🗂️ 仅 JSON | 只出原始 JSON | ❌ |
| 🧪 批量导出 | 弹面板列出所有对话,勾选任意个逐个全量导出(串行,每会话约半分钟到 1 分钟,需保持页面在前台;顶部进度栏实时显示,全部完成后自动汇总成功/失败) | ✅ |
对话很长时,先点「⬆️ 加载历史」把更早的轮次拉下来,否则导出的只有最近几屏。
images/ 相对路径,zip 内含对应图片文件image_001、image_002… 顺序命名,按响应 Content-Type 修正扩展名/obj/、logo、icon、avatar 一律跳过)tos- 对象路径相同)收敛为一张;同键下会话 JSON 的原图 URL 覆盖 DOM 渲染 URL(反向不降级)files/ 目录(file_00N_原名),不再只计数_全量@require / @connect / @resource / GM_xmlhttpRequest排查缺图时把脚本内 ENABLE_DIAGNOSTICS 改回 true 再导出,zip 内附 _diagnostics.json:页面全部 <img> / <canvas>、图库现状、每条消息的块类型与提取结果。
| 问题 | 答案 |
|---|---|
| 会把对话内容传到外部吗? | 不会。 没有任何 GM_xmlhttpRequest 调用,不访问任何第三方服务。 |
| 会读我的 Cookie 吗? | 不主动读,只用页面自身请求的响应。 |
| 会修改平台数据吗? | 不会,全程只读。 |
| 会多发请求给平台吗? | 不主动发。点「加载历史」时脚本滚动页面,触发平台自己的分页请求。 |
| 数据存在哪? | 只在你自己的浏览器内存 / 导出到本地文件。 |
⚠️ 上游原版的 Word 导出依赖第三方在线转换服务(
api.any2card.com),会把对话内容发出去。本版已移除该功能 —— 全部导出在本地完成,涉密内容可放心使用。
<canvas> 无直链,当前只报告不取(读像素受污染限制,脆弱)get_video_share_info 的 play_info.main)虽是成品直链,但历史回包字段名无公开佐证,待实机样本openspeech.bytedance.com/api/v3/tts)→ 属「平台不提供」而非「未覆盖」data-fn-args / 旧版 content_v2(JSON 字符串)→ creation_block.creations[].image_ori_raw(限图片);rich_media_layout_block 键名本地/全网均 0 命中,待实测signed_path 拼 URLQ:按钮是灰色的,点了提示"没有发现有效的对话记录"? 脚本还没拦截到数据。刷新页面重新进对话,或随便发一句话触发一次请求。
Q:点「加载历史」提示找不到可滚动区域? 确认已打开具体对话且内容超过一屏。个别平台改版后容器识别可能失效,可退回手动向上滚动(分页合并照样生效)。
Q:导出的 zip 里图片打不开?
images/ 里的图来自各平台 CDN,常见格式都能直接看。少数 webp 系统不支持时用浏览器打开另存即可。
Q:导出的图片少了?
开启上面的「图片取证」再导出一次,看 _diagnostics.json 里记录的页面 <img> 总数与实际下载数差在哪。
Q:换了一个对话,导出的还是上一个对话的内容? 脚本按会话标识自动清空累积池,正常不会发生。若遇到,刷新页面即可。
Q:平台改版后某个平台导出异常? 各平台接口字段偶尔变动。导出 JSON 文件即可看到原始数据结构,据此可快速修正对应平台的解析逻辑。
本脚本基于以下两个开源作品改造,原作者版权声明保留:
AI对话导出 word/json/md — 作者 春秋_CQ(GreasyFork 542188,v2025.9.25-1)@run-at document-start、CSP 沙箱下 unsafeWindow 挂钩兜底问题反馈请提 issue:https://github.com/GDORT/ai-chat-exporter-plus/issues
MIT