Zhihu Favorites Sync

approved

by gaofeng

将知乎收藏夹中的回答和文章同步为 Obsidian Markdown 笔记。 - This plugin has not been manually reviewed by Obsidian staff.

1 stars35 downloadsUpdated 25d agoMIT

Obsidian 知乎收藏同步

将一个知乎收藏夹中的回答和文章全文导入 Obsidian,保存为带 YAML 元数据的 Markdown 文件。插件会先读取收藏夹列表,再逐条请求内容详情,避免把列表摘要误存为正文。支持分页、重复同步、正文图片本地化和失败条目隔离。

知乎的新内容 ID 可能超过 JavaScript 的安全整数范围。插件使用大整数安全解析并始终以字符串保存 ID,避免 ID 末尾被四舍五入后请求到不存在的内容。

安装

npm install
npm run build

然后把以下文件复制到 Vault 的 .obsidian/plugins/zhihu-favorites-sync/

  • main.js
  • manifest.json
  • versions.json

重启 Obsidian,在“设置 → 第三方插件”中启用“知乎收藏同步”。也可以使用 BRAT 或符号链接进行开发安装。

配置与使用

  1. 在知乎打开目标收藏夹,从网址 https://www.zhihu.com/collection/123456789 取得收藏夹 ID。
  2. 在插件设置中点击“扫码登录”,使用知乎 App 扫码并在手机上确认。也可以在浏览器开发者工具中手动复制 Cookie。
  3. 在 Obsidian 的插件设置中填写收藏夹 ID;扫码成功后 Cookie 会自动保存。
  4. 点击左侧下载图标,或从命令面板运行“同步知乎收藏夹”。

Cookie 属于敏感登录信息,只应保存在自己的设备上,不要提交或分享插件目录中的 data.json

扫码登录会打开一个隔离的知乎官方登录窗口,由知乎网页处理二维码、验证码和登录风控。插件只读取该窗口在本机建立的知乎 Cookie,不会读取其他网站或日常浏览器中的 Cookie;手动 Cookie 登录仍可作为备用方式。

文件规则

笔记名包含稳定的知乎类型和 ID,例如:

为什么…… [zhihu-answer-123456789].md

因此同一条内容不会重复创建。若标题在知乎发生变化,旧文件名不会被自动重命名;这是为了避免破坏 Obsidian 内部链接。

AI 自动分类

在插件设置中开启“AI 自动分类”,填写 OpenAI API Key,并按需要编辑可选分类。同步时插件会根据标题、作者和全文选择一个分类,生成标签和摘要,然后保存为:

知乎收藏/<AI 分类>/<笔记>.md

分类结果会写入 YAML 的 ai_categoryai_summarytags。默认会复用已有分类,避免重复调用 API;需要重新整理时可开启“每次同步重新分类”。API Key 仅保存在当前 Vault 的插件 data.json 中,不要提交或分享该文件。

内置服务商预设:

服务商协议默认 Base URL默认模型
DeepSeekOpenAI 兼容https://api.deepseek.comdeepseek-v4-flash
MiniMaxOpenAI 兼容https://api.minimaxi.com/v1MiniMax-M2.7
OpenAIOpenAI 兼容https://api.openai.com/v1gpt-5.6-luna
AnthropicAnthropic Messageshttps://api.anthropic.comclaude-sonnet-5

也可以选择“自定义”,配置任意 OpenAI Chat Completions 或 Anthropic Messages 兼容服务的 Base URL 和模型名。

限制

  • 知乎没有为此用途提供稳定的公开 API,网页接口变化后可能需要更新插件。
  • Cookie 会过期,出现 401/403 时请重新复制。
  • 仅支持 Obsidian 桌面端;移动端不会加载此插件。
  • 当前重点支持回答和专栏文章,其他收藏内容会尽力按接口返回内容导入。

开发

npm run dev

main.js 会在源码变化时自动重新构建。

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.