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
2
3
4
5
6
7
视频 URL
├─ yt-dlp ──→ 元数据 + 封面 + 字幕 + 视频
├─ ffmpeg ──→ 按章节密集帧采样 (1帧/15秒)
├─ contact sheet ──→ 审查筛选高价值帧
├─ verify_figures.py ──→ 图文三方验证
├─ 基于模板生成 .tex ──→ 结构化中文讲义
└─ xelatex ×2 ──→ 最终 PDF

已生成的讲义

目前已经处理了 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%)。

链接