youdaonote-pull 指南:把有道云笔记全部备份成本地 Markdown

📅 2026/8/27 16:00:35
youdaonote-pull 指南:把有道云笔记全部备份成本地 Markdown
youdaonote-pull 指南把有道云笔记全部备份成本地 Markdown【免费下载链接】youdaonote-pull 一个一键导出 / 备份「有道云笔记」所有笔记的 Python 脚本。 A Python script to export/backup all the notes of the Youdao Note.项目地址: https://gitcode.com/gh_mirrors/yo/youdaonote-pull有道云笔记早已移除「批量导出」入口想把笔记迁走只能一条条复制。youdaonote-pull 是一个 Python 脚本用来一键完成有道云笔记备份它把账号下所有笔记下载到本地默认转成可读的 Markdown图片也一并落地。无论你是 Python 小白还是只想把笔记搬一次家的人只要会填几行配置就能用起来。为什么要备份官方批量导出去哪了先说三个真实处境官方入口消失了有道云笔记的新版 Mac 客户端和网页版都去掉了「导出所有笔记」功能开放 API 则多年不更新甚至没有 Markdown 文件的接口。图片留不住笔记里的图托管在有道自有图床上链接离开有道环境就失效只拷正文会得到一堆裂图。数据锁在云端笔记只存在云上的话账号一有异常就很难找回。youdaonote-pull 的做法很直接不依赖官方导出而是模拟网页版的请求行为把服务器返回的内容存到本地文件夹。全程本地运行账号凭证和笔记内容都不出你的电脑。功能速览它能做什么全量备份递归下载账号内所有笔记保留原有目录结构格式转换笔记文件下载下来是专有的 XML 或 JSON脚本默认自动转成 Markdown文件名统一为.md后缀图片本地化笔记中的图片下载到本地youdaonote-images文件夹也可选填 SM.MS 图床 Token 上传让图片在外部站点可访问增量导出重复运行时只拉取新增或修改过的笔记本地已改过的文件不会被覆盖指定目录导出可以只导某个顶层文件夹不必全量下载快速上手三步完成首次 Markdown 导出第一步拿代码、装依赖。克隆项目后安装 requirements.txt 里的 4 个依赖requests、markdownify 等建议用虚拟环境git clone https://gitcode.com/gh_mirrors/yo/youdaonote-pull.git cd youdaonote-pull python -m venv venv pip install -r requirements.txt第二步准备登录态文件cookies.json做法见下一节。第三步改配置并运行。项目根目录的config.json只有 4 个字段{ local_dir: D:/notes, ydnote_dir: , smms_secret_token: , is_relative_path: true }保存后执行python pull.pymacOS/Linux 用python3 pull.py。跑完终端会打印耗时日志里每个文件都会标注「新增 / 更新 / 跳过」方便你核对结果。如何配置登录 Cookies最容易卡住的一步为什么不接受账号密码登录因为有道给登录加了图形验证码脚本无法自动通过。策略是复用浏览器里现成的登录态在浏览器登录有道云笔记打开开发者工具F12在 Network 面板找请求头里的Cookie挑出YNOTE_CSTK、YNOTE_LOGIN、YNOTE_SESS三项按[名称, 值, .note.youdao.com, /]的格式填入cookies.json其中YNOTE_CSTK还会被接口当作校验参数使用不能为空。两点提醒别把cookies.json提交到代码仓库如果脚本报「Cookies 可能已过期」重新抓一次即可。原理白话版一条三层流水线入口文件 pull.py 只是「指挥」真正干活的是 core 目录下的三层层文件职责取数层core/api.py用 requests.Session 维持登录态封装「拿根目录」「列目录文件」「下载文件内容」三个接口转换层core/covert.py按元素遍历 XML/JSON 笔记把标题、列表、代码块、表格、图片一一映射成 Markdown 语法图片层core/image.py在正文中找出有道图床链接替换成本地路径或图床链接整体流程是递归的从根目录 ID 出发逐层列出目录内容遇到子目录继续递归遇到笔记则「下载 → 转格式 → 换图片链接」。老笔记2017 年前的 HTML 格式会被识别出来自动处理不用你操心。「增量」的实现也不神秘云端每个文件带修改时间脚本拿它和本地文件的修改时间比较——云端更新就下载覆盖否则跳过下载成功后还会把本地文件时间戳同步成云端时间保证下次比较准确。配置项与常见坑config.json全字段说明字段必填说明local_dir否本地存放路径用绝对路径不填则存到当前目录下的youdaonote文件夹ydnote_dir否只导该顶层文件夹不填则全量导出smms_secret_token否SM.MS 的 Token不填则图片只存本地MD 里用本地链接is_relative_path否true 时 MD 中的图片/附件用相对路径false 用绝对路径容易踩的坑编码问题config.json必须是 UTF-8 的合法 JSON用记事本乱改编码后脚本会直接报格式错误两边同时改文件云端和本地不要同时编辑同一篇笔记否则本地修改可能被云端版本覆盖接口限频大批量跑可能触发限流出现代理或连接报错时等一会儿重跑即可依赖安装失败个别系统装依赖报错时可换 Python 3.11.7 再试进阶方向扩展格式与双向同步对 Python 稍有把握后有三个自然的扩展点新输出格式转换层是「一类元素对应一个转换方法」的写法想导出 HTML 或纯文本照着现有方法加一组即可双向同步项目最初其实计划过配套的 push 脚本可以监控本地文件变化、调用网页版接口把笔记推回云端并设计冲突处理策略定时备份ydnote_dir加上系统任务计划Windows 任务计划程序或 cron让某个文件夹定期增量备份等于一个低成本的笔记自动同步方案写在最后youdaonote-pull 的思路不复杂找接口、Cookies 登录、递归目录、转格式、换图片、比修改时间。它更值得借鉴的是一种把「平台锁住的数据」搬回自己手中的工具思路。建议你先用真实账号完整跑一遍打开几篇转换后的 Markdown 检查排版效果哪篇不满意就翻 core/covert.py 里对应的转换方法那是读懂整个项目的最好入口。【免费下载链接】youdaonote-pull 一个一键导出 / 备份「有道云笔记」所有笔记的 Python 脚本。 A Python script to export/backup all the notes of the Youdao Note.项目地址: https://gitcode.com/gh_mirrors/yo/youdaonote-pull创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考