Anki API 的局限,以及没有官方 API 时如何自动化制卡
Anki 没有官方公开 API。本文介绍它实际提供的方案(AnkiConnect、genanki、AnkiWeb)、每种方案在哪里会卡住,以及如何绕开 Anki 的限制实现自动化制卡。
如果你搜索过 anki api,大概已经发现了问题所在:Anki 并没有官方文档化的公开 API。它拥有的是一堆拼凑起来的社区工具,每个只解决自动化的一部分问题,也各有各的失效方式。本文讲清楚到底有什么真实可用、每种方案在哪里会卡住,以及一条更干净的自动化路径长什么样。
Anki 提供的替代方案(而不是 API)
AnkiConnect
AnkiConnect 是一个第三方插件,在 Anki 桌面版运行时对外暴露一个本地 HTTP API(默认:http://localhost:8765)。它支持创建笔记、查询牌组、触发同步等操作。
好用的地方: 本地自动化脚本、n8n/Zapier 式的本地工作流、用 Python 脚本以编程方式制卡。
会出问题的地方:
-
Anki 桌面版必须开着并保持运行。没有后台守护进程,也没有无头模式。
-
插件在 Anki 版本更新后就会失效,往往要等维护者打补丁。
-
不能远程访问。你无法从服务器、CI 流水线或移动 App 里调用它。
-
没有官方支持。一旦它不工作了,你调试的是别人的代码。
genanki(Python)
genanki 是一个 Python 库,用于生成 .apkg 文件,也就是 Anki 导入牌组所用的打包格式。你写 Python 代码,生成 apkg,然后手动导入,或通过 AnkiConnect 导入。
好用的地方: 从结构化数据源(CSV、API、数据库)以编程方式生成牌组。适合一次性或批量导入。
会出问题的地方:
-
导入仍然是手工步骤,除非你把它和 AnkiConnect 搭配使用。
-
没有双向同步。你可以把卡片推进去,但若不借助 AnkiConnect,就无法把排程状态读回来。
-
它不是 Anki 核心团队维护的,作为第三方库有自己的兼容性范围。
AnkiWeb(没有 API)
AnkiWeb 是 Anki 的同步服务器。AnkiWeb 没有公开 API。你无法从外部工具以编程方式读写 AnkiWeb。任何自动化都必须经过桌面版应用。
根本性的限制
每一条 Anki 自动化路径都受制于同一个根源约束:桌面版应用才是权威的数据存储。没有可以调用的云原生后端。这意味着:
-
自动化需要一个运行中的桌面实例
-
移动端工作流无法自动化
-
服务端或基于 CI 的制卡无法可靠实现
-
链条上任何一个第三方工具都可能因 Anki 更新而失效
如果是跑在自己机器上、Anki 开着时执行个人脚本,这还能用。但对团队工作流、AI 辅助的生成流水线,或者移动优先的学习方式来说,这就是实打实的限制。
更干净的自动化路径:Deckbase MCP
如果你想自动化制卡,尤其是从 AI 工具、代码编辑器或文档流水线里制卡,Deckbase 提供了真正的 HTTP MCP 端点(opens in a new tab),不需要运行桌面应用。
实际意义是:
-
随时随地调用: Cursor、VS Code、Claude Code、n8n,或者你自己的脚本,都不需要本地守护进程
-
卡片立即同步到手机: 在编辑器里创建,在手机上复习
-
无需维护插件: API 是产品的一部分,由官方维护,而不是社区插件
-
内置 AI 生成: 从文本、PDF 或文档生成卡片,无需另外搭建流水线
想了解学习自动化中 MCP 与直接 API 两种方式的对比,见 学习自动化:MCP 与 API 怎么选(opens in a new tab)。
什么时候该继续用 AnkiConnect
以下情况,AnkiConnect 仍然是合适的工具:
-
你已有的 Python/自动化配置本来就能跑通
-
你只需要在自己机器上本地运行自动化
-
你不介意跨 Anki 版本维护插件兼容性
-
你需要 Anki 特有的功能(自定义笔记类型、媒体处理、特定的排程算法)
如果以上条件有不成立的,尤其是当你想要远程自动化、移动同步或 AI 辅助生成时,AnkiConnect 加必须开桌面版这套模式就会带来摩擦。
小结
Anki 的“API”其实是三个社区工具(AnkiConnect、genanki、AnkiWeb 同步)缝合起来的产物,每一个都依赖 Anki 桌面版。这对本地个人自动化够用,但无法扩展到服务端、移动端或 AI 辅助的工作流。如果你需要一个真正的 HTTP API 来制卡并同步到手机,像 Deckbase 这样的 Anki 替代方案(opens in a new tab)值得评估,尤其是当你使用的 AI 编程工具可以通过 MCP 连接时。
把这样的文章变成闪卡
粘贴链接、PDF 或笔记,Deckbase 会自动生成卡组,并用 FSRS 安排复习。