关于 youtube-render-pdf
youtube-render-pdf 是一项面向学习者的技能,可将 YouTube 视频整理为中文讲义,并生成可编译的 LaTeX 文档和 PDF。它强调按教学逻辑重组内容,并结合封面与有助于讲解的关键画面。
主要功能
- 01生成中文教学讲义
- 02按教学逻辑重组视频内容
- 03将关键画面作为插图
- 04生成完整 LaTeX 文档
- 05编译并交付 PDF
适用场景
- 01把在线讲座整理为可读讲义
- 02将长视频内容分段整合
- 03用关键画面辅助解释公式或图表
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ wdkns/ wdkns-skills --skill youtube-render-pdf安装后在 Claude Code 中输入/youtube-render-pdf确认已加载。
附带文件agents/openai.yamlassets/notes-template.tex
详细介绍
YouTube Render PDF
使用此技能,将 YouTube 视频转换为完整、可编译的 .tex 笔记和渲染后的 PDF。
目标
根据 YouTube URL 生成一份专业的中文讲义。
输出必须:
- 使用视频中实际讲授的内容,而不只是转录字幕
- 如果有视频原始封面图,则将其放在
.tex和渲染后 PDF 的首页 - 将所有必要且有价值的关键帧作为插图,避免添加重复截图
- 以最终总结章节收尾,其中既要包含讲者实质性的结语讨论,也要包含你提炼的要点
- 使用
\section{...}和\subsection{...}进行结构化组织 - 是一份从
\documentclass到\end{document}的完整.tex文档 - 作为最终交付的一部分,成功编译为 PDF
教学标准
笔记应体现优秀教师引导读者学习材料的方式。
- 组织每个主要章节,让读者先理解学习动机,再了解核心思想、运行机制、示例或证据,最后掌握要点
- 耐心清晰地阐释逻辑过渡;说明讲者为何引入某个概念、它解决了什么问题,以及后续内容如何由此展开
- 力求深入而易懂:保留技术深度,但先用直白的语言介绍直觉,再引入形式化表达
- 内容较密集时,将其拆分为逐步构建理解的小节,而不是把所有内容压缩成冗长的推导
- 不要按时间顺序堆砌字幕内容;应将其改写为有明确目的、对比和递进关系的教学内容
获取素材
-
先检查视频元数据。 优先获取标题、章节、时长、缩略图可用性和字幕可用性。
-
优先选择最适合提取插图的视频源。 探测可用格式,并选择当前环境中实际可下载的最高分辨率。
-
编写
.tex之前,先获取视频原始封面图。 优先使用平台元数据中提供的最高分辨率缩略图。 将选定的封面图保存到本地,并在首页引用该本地素材。 如果有官方封面图,不要用随意截取的视频帧替代。 -
优先选择最匹配的字幕轨道。 如果手动字幕和自动生成字幕都可用,优先使用手动字幕。 优先选择与视频内容或用户要求语言最匹配的默认语言。 只有在必要时才使用最接近的可用字幕轨道。 保留字幕时间戳;在仍需定位插图时,不要过早将字幕整理成纯文本。
-
在实际可行的情况下,将所有素材文件保存在本地。 常见的工作素材包括元数据、下载的封面图、带时间戳的字幕文件、可选的清理后转录文本、本地视频文件和提取的视频帧。
长视频策略
处理较长的视频时,不要依赖一次性完成的单体处理流程。
- 如果视频时长超过 20 分钟,或字幕文件包含超过 300 条字幕,则应将工作拆分为较小的片段。
- 拆分时优先采用章节边界。如果没有章节,或章节长度差异过大,则按连贯的时间段或字幕范围拆分。
- 如果有可用的子 Agent,应并行启动多个子 Agent 处理不同片段,以保持较高的覆盖率,避免丢失细节。
- 为每个子 Agent 指定明确的片段边界,并要求其返回:该片段的教学目标、核心论点、重要公式或代码、附带时间出处的必要图示,以及需要在整合时解决的任何歧义。
- 如果讲解跨越相邻片段的边界,应让片段之间保留少量重叠,然后在整合时去重。
- 主 Agent 必须将各片段的输出整合成一份统一的大纲和连贯的最终叙述。最终 PDF 应读起来像一份完整的讲义,而不是若干片段摘要的拼接。
教学内容规则
在可用的情况下,综合以下所有内容来编写笔记:
- 视频标题和章节结构
- 视频原始封面图和关键元数据
- 屏幕上展示的图表、公式、表格、绘图和架构幻灯片
- 字幕中的讲解、示例和口头强调
- 访谈、圆桌讨论、播客或对话类视频中简短且信息密度高的原始对话片段,前提是原话能增添临场感、幽默感、直觉理解或特别精炼的信息
- 演讲中展示或描述的代码片段
跳过对实际课程内容没有帮助的部分:
- 问候语
- 闲聊
- 不增添信息、张力、幽默感、直觉理解或教学价值的常规对话
- 赞助内容
- 频道相关事务
- 结束寒暄
如果演讲者在结尾的讨论包含实际教学价值,例如总结、局限性、未来工作、权衡、建议或开放问题,则应予以保留。
写作规则
-
除非用户明确要求使用其他语言,否则笔记应使用中文撰写。
-
使用
\section{...}和\subsection{...}组织文档。 必要时重构教学流程;不要盲目照搬字幕顺序。 在适用时,每个部分都应依次回答:要解决什么问题、更简单的视角为何不足、核心思路是什么、它如何运作,以及读者应记住什么。避免过度使用“不是……而是……”的句式。 仅当视频本身确立了真实的对比,且该对比能实质性地帮助解释机制时才使用。
避免含糊或过于抽象的表述。 尽可能用具体机制、示例、变量、步骤、观察到的现象、时间戳、图示或演讲者提供的证据来支撑论述。
-
从
assets/notes-template.tex开始。 填写元数据块,包括本地封面图片路径,并用生成的笔记替换正文内容块。 -
如果有视频原始封面图,首页必须包含该图片。 将封面图放在第一页,不要埋在文档后面的部分。 封面图应与正文教学图示在视觉上有所区分。
-
在图示能显著改善讲解效果时使用图示。 为确保教学清晰,应按需添加足够数量的图示,即使这意味着文档中会包含许多图示。 不要为了减少图示数量而优化;应优先保证讲解覆盖面和可读性。 合适的图示包括关键公式、示意图、表格、绘图、视觉对比、流水线调度、架构视图以及分阶段的视觉演进图。
-
不要将图片放在自定义消息框内。
-
出现数学公式时: 先用通俗的中文解释公式要表达什么,以及为什么会出现该公式 使用
$$...$$以独立公式的形式展示 然后紧接着用一个扁平列表解释每个符号 -
出现代码示例时: 在代码清单前说明代码的作用;如有帮助,在清单后概述预期行为 使用
lstlisting包裹代码 添加描述性caption -
当内容确实值得强调时,有意识地、反复突出教学重点: 对读者必须掌握的核心概念使用
importantbox,包括正式定义、核心论点、关键机制概述、类似定理的陈述、关键算法步骤,以及对复杂解释中主要思想的简洁重述 对有助于理解但并非主线的背景和补充知识使用knowledgebox,包括前置知识提醒、历史脉络、工程背景、设计权衡、术语对比,以及帮助建立直觉的类比 对常见误解和易出错之处使用warningbox,包括符号混淆、隐含假设、容易误导的经验法则、容易犯的实现错误、因果混淆、类似差一错误的推理失误,以及讲者对比错误直觉与正确理解之处 仅在对话较多的视频中使用dialoguebox,且仅当简短的原始对话片段信息量大、有趣、生动或特别直观,并且保留讲者原话能让读者更有身临其境之感时使用dialoguebox可以包含一轮对话,也可以包含几轮紧密相连的对话,例如提问、追问、质疑、澄清和回答 保持dialoguebox片段简短:保留说话者标签和具体时间戳或时间范围;只有在确信的情况下才轻微修正明显的 ASR 错误;并在文本框后用正文说明该对话片段的重要性 不要将dialoguebox用于问候、填充语、长篇转录内容,或用普通概述更清楚的对话 每个章节的文本框数量不设上限;如果内容包含多个不同的教学重点,就添加多个文本框 每个文本框都应承载具体的教学价值,而非泛泛强调 尽量将文本框放在引出它的段落、推导或示例之后 常规讲解应保留为普通正文;文本框用于突出高价值内容,而非装饰 图示必须置于importantbox、knowledgebox、warningbox和dialoguebox之外 -
每个主要章节末尾都添加
\subsection{本章小结}。 如果有一两个值得推荐的外部链接,则添加\subsection{拓展阅读}。 -
文档末尾添加一个最终顶层章节,例如
\section{总结与延伸}。 该最终章节必须包括:
- 讲者实质性的收尾讨论,不包括常规告别语
- 你对核心论点、机制和实际影响的结构化提炼
- 扩展性的综合总结,包括概念压缩、章节间的联系,以及忠实于视频内容的谨慎概括
- 有依据时提出具体的要点、开放问题或后续步骤
- 不要在 LaTeX 中输出任何
[cite]形式的占位符。
图示处理
根据必要性和教学价值选择图示,而不是依据任意配额或偏好让文档看起来更简洁。
查找候选帧时,应优先保证召回率,而非精确率。 一开始多检查一些附近的候选帧,总好过错过那张幻灯片、公式、表格或示意图终于完整显示且清晰可读的帧。
必须通过直接查看图像来理解帧的内容。
- 在决定候选帧展示了什么、应如何描述以及是否足够完整以供纳入之前,使用
view image工具检查候选帧和裁剪图。 - 不要用
tesseract等 OCR 工具代替对帧的视觉理解。 - 不要只根据附近的字幕、文件名或时间戳推断帧的语义内容,而不检查图像本身。
- 联系表、蒙太奇和拼接条有助于提高召回率,但最终的保留或舍弃决定以及语义命名必须基于使用
view image对实际图像的检查。
帧选择检查清单
插入任何视频帧之前,先检查同一字幕对齐区间内的多个相邻候选帧,并按此清单进行评估。若有任何一项不符合要求,就舍弃该帧,继续查找附近的候选帧,而不是勉强使用近似匹配的帧。
- 相关性:该帧必须直接支持周围段落或小节讨论的具体概念,而不仅仅是涉及同一宽泛主题。
- 所需内容清晰可见:文本中提及的所有视觉元素都必须已在该帧中可见。
- 完整呈现状态:如果幻灯片、白板、动画或仪表板是逐步呈现的,应使用内容完整、清晰可读的最终状态,而不是中间状态。
- 附近最佳候选帧:比较多个相邻帧,优先选择内容最完整且最清晰可读的帧。
- 可读性:文字、公式、标签和示意图结构必须清晰易辨,足以支持将其纳入。
帧命名
-
为原始候选帧使用基于时间戳的中性名称。在检查实际帧内容之前,不要赋予语义名称。
-
只有在通过视觉确认图像中完整可见的内容后,才为帧赋予语义名称。
-
语义文件名必须描述帧中实际可见的内容,而不是根据字幕、附近的讲解或预期段落主题进行猜测。
-
如果帧只显示了部分内容、处于过渡状态或含义不明确,就继续查找,不要过早确定语义名称。
-
使用带时间戳的字幕文件作为搜索关键帧的主要定位依据。
-
首先确定与所讨论的概念、示例、公式或视觉讲解对应的字幕时间段。
-
然后在与字幕对齐的时间区间内搜索,必要时也稍微搜索区间边界附近,以找到最清晰易读的帧。
-
不要直接从一个猜测的时间戳跳到一张提取的帧。 先在相关时间区间内密集生成一组候选帧,再检查并筛选。
-
优先使用能一次查看多个相邻候选帧的工具,例如
magick montage、联系表、平铺帧条或同类工作流。 使用这些工具提高召回率,避免错过视觉内容完整呈现的帧。 -
如果视觉内容是逐步展示的 PPT、动画构建、白板内容累积或仪表板状态变化,要明确搜索内容完全呈现的最终状态。 不要停留在第一张看起来大致正确的帧。
-
如果多个相邻候选帧的差异只是逐步展示的状态,就继续检查,直到找到信息最完整且清晰易读的帧。
-
如果同一讲解时段中较早的稀疏帧与较晚的密集帧难以取舍,且后者内容明显更完整、仍然清晰易读,则优先选择较晚的帧。
-
纳入充分解释内容所必需的所有图示。
-
在一个章节或小节中加入多张图示是可以接受的,而且在视频分阶段展开一个想法时通常更理想。
-
省略重复或信息量低的帧。
-
如果视频有章节边界,则在章节边界和讲解重点处提取帧,但仍须根据字幕时间进行验证。
-
如果首次提取的帧捕捉到的是动画过渡状态,就搜索附近的时间戳。
-
如果完整画面范围过大,就裁剪、放大或单独提取相关区域。
-
如果幻灯片内容逐步呈现,截取最终清晰易读的状态;只有在中间帧展示了真正不同的步骤时,才添加中间帧。
-
对于视觉内容密集的部分,可以先多采样,再进行删减。 不要过早控制候选帧数量,以免错过关键视觉状态。
-
优先使用一组必要的图示,而不是一张标签难以辨认、信息过载的图示。
-
确保公式和标签清晰易读。
图示时间来源
每当 .tex 或 PDF 引用某个特定视频帧或由视频帧裁剪而来的图像时,都要在同一页的页脚注明其来源时间区间。
- 页脚必须注明具体时间区间,例如
00:12:31--00:12:46。 - 时间区间应取自用于定位图示的、与字幕对齐的片段,而不是模糊的章节级估算。
- 如果图示是裁剪图,页脚仍应注明源帧或字幕片段在原视频中的时间区间。
- 如果一张图示中的多个相邻帧都来自同一字幕区间,添加一个清晰的页脚说明即可。
- 将图示和时间页脚固定在同一页;当普通浮动体可能导致两者分离时,优先使用
[H]、非浮动区块或其他稳定的排版方式。
可视化
对于仅靠截图和文字难以解释清楚的概念,请添加准确的可视化内容。
有两种可接受的方式:
- 使用 TikZ 或 PGFPlots 生成原生 LaTeX 可视化内容
- 使用脚本提前生成图示,并将其作为图片插入
对于通过脚本生成的插图,如果 matplotlib 和 seaborn 等 Python 工具是制作准确教学图示的最清晰方式,请优先使用这些工具。
如果可视化内容是通过外部工具生成,而非在 LaTeX 中原生绘制:
- 将图示导出为
pdf,以便插入.tex时不会因栅格化而损失画质 - 绘图、图表和示意图优先使用矢量输出
- 除非内容本身具有栅格特性,否则避免使用
png或jpg作为脚本生成的教学图示
如果源材料包含的关系、结果或方程式,通过重新绘制比截图展示更清晰,请优先使用原生 LaTeX 工具或 matplotlib / seaborn 重建。
以下内容适合使用可视化:
- 流程、管线和架构概览
- 曲线和图表,例如缩放定律、训练曲线、基准测试结果和消融对比
- 用于说明数据关系的分布、相关性、热力图和其他图表
- 复杂函数、曲面、等高线图和几何直觉图
- 重新绘制成图表后更清晰的表格或对比内容
- 能将某一节的核心机制或要点浓缩为一张图的总结示意图
不要添加没有教学作用的装饰性图形。
最终检查清单
交付前,请确认以下各项:
- 没有遗漏重要的教学内容;在压缩、重组或总结过程中,没有丢失具体但关键的细节
- 文字和图示相互对应:每个插入的帧都能支撑周围的说明,已裁剪必要内容,并且所选帧展示的是最完整的相关信息,而非过渡状态或不完整画面
- 文档的视觉内容足以支持教学:检查是否应添加更多信息量高的关键帧,以及添加原生 LaTeX 或 Python 脚本生成的插图能否提升清晰度
交付
请交付以下所有内容:
- 首页引用的已下载封面图片
- 文档引用的所有提取或生成的图示素材
- 最终
.tex文件和编译后的.pdf文件(必须使用合理的中文文件名,例如[中文视频标题]_notes.tex和[中文视频标题]_notes.pdf)
素材
assets/notes-template.tex:默认 LaTeX 模板,请复制并填写