DeepSeek 对话记录一键导出:零依赖 Tampermonkey 脚本(支持 JSON/Markdown/ZIP)

DeepSeek 对话记录一键导出:零依赖 Tampermonkey 脚本(支持 JSON/Markdown/ZIP) 把chat.deepseek.com上你自己账号的对话历史一键导出为 JSON / Markdown / ZIP,零外联、零持久化、纯本地运行,开箱即用的 Tampermonkey 单文件脚本。背景DeepSeek 网页版的「历史对话」只能在浏览器里滚动查看,没有官方导出按钮。一旦账号异常、被风控、或者网页改版,这些对话就再也找不回来了。更现实的问题是:很多人会把 DeepSeek 当成第二大脑——长文写作、技术方案、学习笔记、代码片段——但这些内容的唯一副本只存在云端。这种状态对长期使用 AI 的人来说,既不安心也不可持续。于是就有了这个脚本。目标很朴素:能拿回自己的数据——只读 API,只动自己的账号跑在本地——不上传任何第三方服务器,Token 仅存在内存零依赖——单文件 JS,不需要 Python / Node / 浏览器扩展之外的任何东西格式可选——JSON 留底、Markdown 给人和 LLM 读、ZIP 打包分门别类核心特性维度说明零外联所有请求走页面原生fetch(自动带 Cookie),不引入任何第三方服务零持久化Bearer Token 只存在内存里,关 tab 即失不绕 PoW只调用只读接口(/users/current·/chat_session/fetch_page·/chat/history_messages)礼貌限速每 5 个会话停 800ms,防止触发风控进度实时右下角浮窗 模态面板,单调递增进度条多格式导出JSON 完整结构 / Markdown 易读排版(保留思考过程、工具调用)/ 每会话独立 ZIP 打包全量拉取用 keyset cursor 翻到底,20000 会话硬上限⚡单会话秒出从 URL 拿当前会话 ID,跳过列表查询,适合测试测试 ZIP前 5 个会话打包,几秒出结果,验证格式无误再跑全量路由自适应监听 SPA 路由变化,按钮自动启用 / 禁用快速开始第 1 步:安装 Tampermonkey浏览器扩展商店搜索Tampermonkey(Chrome · Edge · Firefox 都支持)。第 2 步:安装脚本打开 GitHub 仓库根目录的deepseek-exporter.user.js→ 全选复制 → Tampermonkey 控制面板「实用工具」→「从剪贴板导入」。或者直接 Tampermonkey 新建一个脚本,把文件内容粘贴保存即可。第 3 步:启动导出打开 https://chat.deepseek.com/在左栏点开1~2 个对话(让浏览器发出带Authorization头的 fetch,脚本会被动捕获 Token)点击右下角 浮窗 → 选你要的格式 → 等待下载首次推荐流程:打开任一对话 → 点⚡ 当前 Markdown→ 几秒后下载 → 打开看字段是否识别正确 → 验证 OK 再跑全量。使用说明浮窗面板上一共 8 个按钮,按范围 × 格式两两组合,没有学习成本:按钮范围格式用途全量合并 1 个 JSON全量JSON把所有会话合并到单文件,结构最完整全量合并 1 个 Markdown全量Markdown所有会话合并到单文件,人类可读 全量逐个 ZIP (JSON)全量ZIP每会话独立.jsonmanifest.json打包 全量逐个 ZIP (Markdown)全量ZIP每会话独立.mdmanifest.json打包⚡ 当前 1 个 JSON当前会话JSON跳过列表查询,秒出结果⚡ 当前 1 个 Markdown当前会话Markdown同上,Markdown 格式 测试 ZIP (前 5 个 JSON)前 5ZIP几秒出结果,验证 ZIP 格式 测试 ZIP (前 5 个 MD)前 5ZIP同上,Markdown 格式ZIP 文件结构解压deepseek-all-YYYYMMDD-HHMM-per-session.zip后:deepseek-all-20260707-1300-per-session.zip ├── manifest.json ← 导出元信息(用户、时间、范围) ├── 001-标题1--fa5d16f5.md ├── 002-标题2--35313c17.md └── ...文件名规则:编号-标题消毒后--会话ID前8位.{json|md},可以直接拖进任何笔记软件。工作原理整体架构非常薄,总共四步:┌────────────┐ ① hook fetch ┌──────────────────┐ │ 页面原生 │ ◀────────────────── │ Tampermonkey │ │ fetch │ ── 捕获 Bearer ────▶│ 脚本 │ └─────┬──────┘ └────────┬─────────┘ │ │ │ ② 用捕获的 Token 调只读 API │ ▼ │ ┌──────────────────────────────────┐ │ │ chat.deepseek.com/api/v0/* │ │ │ - /users/current │ │ │ - /chat_session/fetch_page │ │ │ - /chat/history_messages │ │ └────────┬─────────────────────────┘ │ │ │ │ ③ 返回 JSON │ ▼ ▼ ┌──────────────────┐ ┌──────────────────────┐ │ 内存组装数据 │ ──────▶ │ GM_download / a │ │ 生成 ZIP / MD │ │ 触发浏览器下载 │ └──────────────────┘ └──────────────────────┘几个值得一提的实现细节Token 捕获:unsafeWindow.fetch钩子 XMLHttpRequest.setRequestHeader兜底,从Authorization: Bearer ...被动取出 Token。不弹窗、不要求用户复制粘贴,打开对话就自动捕获。会话分页:用上一页最后一项(pinned, updated_at, id)作 keyset cursor 构造下一页请求,5 个独立终止条件:// (a) 本页 page_size ─── 已经是最后一页 // (b) bz.has_more false ─── 服务器明确告诉结束 // (c) 全部重复 (added0) ─── 游标失效自保 // (d) 页数 200 ─── 20000 兜底,防止死循环 // (e) limit 0 out.length limit ─── 测试模式到顶就停ZIP 打包:内联STORE-only zip 写入器 CRC32,零依赖,不引入 JSZip。设置 General Purpose Bit Flag 的 EFS 位(bit 11)标记文件名 UTF-8,WinRAR / Windows Explorer / macOS Archive Utility 全部按 UTF-8 解析,中文不乱码。下载兼容:Blob →data:URL →GM_download,失败回退到原生a download,两边都试过才认输。超时控制:每次 API 调用 15s AbortController 超时 console 探针,卡死时能在控制台看到[DS-Exporter] → / ✓ / ✗日志,定位到具体哪个接口、哪条消息。安全与合规⚠️本工具仅用于备份你自己账号的数据。任何滥用——批量抓取他人账号、绕过 DeepSeek 鉴权、向第三方分发抓取的数据——都违反 DeepSeek ToS 与《数据安全法》第 21/27 条,与作者无关。数据流承诺✅ Token 仅在内存存在,永远不会写入localStorage/ IndexedDB / Cookie✅ 脚本仅在chat.deepseek.com上激活(match强制)✅ 不发起任何跨域请求,所有外发流量都是发回chat.deepseek.com的只读接口✅ 开源 MIT,代码可审计已知 schema 不稳⚠️ DeepSeek 的/api/v0/*接口目前没有公开稳定性承诺。如果 schema 改了,脚本会失效。提 issue 时附上控制台的[DS-Exporter] → / ✓ / ✗日志,方便定位。已知限制20000 会话数硬上限(超过会被分页护栏截断,继续翻页可能拿到重复数据)上传文件只导出file_info,原始文件二进制需要单独走/file/fetch_uploaded_fileshistory_messages全量回带(cacheControl: REPLACE),不支持断点续传;网络中断需重新开始限速影响大账号:单次导出 5 个会话后停 800ms,5000 会话会跑数分钟ZIP 是 STORE-only(不压缩),体积比 7z / zip 压缩模式大约 2-3 倍;如需压缩可用 WinRAR / 7-Zip 二次处理写在最后这个脚本的核心思路其实是**借用浏览器自己的 fetch**——既不用破解鉴权,也用不到任何第三方服务,只在内存里临时组装一下数据,然后交给GM_download触发下载。所有逻辑加起来不到 1100 行 JS,绝大多数都是 UI 进度条和错误处理。如果你也是 DeepSeek 重度用户,强烈建议现在就导出一次,放进自己的笔记库或者 Git 私有仓。别等到账号异常、网页改版、或者哪天 DeepSeek 改了 ToS 再后悔。仓库地址:https://github.com/YiShan-X/deepseek-exporter · MIT License · 欢迎提 Issue 和 PR。