看 YouTube 技术视频有个老问题:看的时候收获满满,一周后能记住的不到两成。收藏夹里躺着一百多个视频,字幕翻译、AI 摘要、金句摘录当时都做了,可这些学习痕迹散落在浏览器插件的各个角落,既串不成知识,也查不出来源。
最近我找到了一个合适的下手对象:Zara Zhang 开源的 youtube-digest,在它上面做了六项改造。改造思路和踩过的坑都在下面,想把自己插件改成同款的,可以直接抄。
一、先认识 youtube-digest
先介绍主角。youtube-digest 是 Zara Zhang 在 2026 年 8 月初开源的 Chrome 扩展,MIT 协议。作者本身是 GitHub 上的高产独立开发者,个人主页上挂着多个千星项目,这个新仓库则是她"Follow builders, not influencers"工具家族的一员。
它的界面很简单:一个 Chrome 侧边栏,配三个 Tab。
Transcript:把视频字幕拉成可读、可搜索、可复制的文本,支持原文、中文、双语对齐三种视图,点击任意一行跳转视频进度。 Overview:把整段字幕交给 AI,产出覆盖全片的章节结构和 3 到 5 条金句,每条都带时间戳。 Notes:在播放或阅读过程中随手保存带时间戳的笔记,AI 自动清理口语中的语气词和结巴。
技术上它非常轻:没有构建步骤(纯 HTML/CSS/JS,33 个文件约 5900 行),没有后端服务器(BYOK 模式,密钥全存 chrome.storage.local),也不做遥测。取字幕走 Supadata API(免费层每月 100 credits),AI 能力固定走 DeepSeek,官方给的账单估算是翻译一个 20 分钟英文视频约 0.006。
这个项目的 README 里有个特别的设计:它鼓励你把仓库交给编码代理来安装和定制,甚至内置了"Copy customization prompt"按钮,专门用来生成给 Claude Code 这类工具的改造指令。原作者的预期用法就是"fork 一份,让 AI 替你改成想要的样子"。
我照做了。
二、改造前先想清楚它缺什么
读了它的源码,几个限制写得很明白:
视频缓存上限 20 条,超过就按最旧的淘汰( evictOldCacheEntries(20));缓存 30 天过期,过期即删( THIRTY_DAYS常量);笔记全局上限 100 条,超出直接截断( notes.splice(100));AI 提供商在 settings.js里写死 DeepSeek,normalize()函数会把用户传入的任何 baseUrl 和 model 强制覆盖回默认值。
这几条加在一起说明一件事:插件的设计只围绕"当前这个视频"。你上个月学的东西,它默认你不再需要。对偶尔看一个教程的用户这没问题,但如果 YouTube 是你的主要技术信息源,这份数据就是被白白扔掉的学习资产。
所以改造目标定为:把它从"单视频学习工具"升级成"YouTube 学习中台",让每个视频的学习痕迹能沉淀一年以上,还能被二次利用。具体拆成六项。
三、六项改造
1. 支持任意 OpenAI 兼容接口
原项目的设置页只让你填一个 DeepSeek API key,endpoint 和 model 都不可改。想换厂商?README 的官方答案是"复制定制 prompt 交给编码代理改源码"。
这对开发者不算门槛,但对普通使用者等于把路堵死了:手里有 OpenAI、OpenRouter 或公司自建网关的人,全都被挡在门外。
改造后设置页支持任意 OpenAI 兼容接口:Base URL、Model、API Key 三个字段全部开放。你填 https://api.openai.com/v1 就用 GPT,填 https://openrouter.ai/api/v1 就从几十个模型里挑,本地跑 Ollama 或 vLLM 的人填 http://localhost:11434/v1 也行,国内用户直接对接 GLM、Qwen 的兼容端点,开箱即用。

2. 最长一年的观看记录
改造前的插件没有任何历史概念,切到下一个视频,上一个视频的一切就进入倒计时。
新增的活动页解决这个问题:记录你用插件处理过的每一个视频,保留最长一年。每条记录包含视频标题、频道、处理时间、观看状态。翻了半年的账,哪个月学了什么、哪个频道看得最多,一目了然。

实现上没有引入新的存储后端,还是 chrome.storage.local,只是把淘汰策略从"20 条上限、30 天过期"改成按时间分桶、365 天滚动保留。
3. 可按频道过滤的收藏库
活动页解决"发生过什么",视频页解决"我囤了什么"。
技术视频的学习路径经常是跨周甚至跨月的:这周看一半,下周继续,中间可能还想对照同一频道的其他视频。新增的视频页把收藏的学习视频统一管理,支持按频道过滤,频道维度对技术学习者特别关键,因为同一个频道的视频往往构成一个体系。

顺手把缓存策略也改了:被收藏的视频不再受数量淘汰影响,它的字幕、摘要、金句会一直保留,直到你取消收藏。
4. 播放器笔记和金句笔记分开管理
原项目的笔记只有一种来源:你在字幕或播放器上点时间戳保存的"播放器笔记"。Overview 里的金句看着很好,但存不下来,只能截图。
改造后的笔记页把两类笔记统一收进来,用类型字段区分:播放器笔记带视频进度上下文,金句笔记带 AI 提炼的原文和出处。两者可以在统一时间线里浏览,也可以按类型过滤。

原来的 100 条硬截断同时取消,笔记没几条,占不了多少空间。
5. 章节和金句一键翻译
原项目翻译能力只覆盖字幕轴。Overview 的章节标题、章节摘要、金句全部是英文产出,中文读者看完还得在脑子里再翻译一遍。
改造后 Overview 支持一键中文翻译,章节和金句整体切换。复用了项目原有的翻译 prompt 体系,它本身对中文输出有细到标点的规则(比如中英文之间加空格、用"你"不用"您"),翻译质量比通用接口稳定。

6. 缓存统一暴露给本地 Agent
这是正在做的部分,也是整个改造里我最看重的一项。
前五项改造解决的都是"人怎么看",第六项解决"机器怎么用"。思路是:所有观看过的视频,其字幕、摘要、金句、笔记统一存成结构化缓存,并且暴露给本地 Agent 使用。
具体做法是把 chrome.storage.local 里的学习数据导出成本地文件(JSONL 和 Markdown 两种格式),本地 Agent(Claude Code、OpenCode 都行)把它当作普通项目文件读取。能做的事情一下子多了起来:
让 Agent 基于你三个月的观看记录做学习洞察:"我最近都在看什么主题?哪些视频值得二刷?" 跨视频提问:"关于向量数据库,我看过的这几个视频里分别讲了什么观点?" 定期把金句和笔记汇总成主题知识卡,直接进你的笔记系统。
数据都在本地:导出只往外写,Agent 只读指定目录,碰不到浏览器存储里的密钥。这一点沿用了原项目 PRIVACY.md 的设计原则,密钥与数据隔离,扩展不向任何第三方服务器发送你的学习记录。
四、改造的本质是工具变成了中台
回头看这六项,前五项是功能,第六项是转折点。
原项目的架构里,一切数据围绕"当前视频"组织,缓存只是为了加速重复访问。改造后数据围绕"学习者"组织:活动页按时间回溯,视频页按频道检索,笔记页放产出物,数据层把这一切对外开放。插件的角色从"帮你看好这个视频"变成"帮你管理在 YouTube 上的整个学习生命周期"。
类比一下,原项目像一把很好用的瑞士军刀,每个刀刃都锋利,但每次用完合上就什么都不剩。改造后它更像一个工作台:工具还是那些工具,但桌面上开始留下你的工件、图纸和半成品,第二天回来接着干。
对独立开发者,这个思路是通用的:任何"用完即走"的工具型产品,只要它的使用数据对用户有长期价值,都值得考虑一次这样的改造。怎么判断?问一句就行:用户半年后回头看,这些过程数据还值钱吗?
五、你也可以这样改
youtube-digest 很适合动手改造:代码量小、结构清晰、无构建步骤、MIT 协议,README 甚至预设了"交给编码代理改"的用法。我这次的全部改造,也是在这个思路上完成的:读懂原代码的数据模型,把限制条件列出来,逐项给出新方案,让 Agent 执行。
如果你想动手,几个方向供参考:
导出增强:目前导出格式是 JSONL 和 Markdown,可以加 EPUB、Anki 卡包,把学习痕迹直接接进复习系统; 主动推送:结合作者另一个项目 youtube-to-ebook 的思路,让收藏频道的新视频自动生成摘要推送; 多语言:翻译规则目前只写了简体中文,照着 prompts/translation.md 的结构补其他语言即可; 检索:给导出的字幕缓存配一个本地全文索引,让 Agent 的跨视频问答不再依赖逐文件扫描; 可视化:活动数据已经按月分桶,加一个学习热力图成本很低。
改造的起点也简单:clone 仓库,打开 settings.js 和 background.js,先读 evictOldCacheEntries 和 saveNoteToStorage 两个函数,原项目的数据边界就全在里面了。
开源的乐趣就在这里:Zara 把改造空间留好了,我填了自己的需求,剩下的就等你来 fork 了。
你平时看技术视频有做笔记的习惯吗?攒下来的笔记后来真的被翻出来用过吗?评论区聊聊你的知识管理方案。
项目地址:https://github.com/zarazhangrui/youtube-digest
夜雨聆风