全网最完善的小米笔记导出/同步方案:支持文件夹分类、录音/图片完美下载、Obsidian 格式深度适配。(新增GUI~~~)
Created by Ning (willingning-coder)
v1.0.0 (2025-12-26)
- 初始版本发布
- 支持智能 Cookie 获取
- 支持配置记忆功能
- 支持实时日志显示
- 支持多线程同步
🚀 251229 v1.1.0: - 修复 HTML 标签清洗不彻底导致“垃圾信息”残留的问题。 - 新增文件系统时间戳同步 (os.utime),让文件修改时间回归笔记真实时间。 - 新增指数退避重试机制 (Exponential Backoff),彻底解决“无法获取详情”的网络波动报错。
🚀 251230 v1.3.0: - 新增: 文件名命名规则可配置(可选是否添加日期前缀)。 - 修复: 强制去除 Cookie 中的换行符,解决 Invalid header value 报错。 - 优化: 标题生成前优先清洗 CSS 垃圾词,防止文件名污染。
市面上的导出脚本大多存在录音无法下载、排版混乱或丢失文件夹结构的问题。本项目通过逆向分析小米最新 API,实现了:
- 🎧 录音完美修复:独家算法解决“长 ID”录音无法下载的问题(自动识别
note_img接口中的音频文件)。 - ⚡ 极速增量同步:智能比对本地文件,只下载新增或修改的笔记,秒级完成同步。
- 📂 完美还原目录:自动读取小米笔记的文件夹结构,并在本地建立对应的文件夹分类归档。
- 🧹 深度文本清洗:自动剔除 XML 垃圾代码(如
<text indent="1">),还原纯净 Markdown。 - 🔗 Obsidian 友好:生成的图片/录音链接采用
![[assets/xxx]]标准格式,开箱即用。
- 点击"🚀 打开浏览器获取 Cookie"按钮
- 自动打开小米笔记网页版
- 后台监听剪贴板,自动识别并填入 Cookie
- 支持手动停止监听
- 自动保存 Cookie 和保存路径到
config.json - 下次启动时自动加载上次的配置
- 支持手动保存配置
- 同步过程中的所有日志实时显示在界面中
- 带时间戳的日志记录
- 支持清空日志功能
- 同步任务在后台线程运行,界面不会卡死
- 支持停止同步操作
- 进度条显示同步状态
- 点击"🚀 打开浏览器获取 Cookie"按钮
- 在打开的浏览器中登录小米笔记
- 按 F12 打开开发者工具
- 切换到 Network 标签页
- 刷新页面,点击任意请求
- 复制请求头中的 Cookie
- 程序会自动识别并填入 Cookie
- 在"保存路径"输入框中设置笔记保存位置
- 或点击"浏览..."按钮选择文件夹
- 默认路径:
当前目录/Data/Notes
- 确保 Cookie 已正确填入
- 确认保存路径设置正确
- 点击"🚀 开始同步"按钮
- 观察日志输出和进度条
- 等待同步完成
- Cookie 输入框:显示当前 Cookie,默认以密码形式隐藏
- 获取 Cookie 按钮:智能获取 Cookie 的核心功能
- 状态标签:显示 Cookie 获取状态
- 路径输入框:显示当前保存路径
- 浏览按钮:打开文件夹选择对话框
- 开始同步:启动同步任务
- 停止同步:停止当前同步(仅更新界面状态)
- 保存配置:手动保存当前配置
- 进度文本:显示当前同步状态
- 进度条:动态显示同步进度
- 日志文本框:显示详细的运行日志
- 清空日志按钮:清除所有日志内容
程序会通过以下规则自动识别小米 Cookie:
- 长度超过 50 字符
- 包含
serviceToken字段 - 包含其他小米相关字段(userId, deviceId 等)
- 符合 Cookie 格式(包含多个键值对和分号)
{
"cookie": "你的小米Cookie",
"path": "笔记保存路径"
}- Cookie 验证失败提示
- 路径创建失败处理
- 网络请求错误捕获
- 同步过程异常处理
tkinter:Python 标准库,用于 GUI 界面pyperclip:剪贴板操作库
ttkbootstrap:现代化主题库(如果没有安装,会自动使用标准 ttk)
pip install pyperclip
pip install ttkbootstrap # 可选,用于更好的界面主题- Cookie 安全:Cookie 包含敏感信息,请妥善保管
- 网络环境:确保网络连接正常,能够访问小米云服务
- 磁盘空间:确保保存路径有足够的磁盘空间
- 权限问题:确保程序有权限创建文件夹和写入文件
- 检查是否正确登录小米笔记
- 确认复制的 Cookie 格式正确
- 尝试手动粘贴 Cookie
- 检查 Cookie 是否过期
- 确认网络连接正常
- 查看日志中的错误信息
- 程序已使用多线程,正常情况下不会卡死
- 如果出现问题,请关闭程序重新启动
📄 许可证 MIT License © 2025 Ning