YouTube Watcher:2.1 kB 让长视频秒变文档

看 YouTube 长视频学东西的人都有同一个痛:一个 40 分钟的技术分享,信息量可能只有 10 分钟,但你不看完不知道精华在哪。倍速播放、拖进度条、边看边记笔记,时间还是花下去了,事后想引用某句话,又得把整个视频拖回去重找。视频是好内容,可惜文字检索、复制、喂给 AI 都不方便。

YouTube Watcher 给了一个极简解法:把视频字幕一键提取成纯文本。它由 michael gathara 维护,当前版本 1.0.0,专业技能榜第 25 名,安装量 225.8k,通过 CLS 安全性认证(2026-05-02),整包只有 2.1 kB——整个技能就一个 Python 脚本加一份说明,零第三方依赖。装上它,你的 Agent 就能「看」YouTube:字幕拉出来,摘要、问答、检索随便做。前提也说清楚:视频得有字幕,约占 15-20% 的无字幕视频它处理不了。

百度网盘下载:https://pan.baidu.com/s/1_nRNR3HDfctc2p2v2vNtvQ?pwd=urha(提取码:urha)

通过网盘分享的文件:michaelgathara-youtube-watcher-1.0.0.zip
链接: https://pan.baidu.com/s/1_nRNR3HDfctc2p2v2vNtvQ?pwd=urha 提取码: urha 复制这段内容后打开百度网盘手机App,操作更方便哦

一、基本信息

为什么这章值得看——这是一个「小到没有多余部件」的技能包,表里每一行都在告诉你它有多克制。

项目 内容
技能名称 YouTube Watcher(youtube-watcher)
维护方 michael gathara(个人开发者)
定位 YouTube 字幕一键提取:长视频秒变可读文本
版本 1.0.0
社区数据 专业技能榜 #25 · 安装 225.8k
安全认证 CLS 安全性认证(2026-05-02),静态分析满分
运行环境 Python 3(仅标准库)+ 外部工具 yt-dlp(brew 或 pip 安装)
启动命令 python3 scripts/get_transcript.py "https://www.youtube.com/watch?v=视频ID"
包体大小 整包 2.1 kB(主脚本 get_transcript.py 2.2 kB,压缩后 2.1 kB)
下载安装 michaelgathara-youtube-watcher-1.0.0.zip(网盘,提取码 urha)
标签 youtube、transcript、video-analysis、summarization、productivity、media-tools

二、它解决什么问题

为什么这章值得看——理解它的工作定位,才知道它是流水线上的哪一环。

YouTube 上大量的知识内容其实已经有一份现成的文字版:上传者手动上传的 CC 字幕,或者平台自动生成的字幕。问题在于这些字幕包在 WebVTT 格式里——时间戳、序号、标签、重复行混在一起,直接下载下来没法读。手动复制粘贴又慢又乱,长视频尤其灾难。

YouTube Watcher 只做一件事:把字幕取出来、洗干净、以纯文本输出。它不下载视频、不转写音频、不做摘要——摘要交给你的 Agent 来做,它只负责把「视频内容」变成「LLM 能直接读的文本」。这个定位很聪明:转写要算力和模型,取字幕只要一个 yt-dlp 调用,成本几乎为零。

放进工作流里看更清楚。传统转写有两条路:本地跑 Whisper 这类语音识别模型——模型动辄几个 GB,40 分钟的视频转完还要等一阵;或者用云转写服务,按时长计费。而 YouTube 平台其实早就把大多数视频转写好了,只是包在没人愿意手工处理的 VTT 格式里。这个技能的思路是「用平台已有资产」:不跑模型、不花钱、几秒出结果。对一个每天要消化好几期播客和技术演讲的人来说,这个成本结构上的差距会累积得非常可观。

一句话概括它的哲学:不造轮子,只做桥——视频和文字之间的那座桥,越短越好。

三、核心功能

为什么这章值得看——它只有一个脚本,但这两步流程的细节决定了输出质量。

3.1 取字幕:一次 yt-dlp 调用

核心命令就一条,把视频 URL 作为参数传进去:

python3 {baseDir}/scripts/get_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID"

脚本内部用 subprocess 调用 yt-dlp,参数组合是关键:

参数 作用
--write-subs 下载人工上传的 CC 字幕(质量最高)
--write-auto-subs CC 不存在时退回自动生成字幕
--skip-download 只取字幕,不碰视频本体,几秒出结果
--sub-lang en 只取英文字幕

所有临时文件写在系统临时目录里,用完即删,不在你的磁盘上留垃圾。拿到 .vtt 文件后读进内存做清洗,结果直接 print 到标准输出——这意味着你可以用管道把它接给任何下游工具。

3.2 洗字幕:五步清洗出干净文本

VTT 原始文件满屏噪音,脚本的 clean_vtt 函数做了五层过滤:

清洗动作 去掉什么
跳过头部与序号 WEBVTT 文件头、纯数字的 cue 序号行
删除时间戳 00:00:01.000 --> 00:00:04.000 这类时间轴行
剔除元数据块 NOTE、STYLE 开头的注释与样式段
相邻去重 自动字幕滚动造成的连续重复行
剥离标签 <c>、<00:00:01.000> 这类内联标记

五步下来,输出就是一段一段干净的口播文本,直接可读、可复制、可检索。相邻去重这一步尤其重要——自动字幕为了滚动显示会大量重复,不去重的话文本量虚高一倍以上。

3.3 典型用法:从取字幕到出摘要

官方示例给的两步工作流很直白:第一步跑脚本拿字幕,第二步把输出交给 Agent 处理。实际用起来,三个场景最常见——总结(「读一遍输出,给我五条要点」)、问答(「这个视频里提到的配置参数是什么」)、检索(「演讲者哪一段讲到成本」)。SKILL.md 里预置的触发词包括 watch youtube、summarize video、video transcript 等,Agent 收到这类指令会自动走这条流程,你不需要记命令。

一个实际例子:把某个技术分享的链接丢给 Agent,说「总结这个视频里关于部署的部分」,Agent 会先跑脚本拿全文,再在文本里定位相关段落作答——因为有纯文本,答案还能附上原话引用,这比「我看了视频,大概是说」可靠得多。播客类内容同理:节目笔记、嘉宾观点、时间点话题清单,全都能从这份文本里直接生成。

四、真正有价值的地方

为什么这章值得看——小工具有小工具的讲究,这五条是它能在榜上待住的底气。

零第三方依赖。整个脚本只用 Python 标准库——argparse、re、subprocess、tempfile、pathlib。没有 pip install 一长串,没有供应链投毒的攻击面,CLS 安全报告里「无危险函数、无硬编码凭证、无代码混淆」的满分评价和这个设计直接相关。

代码完全透明。80 行出头的脚本,5 分钟能读完每一行。它把网络请求外包给 yt-dlp,自己只做文本处理,行为完全可预测。对企业内或敏感环境来说,「读得懂」就是最好的安全审计。

输出即插即用。纯文本打 stdout,天然适配管道和 Agent 工作流。接 AI 摘要、写进笔记、grep 关键词、做语料,都不需要再加工。相比一堆返回带时间戳 JSON 的工具,它的输出拿来就能喂模型。

清洗质量在线。时间戳、标签、相邻重复行三类噪音全处理,这是很多人自己写 yt-dlp 脚本时最容易漏的部分。直接抄它的 clean_vtt 函数当模板都值回票价。

临时文件即用即删。字幕下载在系统临时目录完成,脚本退出时目录自动清理,不在你的磁盘上留任何痕迹。跑一百次视频,硬盘上也不会多出一个字节。

依赖的是活跃生态。yt-dlp 是开源社区维护最勤的下载工具之一,YouTube 前端一变它就跟更新。选它当底层,比自己维护爬虫省心得多。

五、绕不开的问题

为什么这章值得看——它的小体积同时意味着能力边界,这六条是装之前必须知道的。

没字幕就没辙。功能完全依赖视频有 CC 或自动字幕,据安全报告估算约 15-20% 的 YouTube 视频没有任何字幕——纯音乐、无口播画面、新上传还没生成字幕的视频都会直接报错退出。没有音频转写作为备用方案。

只取英文字幕。脚本写死了 --sub-lang en,中文视频的中文字幕拿不到,中文用户用它处理中文内容会碰壁。想改也是一行代码的事,但默认开箱就是英文。

自动字幕质量参差。自动生成的字幕是语音识别产物,专有名词、数字、代码术语经常错,标点也少。拿来做摘要大意够用,逐字引用前务必人工核对。

无 URL 校验。脚本不检查输入是不是 YouTube 链接,参数直接透传给 yt-dlp。传错链接不会造成安全问题,但报错信息来自 yt-dlp,新手可能看不懂。

无多模态能力。画面里的图表、演示、白板内容统统不在覆盖范围——字幕只记录说了什么,不记录展示了什么。技术演讲里「看这段代码」的部分,文本版里是空的。

许可证未声明。SKILL.md 和脚本里都没有开源许可证声明,严格来说商用或再分发前存在授权上的不确定性。个人使用问题不大,企业部署建议先和作者确认。

六、官方风险表与解读

为什么这章值得看——安全级别最高的包也有真实的坑,风险不在代码在环境。

风险项 级别 说明
命令执行 低 subprocess 仅调用 yt-dlp,固定参数,无用户可控的注入面
外部工具依赖 中 yt-dlp 与 YouTube 的对抗持续进行,版本过旧可能失效
版权合规 提示 字幕内容受原视频版权保护,商用引用需获得授权
字幕准确性 提示 自动字幕有识别错误,关键信息需人工核实
网络可达性 提示 部分地区网络环境可能影响 yt-dlp 正常工作

这张表里唯一的「中」级风险最值得展开:yt-dlp 和 YouTube 之间是长期的猫鼠游戏,平台反爬策略一变,旧版 yt-dlp 就可能拉不到字幕。缓解办法很简单——保持 yt-dlp 更新(brew upgrade yt-dlp 或 pip install -U yt-dlp),出问题先升级再看。另外注意版权这条:提取的字幕是视频内容的一部分,做个人笔记、学习摘没问题,直接搬运或商用要过授权这一关。

一条实用纪律:装好后先跑一遍 yt-dlp –version,并把升级 yt-dlp 写进月度习惯——这个技能的可用性几乎完全取决于它。

七、适合谁,不适合谁

为什么这章值得看——225.8k 安装量说明需求真实存在,但不是每个人都该装。

类型 是否适合 理由
用视频学习的学生和研究者 适合 长视频变文本后可检索、可标注,学习效率翻倍
内容创作者 适合 找素材、做拆解、写二创提纲,字幕文本是原料
自动化工作流搭建者 适合 一条命令加管道输出,接进任何流水线都顺
AI 重度用户 适合 让 Agent 定期「看」订阅频道并生成摘要,零成本信息雷达
主要看中文视频的人 不太适合 默认只取英文字幕,中文内容要自己改脚本
想分析画面内容的人 不适合 无多模态能力,图表、演示、画面信息一概不知
无字幕视频为主的场景 不适合 约 15-20% 视频直接失败,无备用转写方案

八、落地路径

为什么这章值得看——它装起来两分钟,但配对正确的使用姿势才有价值。

  1. 装 yt-dlp。brew install yt-dlp 或 pip install yt-dlp,装完确认 yt-dlp --version 能跑——这是整个技能唯一的外部依赖。
  2. 解压技能包。放到 Agent 的技能目录,确认 scripts/get_transcript.py 路径可访问。
  3. 找一个带 CC 字幕的测试视频。跑一遍标准命令,确认输出是干净文本而不是报错。
  4. 接进你的对话流。以后想总结视频,直接对 Agent 说「summarize this video 加链接」,触发词机制会自动调用脚本。
  5. 搭一条订阅摘要流水线。进阶玩法:把常看的频道新视频 URL 批量喂给脚本,输出汇总后让 Agent 每周生成一份要点周报。
  6. 保持 yt-dlp 更新。遇到「No subtitles found」之外的网络类报错,先升级 yt-dlp 再排查,多数失效都是版本过旧导致。

九、文件构成与安装

为什么这章值得看——整个包只有两个文件,看清楚它们你就完全掌握了这个技能。

文件 / 目录 大小 作用
scripts/get_transcript.py 2.2 kB 主脚本:调用 yt-dlp 取 VTT 字幕并清洗为纯文本
SKILL.md 1.5 kB 技能描述:触发词、用法示例、依赖说明

没有 README、没有配置文件、没有多余目录——2.1 kB 的压缩包就是全部。安装 = 解压 + 装好 yt-dlp,两步完成。想读源码,80 行,一杯咖啡的时间够了。

十、常见问题

为什么这章值得看——这些是安全报告和实际使用里最高频的疑问。

它会下载视频本体吗?

不会。--skip-download 参数写死在脚本里,只取字幕文件,全程在临时目录完成,几秒结束。这也是它比「下载视频再转写」快得多的原因。

支持中文视频吗?

默认不支持,脚本固定 --sub-lang en。中文视频如果带英文字幕可以取;要中文字幕需要自己把这一行参数改成 zh-Hans 之类。对中文重度用户,这是装之前最该知道的限制。

报错 No subtitles found 怎么办?

说明这个视频既没有 CC 也没有自动字幕,属于那 15-20% 的无字幕情况,脚本会直接退出。换有字幕的源视频,或者用带语音转写能力的多模态工具替代——这个技能没有备用方案。刚上传几小时的新视频也可能还没生成自动字幕,隔天再试往往就好了。

自动字幕错字多,能信吗?

大意能信,细节不能全信。专有名词、数字、代码术语是重灾区。做摘要、抓主题没问题;要引用原话或复现操作步骤,建议对照视频原片核实。

把字幕喂给 AI 做摘要,效果怎么样?

这是它的最佳场景。40 分钟视频清洗后通常剩几千到一两万字符,主流模型上下文都能装下,摘要、问答、要点提取质量都不错。清洗过的无时间戳文本也比原始 VTT 省一半 token。

突然全都不能用了怎么办?

大概率是 YouTube 改了前端、旧版 yt-dlp 失效,先 pip install -U yt-dlp 或 brew upgrade yt-dlp。yt-dlp 社区通常一两天内就会跟进修复,这也是选择活跃生态当底层的好处。

商用要注意什么?

两层风险:字幕内容受原视频版权保护,商用引用需授权;技能包本身未声明开源许可证,再分发或嵌入商业产品前建议联系作者确认。

和浏览器插件取字幕有什么区别?

插件面向人看,输出常带时间轴、要手动复制;这个脚本面向 Agent 和管道,输出干净的 stdin/stdout 纯文本,可以直接接下游工具。而且它没有浏览器依赖,能在服务器和无头环境里跑,这是插件做不到的。

服务器上能用吗?

可以,它只依赖 Python 3 和 yt-dlp,无头环境完全没问题。注意两点:一是服务器所在网络的出口地区可能影响 YouTube 访问,二是别高频批量拉取——大量请求可能触发平台的临时封禁。

结语

YouTube Watcher 是「一个脚本干一件事」的典范:不下载视频、不做转写、不做摘要,只把现成的字幕洗干净递到你手上。零依赖、80 行代码、安全满分、225.8k 安装量,这些数字背后是一个朴素的事实——绝大多数时候你要的不是视频,是视频里的那句话。当然,它的边界一样清楚:没字幕的视频、非英语内容、画面里的图表,它都无能为力。

工具越简单,用法越重要。它的价值公式是「字幕文本 × Agent 的下游能力」——脚本本身只会取文本,真正的杠杆在你怎么用这份文本:让 Agent 建立每周订阅摘要,是雷达;随手总结一个链接,是省时间;把整季课程批量转成可检索笔记,那就是一台学习机器。如果你的日常里有大量「看视频学东西」,装上它,这 2.1 kB 大概是你今年投入产出比最高的一次安装。记住先装 yt-dlp,再跑命令。

通过网盘分享的文件:michaelgathara-youtube-watcher-1.0.0.zip
链接: https://pan.baidu.com/s/1_nRNR3HDfctc2p2v2vNtvQ?pwd=urha 提取码: urha 复制这段内容后打开百度网盘手机App,操作更方便哦

YouTube Watcher字幕提取yt-dlp视频摘要transcript效率工具技能包

百度网盘下载:https://pan.baidu.com/s/1_nRNR3HDfctc2p2v2vNtvQ?pwd=urha(提取码:urha)

THE END
喜欢就支持一下吧
点赞78 分享
评论 抢沙发
头像-知了AI
欢迎您留下宝贵的见解!
提交
头像-知了AI

昵称

取消
昵称表情代码快捷回复

    暂无评论内容