Apple Notes Liberator:把 Apple Notes 里的笔记搬出来

文章目录

Apple Notes Liberator:把 Apple Notes 里的笔记搬出来

Apple Notes Liberator 在 GitHub 上已经拿到 1,017 Star 了。

这个项目就做一件事,把你锁在 Notes.app 里的笔记数据导出来,变成能编辑、能迁移的 Markdown 和 JSON。

1、为什么要做这个工具

苹果的 Notes.app 用起来顺手,但数据被锁在系统沙盒里,导出走官方路径很麻烦。普通用户想换 Notion、Obsidian 之类笔记软件的时候,迁移这一关就卡住了。

作者做这个工具的动机很直接,一是解决自己拿数据的需求,二是借这个项目熟悉 Quarkus 框架。

底层解析工作站在 threeplanetssoftware 的 apple_cloud_notes_parser 肩膀上做的,protobuf 定义和 Notes 数据结构的资料都来自那个项目。

2、它能做什么

程序运行起来之后会去找本机的 Notes 数据库,复制一份过来再解析,不会动你原始的数据库。如果路径找不到,会提示你用 -f 参数手动指定 sqlite 文件位置。

输出方向有两个,JSON 和 Markdown,至少要指定一个,不然程序只打印帮助信息就退出。

跑完之后会在当前目录生成一个 liberated-notes 文件夹,里面包括:

  • notes.json:所有笔记的 JSON 表达
  • markdown/:每条笔记一个 md 文件
  • 内嵌文件副本:从笔记数据里抽出来的图片、附件
  • notes.sqlite:原始 sqlite 数据库的拷贝

3、怎么用

最顺手的安装方式是 JBang。装好 JBang 之后一行命令搞定:

复制代码
jbang app install apple-notes-liberator@hamburgchimps

第一次跑会让你选择信任源,选 2 就行,以后自动跑最新版本。装完之后 apple-notes-liberator --help 看用法。

不用 JBang 也可以。有 Nix 的话进 nix-shell 拿一个隔离的 Java 19 环境。再不行就直接从 releases 页面下 jar 包,本地有 Java 就能 java -jar apple-notes-liberator.jar 跑起来。

4、几个使用细节

macOS 10.13 之后 Notes 数据库被沙盒保护起来,第三方终端比如 iTerm 要去「隐私与安全性 → 完全磁盘访问权限」里勾上,不然会报读不到的错误。

调试的时候可以开日志:

复制代码
QUARKUS_PROFILE=debug apple-notes-liberator

或者在 jar 模式下加 JVM 参数 -Dquarkus.profile=debug,跑完会在 liberated-notes 目录里留下 apple-notes-liberator.log

JSON 输出里每条笔记有 titlefoldertextembeddedObjectslinks 五个字段。嵌入式对象分 TABLEFILE 两种,TABLE 直接给出二维数组结构,FILE 给出文件名,对应的文件能在输出目录里找到。

5、适合哪些人

  • 想从 Apple Notes 迁出去换其他笔记软件的人
  • 需要把笔记数据接进 RAG 流程做向量化的开发者
  • 想给自己做笔记备份和归档的 Mac 用户

项目本身只读不写,原始数据库安全,可以放心跑。

AG 流程做向量化的开发者

  • 想给自己做笔记备份和归档的 Mac 用户

项目本身只读不写,原始数据库安全,可以放心跑。

相关推荐
龙仔72517 分钟前
人大金仓 KingbaseES V8 只读账号创建完整运维笔记
运维·笔记·sql·人大金仓
韭菜炒鸡肝天21 分钟前
VTK开发笔记(一):VTK介绍,Qt..+VSx+VTK.编译
开发语言·笔记·qt
2601_962101832 小时前
侧挂灯箱常见光衰眩光问题诊断:亮欣技术优化方案与效果验证
其他
峥无3 小时前
C++11 深度详解:现代 C++ 基石全梳理
开发语言·c++·笔记
阿米亚波3 小时前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl
早睡早起身体好1235 小时前
为什么 Network 中会出现两个同名请求?——CORS 预检请求学习笔记
网络·笔记·学习·网络安全
EFD8888885 小时前
中央糕点烘焙冷却车间通风选型,易互德耐湿热布风管保障糕点成品品相
其他
@Mike@6 小时前
06-数据库学习笔记(存储模型与数据压缩)
数据库·笔记·学习
不在逃避q7 小时前
Golang笔记之Redis
redis·笔记·golang
wdfk_prog7 小时前
嵌入式面试真题学习笔记系列
笔记·学习·面试