小刘BOT

我开发了一款用于提升视频网课自学效率的 AI 辅助工具

正式发布一下这个项目,你几乎可以用它来学习任何视频:

https://github.com/Liu-Bot24/course-navigator

它主要有四个核心功能:

  1. 把课程视频变成可主动翻阅的文字。
    课程视频可以提取/生成字幕,变成带时间点的文字稿,点一句话就能跳回视频对应位置。
  2. 在 AI 的辅助下进行视频字幕校准。
    自动识别出来的字幕如果有错,可以用 AI 按术语、人名、上下文去校正,改完后保存成可用字幕。
  3. 借助 AI 模型的能力帮你看懂课程
    AI 可以把课程整理成大纲、重点解读、详细笔记、学习建议,也可以翻译字幕。
  4. 将纳入学习的课程按照资料库管理。
    可以把课程按专辑管理,保存视频、字幕、翻译、笔记和 AI 生成的学习材料,还能导入导出整套课程。

我打包了 Mac 和 Windows 启动器客户端,不需要从源码运行,直接在 Releases 下载,安装即用。

https://github.com/Liu-Bot24/course-navigator/releases/tag/v0.1.6

让我就着一碟醋,把这个项目能做什么介绍一下。

没错,这个项目的起源其实就是为了一碟醋包的饺子。

某一天我在网上吴恩达的新公开课《 AI Prompting for Everyone 》,然后就想看一看。

这是一个免费的课程,非常酷,你甚至不需要花一分钱,就可以听这种大佬给你深入浅出的讲解宝贵的知识。

但是,这个公开课的原版是英文,而且只有英文字幕。

当然,大语言模型的时代被语言难倒,那也太尴尬了。

我可以选择使用沉浸式翻译,直接把这个字幕变成中文。甚至,哪怕不用 AI 的解法,按照我的掌握常识经验,闭着眼睛都能猜到,这种公开课在中文互联网一定有翻译好的现成版本可以直接看。

但是,大语言模型的时代,就仅此而已了吗?

我用沉浸式翻译把字幕用 AI 翻译一下,和我直接上 B 站看别人翻译好的,

好像也没有什么实质性的不同,那也太尴尬了。

都人工智能了,还是只解决文本翻译问题,不能带来结构化的学习效率提升,这不对。

于是,我就着这点醋,包了顿饺子。

我在洋柿子看短剧的时候,经常刷到某音精选的广告。

某音精选的定位是一个中长视频平台,提供时长更长、信息密度更高的内容,包括知识型内容。我刷到的广告主打的点非常有意思 —— 「助眠」

学习知识历来就是枯燥的事情。

语言从来不是学习视频课程最大的难点,犯困才是。

视频这种模态优势是形象可视化,理解成本低;但时长过长、信息噪声过高的视频的问题也很明显,难以检索,难以筛选,你不得不被动接受视频中你不感兴趣的噪声。

你会发现在看视频学习的时候,很难真正自己掌握学习的主导权

如果你不想有遗漏,你就没法跳着看,你只能被迫地从头看到尾,把视频的内容全盘接收。于是效率自然就低下,而且容易犯困,犯困走神以后,就容易有遗漏。醒过神来你问视频,我刚刚遗漏了哪里?视频说我不知道,不可检索,你自己去拉进度条。然后你不想有遗漏,你就没法跳着复习,你又要被迫从头拉到尾……

网课似乎一直以来都是这样学的,但我觉得它又似乎不应该一直这样下去。

我希望在我开始学习这个视频课程之前,它能提前主动告诉我:

  • 我的知识储备适不适合直接学习这节课,或者说我至少需要先对什么有所了解才好看懂它?
  • 如果我是纯新手,哪些部分是我一定要认真听、认真搞懂的?
  • 如果我已有经验,哪些部分我可以快速跳过?哪些部分应该常听常新?
  • 在第一次学习之前,我可以带着哪些问题来学这些节课,让我印象深刻?
  • 如果我是来复习的,我要重点去复习哪些板块?

并且,这些「哪些部分」,应该带有现成的定位锚点。视频最好把自己分好章节,让我能够一键跳到对应的章节去。

最好,这些章节能够自由变换颗粒度:当我想快速浏览的时候,它应该是一个大纲,让我一眼就能看出这节课的结构是什么样的;当我想仔细看的时候,它最好又细到把老师举的每一个例子都给我原原本本地写清楚。

而恰好,这些好像用 AI 都能实现。

而且这些东西对 AI 的能力要求并不前沿,不是现在先进 AI 在卷的什么代码能力、工具调用、Agent 能力这些,而是已经很稳定了的总结能力和世界知识。这就意味着哪怕我掏出个过时的 Deepseek V3,它应该大概率都能做的还不错。

于是,就包了这么一盘饺子出来。

我们从一条常规课程视频处理的流程来说起吧。

首先,这个项目具备从链接读取视频的能力。你可以看到上面那张图,我直接把 deeplearning.ai 的公开课链接填了进去,然后在下面的视频窗口就能够在线播放相应的视频。

当然,不同网站的情况可能会略有不同。比如bilibili的视频,没有办法在B 站网页的情况下实现通过字幕定位时间轴的功能,所以就不太适合直接把在线播放器嵌入到项目内的工作台页面播放。但是项目提供了视频缓存的功能,你可以先把视频缓存到本地,然后再继续使用它。

同时,后续我也提供了本地导入视频的功能。你可以选择把本地的视频导入到工作区,也可以直接链接到本机目录或者局域网设备,例如 NAS。

视频本身有字幕的,它会尽可能获取到原字幕;没有字幕的,就提取出音频,然后再通过后续的 ASR 转写获得字幕;如果你本地有现成字幕,也可以选择直接上传。获取到和上传的字幕,其实就代表着视频的内容。(当然实际的代码实现也会同时获取这个视频的标题、摘要和上传者的信息,这也可以算作视频内容的一部分。)

完成这件事儿必须感谢两个伟大的开源项目:yt-dlp 和 ffmpeg,如果你使用 Release 里的安装包安装,这两个组件都会内置,不需要自己补齐运行环境。

yt-dlp真的是一个非常方便的好东西,结合浏览器 Cookie,我就可以把我在 bilibili 课堂买的课程导入进来,按照我自己想要的方式学习。

(*但不鼓励大家利用技术手段侵权或在无许可的情况下肆意传播版权内容。)

而拿到字幕以后,如果跟目标语言不一致,就会先进入翻译。翻译的大模型是可以单独配置的,上图的字幕模型就是用来翻译的模型。

例如,一开始我们说的《 AI Prompting for Everyone 》公开课,原视频只有英文字幕,而我又需要中文,于是我就可以通过这个字幕模型把它翻译成中文。通常这个字幕模型不需要上下文窗口特别大,所以可以按需选择性价比比较高的模型。

获取到字幕后,你可以在这个区域调整字幕的显示:

上面的视频字幕和下面的字幕列表,可以分别选择显示原文、显示译文还是显示双语。对于视频上的字幕,你也可以选择让字幕以浮动字幕条的形式显示,还是直接在视频下方显示一个当前字幕栏,或者直接把视频字幕隐藏掉。

到正式处理字幕之前,其实还有一个现实问题。

除了极少数字幕是作者经校过之后上传的,大部分字幕都来自于 ASR 识别,区别只是在于是我们自己提取出音频识别的,还是 YouTube、Bilibili 这样的网站帮你识别好以后再被我们下载下来,只要是语音识别的字幕,都会有一个准确率的问题。

于是在这里我插入了一个 ASR 校正功能。

点击 ASR 校正按钮,可以进入到 ASR 校正工作台,它的作用你看到这张图应该就能理解了:

这里的校正,核心功能依旧是通过大模型来实现。

主要依赖于三层保险:

第一是大模型本身掌握的世界知识和推理能力,这个就取决于你选择哪个模型来执行这个任务;第二是你可以手动录入附加的参考信息,比如直接在附加信息里面告诉 AI:「经常跟小帅一起出现的那个女孩叫晓梅,而不是叫小美,把名字写错的都给我改过来」,那这段信息就会被注入到 Prompt 里面,AI 就会按照你的附加信息执行;第三是可以启用搜索服务,比如我自己在 NAS 上部署了自托管的 Firecrawl,我就经常让 AI 用它来搜索。大模型自身不曾掌握的知识,或者在它的认知里概率比较低的可能,通过搜索就可以很好的校正。例如下面这张图片里面的Lovart、M5Stack、Ling这种品牌或产品名字:

使用不同模型的时候,会有不同的识别遗漏情况。所以校正完一次之后,可以点击再次生成校正建议,它就会又跑一次。

当然,这个字幕编辑区是可以直接进行编辑的。手动修改在很多时候依旧是一个非常快捷的方式,倒也不必非要跟大模型死磕。

字幕搞定之后,也就意味着我们拿到了视频的内容,接下来就是把内容交给 AI 处理了。

这时候需要用到的,也就是还前面没有提到的另外两个 AI 模型。

他们的分工大致是,首先会有一个结构模型来把整个字幕按照语义分成不同的学习块,然后会由详解模型来为每个学习块生成具体的内容。一般来说,如果视频篇幅比较长的话,结构模型需要一个上下文窗口比较大的模型,而详解模型对上下文窗口的要求要低一些。实际使用的时候可以酌情来选择。

另外,细心的朋友使用的时候应该能发现,我在这里藏了一个下拉小箭头。

打开之后是可以选择AI 生成的详细程度的。默认的详细程度是标准,使用高保真的话得到的结果会更详细,但是可能对你选择的模型能力要求就更高一些。

配置好相应的模型后,点击生成学习地图,就可以让 AI 来为你生成辅助学习的内容了。

在这个阶段,AI 生成的板块主要有上图能看到的四个板块,以及界面左侧的时间地图板块。

首先是导览。

导览其实就是前面说的我希望我在学习这个视频课程之前,它能提前主动告诉我的内容。

举个具体的例子吧。

例如,上面这节课所讲的主题是量子力学和经典力学的边界。

那我就可以让这个视频告诉我,我要学习这节课,首先我应该:

  1. 了解量子力学基础概念(如态矢量、薛定谔方程)
  2. 熟悉经典力学与概率论基本原理
  3. 对测量问题有初步认识

那我就能知道,如果我对这些东西没有了解,那我大概率是听不懂这节课的。所以我就可以去提前的了解相应的预备知识。

同时看到初学学习建议,我也就知道我在看这个视频的时候,我要重点去听细菌、碳60实验等几个‘大小并非边界决定因素’的直观例子,关于部分迹操作导致量子性丧失这一部分的内容我就可以有意识地反复观看,以求理解。

大纲→解读→详解,实际上是关于这堂课内容的几个不同颗粒度的拆分

通过大纲,我可以快速地导览这堂课里面讲的每一个知识板块,我可以通过直接点击跳转到对应的视频内容;而在详解,我让 AI 详细地复述视频的内容,力求让我甚至在不看视频的情况下,都能通过文本理解这段具体说了什么。

而左侧的时间地图,更多会是一个可以用于复习之类场景的快捷滑动导览。它的分块大致等同于大纲的 L2,但又带了该段内容的简单摘要。如果你觉得初学阶段不太需要的话,也可以点击这个区块右上角的折叠按钮,把它折叠起来。

以上就是在一个独立视频处理流程中大致会用到的功能。

处理过多个独立视频之后,视频课程越积累越多,就需要一些管理功能了,于是我提供了一个课程库,用于简单的课程管理。

你可以把处理过的所有视频整理成三个级别,独立的视频可以组成专辑,多个专辑可以归入分类。专辑中的视频和分类中的专辑,都可以通过上下移动来进行排序。

点击上图红色箭头指向的按钮,就可以新建专辑和分类

新建按钮左边的按钮,可以批量管理视频源的绑定,如果你跟我一样喜欢把本地视频扔在 NAS 上,这个功能对你来说应该还是一个挺方便的功能。

在左边的两个按钮分别是导入和导出课程包

没错,这是一个分享功能。

咱们一份视频不花两份冤枉 Token,你可以把校对过的字幕和生成好的学习地图导出来,发给你的朋友。

注意,导出来的会是个不大的 JSON 包,像这样:

https://share.playai.ren/d/the-ai-novice-and-the-ai-power-user-6.course-nav.json

(↑这是真的课程包,就是那套《给所有人的AI提示词》公开课,你真的可以拿去导入)

如果原课程视频是在线视频的话,那么会保留原来的链接,你的朋友导入以后直接打开就可以同时看到视频和学习地图;但如果原课程视频是一个本地视频或者 NAS 视频的话,默认是会去除掉你本机或者 NAS 的路径信息的,这个时候就会用到前面的那个管理视频源绑定的功能。

核心功能基本就上面这么多了,还有一些像是中英文界面、模型和下载的参数配置以及怎样安装等等细枝末节的东西可以直接查看项目 GitHub 页面的 README 文档。

哦,对了。

提醒一下,虽然这个项目名字叫做视频学习工作台,但其实也可以导入其他类型的视频,比如说产品推荐和选购相关的:

或者导入一些奇奇怪怪的不可以学习的视频,AI 会按照学习的视角来分析,最后有可能得到一些奇奇怪怪又很有趣的东西。这类的玩法,就靠各位自己去探索了。

另外,实际上我还做了一个方便移动学习的 iOS App,我自己在 iPad 上面用着,长这样:

这个 APP 砍掉了所有 AI 生成相关的功能,它的作用就是连接到电脑上 Course Navigator 的服务端查看已有的视频和学习地图。

并在此基础上添加了把视频和学习地图缓存到iOS APP 并启用本地模式的功能。也就是说,这个 iOS APP 不支持新建视频课程和生成新的学习地图,但可以把你在电脑上已经导入和处理好的课程缓存下来,甚至可以在断网的情况下查看。

于是学习就不再受到空间的限制,不管是趴着学还是躺着学,随你心意。

不过 iOS APP 没有办法像 Mac APP 一样,在没有开发者账号的情况下打包分发给别人使用。如果你用得到的话,可以直接让 Codex 或者 Claude Code 帮你从源码构建 App 并安装到自己的设备上:

https://github.com/Liu-Bot24/course-navigator/tree/codex/ipad-ios-app

放暑假了,学得愉快~