qiaomu-clipper README

The project's README from github.com/joeseesun/qiaomu-clipper. As one markdown file: README.md.

乔木剪藏 · Qiaomu Clipper

中文 | English

别让好文章和好视频,停在「收藏过」。

边读边问 AI,边看视频边记理解,把内容与想法存进 Obsidian。

Read, watch, ask AI, and turn what you learn into Obsidian notes.

安装并体验最新功能 · 看功能截图 · 快捷键 · 反馈问题

视频学习:视频与双语字幕并排,统一顶栏支持复制、下载、剪藏与 AI

license platform install

当前为 Chrome 开发版,尚未上架应用商店。 本页介绍当前 main 的功能;完整体验请按下方步骤从源码安装。不想装 Node.js?可直接下载 1.11.1 预览包(与当前 main 一致);更早的版本(如 1.10.0)没有视频字幕工具栏;B 站视频页的字幕工具栏从 1.11.0 起提供。截图采用实际界面组件与示例数据,视频区域展示封面预览;截图说明。

它解决什么问题

你遇到的痛点 直接这样做 得到什么
收藏一堆文章,还是没读懂 aaa 进入阅读页,划线或选中一段问 AI 干净正文、局部解释,阅读与提问留在同一页
看视频时,播放器和文稿来回切 YouTube / B 站按 aaa,点击字幕时间戳 视频与字幕同屏,回到想复习的那句话
外语字幕看得慢,找一句话又要拖进度条 打开「中文翻译」,搜索字幕关键词 原文、中文、时间戳对照,字幕也能复制和下载
视频里突然有想法,切去记笔记就忘了 按 N 打开小卡片,写下「我的理解」 带来源与时间点的记录追加到今天的 Obsidian 日记¹
每次问 AI 都要重写回答要求 对话设置里保存全局指令、常用提示词 固定语言和回答方式,字体、字号也按你的习惯来
剪藏弹窗太小,整理标题和正文费劲 eee 进入整页编辑器,收起目录腾出空间 属性与 Markdown 并排,编辑完直接剪藏
保存一篇文章总要反复点按钮 qqq 用默认模板剪藏 快速保存到 Obsidian;是否公开分享到 RSS 由开关决定

¹ 写入今天日记需要安装本地助手并启用 Obsidian「日记」核心插件,详见学习笔记。

快速开始

需要:Node.js 22+、npm、Chrome;保存笔记需要 Obsidian。

git clone https://github.com/joeseesun/qiaomu-clipper.git
cd qiaomu-clipper
npm ci
npm run build:chrome
  1. 打开 chrome://extensions,开启右上角「开发者模式」。
  2. 点「加载已解压的扩展程序」,选择项目里的 dist 文件夹。
  3. 打开一篇文章或 YouTube 视频,在非输入框内快速连按 aaa。
  4. 想问 AI 或翻译字幕:在扩展设置 → AI 解读中添加你自己的模型与 API Key。

先试一条完整流程: 打开视频 → aaa → 点时间戳回看 → 按 N 写理解。只想读文章和复制字幕,无需配置 AI;写入日记需先装下方助手。

不想安装 Node.js?直接下载 1.11.1 预览包

下载 Chrome ZIP,解压后在 chrome://extensions 开启「开发者模式」,点「加载已解压的扩展程序」选择解压目录。发布说明。装好后请刷新已打开的 YouTube 页面,字幕工具栏才会出现;请勿使用 1.10.0 及更早版本,它们没有视频字幕工具栏。装好后请刷新已打开的 B 站页面;B 站只给已登录账号提供字幕。

想静默写入笔记库,或把学习笔记追加到今天日记?

安装可选的 本地助手:需要 Python 3.9+,支持 macOS / Linux 的 Chrome 系浏览器(Chrome / Edge / Brave / Arc 等),Windows 暂不支持。先装好扩展,再在仓库里运行(无需任何参数,自动识别扩展 ID 和 Obsidian 库):

python3 native/install.py

输出 "ok": true 即安装成功,然后在 chrome://extensions 重新加载扩展。遇到「本地保存助手未连接」,运行 python3 native/install.py --check 诊断。

让 AI agent 代装:把这句话发给 Claude Code / Codex:「帮我安装乔木剪藏的本地保存助手:克隆 https://github.com/joeseesun/qiaomu-clipper ,在仓库里运行 python3 native/install.py,不要手动编造扩展 ID 或库路径;ok: false 时按 error / hint 处理,有多个库时问我用哪个。」

普通剪藏默认通过 Obsidian URI 保存;助手可直接写入库内文件。

学习笔记的日记追加也由助手完成。升级扩展后,按助手文档重新运行一次 native/install.py;在 Obsidian 中启用「日记」核心插件。目前要求纯数字日期格式(如 YYYY-MM-DD),不支持日记模板。目标不满足条件时会显示原因并保留草稿。日记设置与保存说明。

更新源码后,重新运行 npm run build:chrome,并在扩展管理页点「重新加载」。

功能巡游

以下暖色配图是 AI 生成的功能概念插画,用于说明工作流;可展开查看界面截图。视频配图中的“书”是阅读体验的比喻。完整素材与提示词见功能插画图集。

视频学习:播放器与文稿一起用

视频阅读:把视频变成一本书

查看视频学习截图

视频学习:双语字幕、搜索、可调视频尺寸和位置切换

在 YouTube / B 站视频页按 aaa,先进入学习页并显示播放器,再异步加载字幕。字幕还没准备好时也不用卡在剪藏面板;失败可在原地重试,播放器保留。

B 站使用官方嵌入播放器:点击时间戳会按该秒重新加载,高亮只跟随点击行;字幕通常需要登录 B 站。字幕是否可用也取决于视频、站点加载和网络条件。视频工作区说明。

双语字幕:英文视频,中文对照

双语字幕:原文与中文译文保留相同时间戳

原文与中文译文对照阅读,保留原始时间戳;读到某一句时,可以点击时间戳回看对应片段。翻译使用你配置的 AI 模型,字幕是否可用取决于视频与平台。

YouTube 原页:不打开面板,也能找到字幕入口

YouTube 转写条组件:字幕、复制、下载、沉浸学习、设置与字幕搜索

视频页右栏顶部常驻「转写条」:字幕 / 复制 / 下载 / 沉浸学习 / 设置。展开即可搜索、看当前播放行或点时间跳转;「沉浸学习」进入完整学习页。可自动打开 YouTube 原生转写面板作为字幕来源,设置里可关闭。上图为转写条组件预览,使用示例字幕。

学习笔记:把自己的理解留下来

学习笔记:边看边记,留下收获

查看学习笔记截图

学习笔记:视频下方的小卡片,写我的理解,摘录与来源各有开关

不用切走视频,也不用先建一篇新笔记。按 N(或在任意网页三连按 iii),底部居中出现一张小卡片,不挡视频,也不压右侧的聊天栏。不选文字也能记,想到什么写什么。

实际写入需要上面的本地助手(升级后重新运行一次 native/install.py);截图使用示例视频和演示库,并未写入真实笔记库。

AI 对话:理解本文,也按你的习惯回答

文章 AI 对话:没读懂,直接问 AI

查看 AI 对话截图

文章阅读与 AI 对话:选中一段文字后直接围绕它提问

点顶栏魔法棒,展开右侧对话面板;全文或选中段落作为上下文,回答流式显示并支持 Markdown。中间分隔线可拖动;对话历史按文章保存,下次打开可继续聊。回答可复制、加入笔记或通过学习卡片加入日记。

查看 AI 对话设置截图

AI 对话设置:字体、字号、全局指令与快捷提示词

标题栏的 设置按钮支持:

支持 OpenAI 兼容接口、Anthropic、Google Gemini、Ollama 等,由你提供模型和 API Key。模板也可使用 {{"这篇文章的三点摘要"}} 自动生成笔记内容;默认不自动运行 AI,可在设置中调整。

阅读与编辑:读得舒服,改得方便

阅读与划线:读得舒服,记住重点

查看阅读页截图

阅读页:干净正文、中文字体、高亮与来源

在顶栏 Aa 调整字体、字号、行距与配色;内置朱雀仿宋、宋体、楷体、苹方等中文字体,也可选本机字体。正文支持划线与 ==高亮==,顶栏显示划线数量。

阅读目录与编辑侧栏都能收起 / 展开,并记住状态,长文章保留导航,需要空间时让正文铺开。阅读与编辑一键切换,共用顶栏与草稿流程,修改后内容同步。

Markdown 编辑:先改好,再保存

查看编辑页截图

整页编辑器:左侧属性,右侧 Markdown 正文

标题、标签、来源等属性与 Markdown 正文并排编辑,完成后直接复制、下载或剪藏。滚动时顶栏可收起,向上滚动或移到顶部再次出现。

弹窗:保存之前,少做几次选择

网页保存:喜欢这篇,一键收藏

查看弹窗截图 剪藏弹窗:阅读、复制、下载、编辑与一键剪藏

常用动作放在前面:阅读 / 复制 / 下载 / 编辑;模板、保存位置与 RSS 分享按需展开。模板需要 AI 时显示处理状态,失败给出原因并允许重试;默认模板与自动匹配规则减少重复选择。

模板与 AI 解读:照着模板,自动整理

模板与 AI 解读:照着模板,自动整理

用模板统一属性与 Markdown 正文,按网址或页面数据自动匹配;需要摘要时加入 AI 提示变量,由你配置的模型按需生成。模板、模型和 API Key 均可自行设置,默认不自动运行 AI。

RSS 分享:好文章,一起读

RSS 分享:好文章,一起读

剪藏时勾选「分享到乔木 RSS」,在保存到 Obsidian 的同时提交到公开读者提交源,方便其他人订阅。此选项默认关闭(设置页可改为默认开启),投稿内容会公开。 本地保存和公开投稿分别显示结果,阅读、编辑与学习笔记的日记保存不会触发投稿。

三连击快捷键

三连击快捷键:AAA 阅读、EEE 编辑、QQQ 剪藏、III 记笔记

在非输入框内快速连按同一个键 3 次(相邻按键间隔不超过约 0.6 秒):

默认按键 动作
aaa 网页阅读;YouTube / B 站视频学习
eee 整页编辑
qqq 用默认模板直接剪藏
iii 在任意网页打开学习笔记小卡片(选中的文字成为摘录;YouTube / B 站自动记录当前播放时间)
选中文字 → 右键「保存到日记」 同一张笔记卡片,选中的文字作为摘录
N(学习页) 在阅读、学习页打开同一张笔记卡片

三连击的字母或数字可自定义,留空可关闭;可按网站禁用。在输入框中打字或带 Ctrl / Cmd / Alt / Shift 时不触发。浏览器内部页(如 chrome://)不允许扩展脚本。直接剪藏的 AI 处理失败时不会保存未替换的提示变量。

隐私与边界

隐私说明 · 安全问题反馈 · 提交使用反馈

开发与验证

npm test                      # 单元测试(测试时区已固定,结果不依赖本机)
npx tsc --noEmit              # 类型检查
python3 -m unittest discover -s native -p 'test_*.py'   # 本地助手测试
npm run build:chrome          # 构建 dist/

暖色功能插画由 AI 生成,不是界面截图;完整素材与提示词见功能插画图集。界面截图基于生产界面样式或组件渲染,示例文章与字幕用于展示交互。截图来源与验收边界。

来源与许可证

基于 Obsidian Web Clipper,网页正文提取使用 Defuddle,图标来自 Lucide。内置字体 朱雀仿宋 使用 SIL Open Font License 1.1,许可文本见 src/fonts/ZhuqueFangsong-OFL.txt。本项目以 MIT 许可发布,由 joeseesun 维护。

关于向阳乔木


English

Turn saved articles and watched videos into something you understand — and keep it in Obsidian.

Qiaomu Clipper combines web clipping, a clean reader, a full-page Markdown editor, contextual AI chat, and video study. Press aaa on YouTube or Bilibili to study with the player and transcript together. Search, seek, copy, download, translate, and take notes without leaving the page.

Install current features · Screenshots · Report an issue

Chrome development build; not yet on the Chrome Web Store. This README describes current main. The downloadable 1.11.1 preview matches current main (no Node.js needed; refresh open YouTube tabs after installing). Earlier releases such as 1.10.0 lack the video transcript bar (Bilibili's arrives in 1.11.0; Bilibili only serves subtitles to signed-in accounts). Screenshots use production components with sample articles, captions, AI responses and daily-note targets; the video area is a cover preview. See screenshot provenance.

Quick start

Requires Node.js 22+, npm, Chrome, and Obsidian to save notes.

git clone https://github.com/joeseesun/qiaomu-clipper.git
cd qiaomu-clipper
npm ci
npm run build:chrome

Open chrome://extensions, enable Developer mode, choose Load unpacked, and select dist. Open an article or video, then press aaa outside an input field. Rebuild and reload the extension after pulling updates.

For AI chat or translation, configure your own model and API key in the extension's AI settings. Reading and copying captions do not require AI. To save silently or append learning notes to today's daily note, install the optional Python 3 local helper for macOS / Linux Chrome; run python3 native/install.py (no arguments; it detects the extension ID and vault) and re-run it after upgrading; --check diagnoses a "helper not connected" error, and an AI agent can run the same command for you. Daily-note append requires Obsidian's Daily notes plugin with a numeric date format and no template.

What you can do

The Chinese feature tour includes ten matching AI-generated concept illustrations for clipping, reading and highlights, editing, AI chat, video study, bilingual captions, learning notes, shortcuts, templates and RSS sharing. They illustrate workflows, not literal interfaces. Rendered interface screenshots remain in expandable panels; see the illustration gallery and prompts.

Problem Feature
Switch constantly between video and captions Player and transcript together; responsive layout, draggable size, dock / theater / corner window; supported Chrome also offers a separate YouTube window
Miss a phrase or struggle with foreign captions Transcript search, timestamp seeking, copy / TXT download, Chinese translation below the original
Lose your own thoughts while watching Press N to write in a small card, with source and video time; append to today's daily note using the helper
Re-type the same AI instructions Global custom instructions, editable article / selection quick prompts, font choice and 12–28 px chat size
Need a better place to read and edit Shared top bar, collapsible navigation, Chinese fonts, highlights, side-by-side properties and Markdown
Too many steps to clip Configurable triple-press shortcuts: aaa read / study, eee edit, qqq clip, iii quick-note card on any page; site exclusions and typing guards

Video loads before captions; caption failure can be retried without rebuilding the player. YouTube supports playback-following highlights. Bilibili uses its official embed: timestamp seeking reloads the player and captions highlight the clicked row rather than following playback; captions may require login. Actual availability depends on the video, site and network.

AI answers stream with Markdown; history stays per article, panel width is adjustable, and answers can be copied or added to notes. Supported providers include OpenAI-compatible APIs, Anthropic, Google Gemini and Ollama. Templates can also use {{"Summarize this article"}} to generate note content. Bring your own provider; the extension includes no AI account or credits.

Privacy and limits

See Privacy, Security, video study, and daily-note setup.

Development and license

Run npm test, npx tsc --noEmit, python3 -m unittest discover -s native -p 'test_*.py', and npm run build:chrome.

Independent MIT project based on Obsidian Web Clipper, preserving upstream history. Built with Defuddle and Lucide; Zhuque Fangsong uses the SIL Open Font License. Maintained by joeseesun.

qiaomu-clipper (joeseesun/qiaomu-clipper)

Searching Database…

What is this?Qiaomu Clipper is a Chrome extension that clips articles and videos into Obsidian, then lets you read, edit, highlight, and chat with AI about the saved content, including a synced player-plus-transcript view for YouTube and Bilibili videos.
Is this a Chrome extension or a standalone app?It is a Chrome development build, not yet on the Chrome Web Store, built on top of Obsidian Web Clipper; an optional local Python helper adds silent saving and daily-note writing.
How do I install it and start clipping?Build it with Node.js 22+ and npm, then load the dist folder as an unpacked extension in chrome://extensions with Developer mode on. Triple-press 'aaa' outside a text field to open reading or video-study mode, or 'qqq' to clip instantly with the default template.
What do I need besides Chrome to use all the features?Node.js 22+ and npm to build the extension, Obsidian to actually save notes, and your own API key for an AI provider (OpenAI-compatible, Anthropic, Google Gemini, or Ollama) for chat and caption translation. The optional local helper for silent saves and daily notes needs Python 3.9+ on macOS or Linux only.
Does video caption translation and silent saving always work?Caption availability depends on the video, site, and network; Bilibili usually requires a logged-in account, builds before 1.11.0 lack the video caption toolbar entirely, and the local helper needed for silent saves and daily-note writes does not run on Windows.
Which AI providers can I plug in?You can bring your own API key for OpenAI-compatible APIs, Anthropic, Google Gemini, or Ollama; the extension does not include any AI account or free credits of its own.
How do the triple-press shortcuts work?Pressing the same key three times quickly outside a text field triggers an action: 'aaa' opens reading or video-study mode, 'eee' opens the full-page editor, 'qqq' clips with the default template, and 'iii' opens a quick learning-note card on any page. Keys are customizable per site.
What does video study mode actually show?On YouTube or Bilibili it opens a page with the video player and an asynchronously loaded transcript side by side; you can search the transcript, jump to timestamps, turn on Chinese translation under the original line, and copy or download the captions as TXT.
Why build this instead of just using Obsidian Web Clipper?It adds a full reading/editing experience, contextual AI chat per article, synced bilingual video transcripts for YouTube and Bilibili, and quick learning-note cards tied to a source and timestamp — none of which are in the original Obsidian Web Clipper.
Creator
joeseesun
Size
52.1 MB
Stars
361
Age
16d
Commits · 90 Days