一个用于批量导出 ChatGPT 对话记录的工具,支持个人空间、团队空间与项目空间的对话导出,可导出为 JSON 或 Markdown 格式。
- 📦 批量导出所有对话记录
- ✅ 支持选择特定对话导出(搜索/筛选/勾选)
- 🏢 支持个人空间和团队空间(Team Workspace)
- 📁 支持项目空间对话导出(按项目分组)
- 📄 支持 JSON 和 Markdown 两种导出格式
- 🔄 自动清理引用标记,保持内容整洁
- ⏰ 支持定时提醒导出(Chrome 扩展)
- 🎯 智能文件命名(标题 + 对话 ID)
- ⚡️ 优化大量对话的加载性能
- 🗓️ 支持按创建时间/更新时间的日期范围筛选
本项目提供两种使用方式,可根据需求选择:
Chrome 扩展提供更完整的功能,包括定时自动提醒、弹窗界面等。
- 下载 Release 中的
ChatGPT-Exporter.zip到本地 - 打开 Chrome 浏览器,进入
chrome://extensions/ - 开启右上角的"开发者模式"
- 点击"加载已解压的扩展程序"
- 选择项目中的
chrome-extension文件夹 - 安装完成后,扩展图标会出现在工具栏
手动导出:
- 访问 ChatGPT 网站后,在弹窗中选择导出选项
- 可选择“导出全部”或“选择对话导出”(支持搜索/筛选/日期范围)
设置定时:
- 点击扩展图标,进入设置页面
- 配置定时提醒计划(每日、每周等)
- 启用后将在指定时间自动提醒导出
如果不想安装扩展,可以使用 Tampermonkey 脚本,功能相对简化但同样实用。
- 安装 Tampermonkey 浏览器扩展
- 点击上方安装链接
- 在弹出的页面中点击 "安装" 即可
- 安装 Tampermonkey 浏览器扩展
- 打开
Tampermonkey.js文件 - 复制全部内容
- 点击 Tampermonkey 图标 → "添加新脚本"
- 粘贴代码并保存
- 访问 ChatGPT 网站,脚本会自动运行
- 访问 ChatGPT 后,页面右下角会出现 "Export Conversations" 按钮
- 点击按钮,选择导出模式:
- 个人空间:导出个人对话
- 团队空间:导出团队工作区对话(需选择具体工作区)
- 选择导出方式(导出全部 / 选择对话导出)
- 确认后开始批量下载
相关文件:
Tampermonkey.js- 完整的用户脚本
脚本会自动捕获 ChatGPT 的 Access Token 和 Device ID,用于 API 调用认证。
- 遍历对话的消息树结构(
mapping) - 过滤系统消息和隐藏消息
- 清理引用标记(如
cite标签) - 按时间顺序整理用户和助手的对话
生成格式:对话标题_对话ID短码.json/md
- 自动清理文件名中的非法字符
- 使用对话 ID 后缀避免重名
- 未命名对话使用 "Untitled Conversation"
JSON 格式: 完整的对话数据结构,包含所有元数据和消息树。
Markdown 格式:
# User
用户的问题内容
# Assistant
助手的回复内容- Manifest V3:使用最新的扩展规范
- Background Service Worker:处理定时任务和消息传递
- Content Scripts:注入页面脚本,与 ChatGPT 交互
- Popup & Options:提供用户界面
inject-exporter.js注入exporter.user.js到页面上下文auto-export.js通过postMessage与注入脚本通信- Background 脚本通过
chrome.runtime.sendMessage触发导出
/api/auth/session- 获取 Access Token/backend-api/conversations- 获取对话列表/backend-api/conversation/{id}- 获取对话详情/backend-api/gizmos/snorlax/sidebar- 获取项目空间列表(含项目会话预览)/backend-api/gizmos/{id}/conversations- 获取项目空间内的对话列表
- 登录状态:使用前需要登录 ChatGPT
- 网络请求:导出过程会发起大量 API 请求,请耐心等待
- 浏览器限制:批量下载可能触发浏览器的下载提示
- 团队空间:需要有相应工作区的访问权限
- Token 有效期:如果导出失败,尝试刷新页面重新获取 Token
Q: 导出时提示"无法获取 Access Token"?
A: 刷新 ChatGPT 页面,或打开任意一个对话后再试。
Q: 团队空间导出失败?
A: 确认你有该工作区的访问权限,并且已正确选择工作区 ID。
Q: 导出的 Markdown 文件内容不完整?
A: 脚本会自动过滤系统消息和隐藏消息,只保留用户和助手的可见对话。
Q: 可以导出特定时间段的对话吗?
A: 支持按创建时间/更新时间的日期范围筛选,可在“选择对话导出”中设置日期区间。
本项目核心逻辑基于 ChatGPT Universal Exporter (v8.2.0) 开发。
原作者: Alex Mercer, Hanashiro, WenDavid
在此基础上,本项目进行了以下增强与封装:
- 新增格式支持:在原有 JSON 导出功能的基础上,增加了 Markdown (.md) 格式的导出支持,方便在笔记软件中直接查看。
- Chrome 扩展封装:将用户脚本封装为标准的 Chrome 浏览器扩展,提供了独立的配置弹窗和后台运行能力。
- 选择对话导出:新增“选择对话导出”功能,支持搜索/筛选/勾选需要的对话,并导出为 ZIP 文件。
本项目仅供学习和个人使用,请遵守 OpenAI 的服务条款。
欢迎提交 Issue 和 Pull Request 来改进这个项目。