前言
现在好像没啥时间看网课了……如果把网课转成 Markdown 格式就可以快速领会网课精神,也可方便拿网课文档与 AI 对线!
资源
-
从 B 站下载视频:Releases · iuroc/bilidown
正文
想法是将网课视频下载到本地,用 Whisper 识别网课中的字幕,再隔一段时间从网课视频中截图,最后将字幕文本与截图合并成 Markdown。
Vibe Coding 一个这样的环境,由于 Whisper 可以本地 GPU 推理,向 AI 强调一下一定要用 GPU;由于 Whisper 可能下载不下来,向 AI 强调一下可以将本地路径作为模型路径。
环境配置:
uv sync| 参数 | 默认值 | 说明 |
|---|---|---|
-i, --input-dir | — | 输入视频目录,支持 .mp4/.mkv/.avi/.mov;--markdown-only 模式可不填 |
-o, --output-dir | (必填) | 输出根目录 |
--model | tiny | Whisper 模型名 (tiny/base/small/medium/large) 或 .pt 模型文件路径,如 models/medium.pt |
--device | 自动检测 | cpu 或 cuda |
--language | 自动检测 | 语言代码,如 zh。中文课程自动识别 |
--interval | 120 | 截图间隔(秒),可设为任意正整数,如 30、60、300 |
--force | — | 重新处理所有视频(忽略已存在的输出) |
--markdown-only | — | 仅从已存在的 SRT + 截图重新生成 Markdown(无需 -i) |
开跑示例,tiny 模型效果不太行,medium 模型足够用了:
# 自动检测 GPU/CPU,每2分钟截一张图
uv run video2notes -i "D:\Videos\我的课程" -o "D:\Output\我的课程"
# 指定模型和 GPU
uv run video2notes -i "D:\Videos\课程" -o "D:\Output\课程" --model medium --device cuda
# CPU 模式(适合 8GB 以下显存)
uv run video2notes -i "D:\Videos\课程" -o "D:\Output\课程" --model tiny --device cpu
# 自定义截图间隔(每30秒一张图)
uv run video2notes -i "D:\Videos\课程" -o "D:\Output\课程" --interval 30一阵计算后,得到相应的字幕、截图和合并后的笔记,有空慢慢看(或是拿去与 AI 对线)吧:
似乎目前的大模型能够识别视频的关键帧并截图,这也许比目前的固定时间截图来说更合理一些,不过看的网课视频的 PPT 是可获取的,截图仅作为文本的协助定位,这个逻辑也说得过去。
還會把台灣老師講的課識別成繁體字,真的很棒棒喔!