lecture-to-notes: 用 AI 将视频讲座自动转换为 LaTeX 讲义
我们开源了 lecture-to-notes —— 一个 Claude Code / Codex skill,可以将 YouTube 和 Bilibili 的讲座视频自动转换为专业的中文 LaTeX 课程笔记并编译为 PDF。
动机
看完一个 90 分钟的讲座,你还记得多少?手动记笔记太慢,纯转录又没有结构。我们想要的是:从视频 URL 一键生成结构化、带配图、高信息密度的 PDF 讲义。
核心特性
- 多平台支持:YouTube 和 Bilibili(自动识别 URL)
- 字幕四级回退:CC 字幕 → YouTube 自动字幕(自动去重)→ Whisper 语音转写 → 纯视觉模式
- 图文三方验证:每个配图写入前必须通过「帧画面 + 字幕内容 + 描述文字」三方一致性检查
- 数学公式支持:准确转写 PPT 中的数学公式为 LaTeX display math
- 高信息密度写作:结构化章节、教学信号盒(核心概念/背景知识/常见误区)、时间溯源脚注
工作流
1 | 视频 URL |
已生成的讲义
目前已经处理了 8 个视频讲座,共计 112 页 PDF:
南京大学 · 操作系统原理 2026(蒋炎岩 jyy)
| 讲次 | 主题 | 页数 |
|---|---|---|
| 01 | 绪论:Agentic AI 时代的操作系统课 | 18 |
| 02 | 应用视角的操作系统 | 17 |
| 03 | 硬件视角的操作系统 | 14 |
| 04 | LLM, Agents 和 Scaling Law (Aside) | 12 |
| 05 | 程序和进程;fork, execve, exit | 13 |
| 06 | 进程的地址空间;mmap, munmap, mprotect | 10 |
YouTube 讲座
| 讲座 | 讲者 | 页数 |
|---|---|---|
| Multi-level Optimization for Nonlinear Energy Systems | Dr. Larry Biegler (CMU) | 16 |
| Rheology Principles and Applications | Mark Patrick Ph.D. | 12 |
技术栈
- yt-dlp:视频/字幕下载
- ffmpeg:帧提取
- Whisper(openai-whisper):语音转写
- xelatex + CTeX:LaTeX 编译
- Claude Code:AI 驱动的内容生成和图文验证
遇到的问题和解决方案
1. Whisper 输出文件丢失
Shell 工作目录在后台任务之间被重置,导致 SRT 写入错误位置。解决:所有后台命令使用绝对路径。
2. 图文不匹配(~40%)
早期版本中约 40% 的图片时间戳或描述与实际内容不匹配。根因:时间戳是估算的,描述是从章节标题推断的。解决:加入 Stage 4 图文三方验证——帧画面 × 字幕内容 × 描述文字三者必须一致。
3. YouTube 自动字幕重复
YouTube auto-subs 每句话重复 2-3 遍。解决:写了 clean_subs.py 脚本自动去重(通常去除 50%)。