O que 视频学习笔记 faz?
读取用户选定的材料,整理概念、步骤、案例和结论,明确作者观点与 AI 补充。先说明实际取得的材料和范围,再报告内容,不把下载成功、字幕时长或转录完成等同于语义核验。
确认输入与输出位置
确认单个视频、选中分 P 或本地文件;合集范围不明确且影响任务时再询问。保留原始来源链接和规范链接,去除无关跟踪参数。
用户原文件只读。每次在当前工作区创建唯一的 work/video_tmp/<任务ID>/,保存媒体、检查点和临时画面,同一目录只允许一个写入进程。改变来源、模型或语言时新建任务目录;同一任务的有效重试复用原目录。
只检查本次要用的环境,命令见环境说明。优先保存到用户指定笔记目录;未指定时使用已有、可写的 Obsidian 视频笔记目录,否则使用当前工作区 outputs/。同名产物加唯一后缀,不覆盖。
获取可信材料
| 来源 | 首选路线 | 缺少可信字幕时 |
|---|---|---|
| B站 | 公开接口或已连接且获授权的字幕工具 | 已配置的 bili audio --no-split -o <task_dir> 或其他获授权工具 |
| YouTube | yt-dlp 获取选中语言的所需字幕 | 获取音轨,只有需要画面时再取视频流 |
| 其他网站 | 现有平台工具或 yt-dlp | 根据实际失败切换支持的获取路线 |
| 本地音视频 | 已有字幕 | 对原文件运行转录脚本 |
核对视频标识、分 P、语言、字幕是否为空和明显缺段。字幕覆盖不能证明逐句正确,正常片尾静音也不直接算缺失。
先用公开材料,不默认提取浏览器 Cookie、登录或新增渠道。相同失败最多做两次有明确变化的尝试;不循环重试、改代理或把连接失败写成视频不存在。受阻时保留已有材料,说明缺口。
按需转录音轨
没有可信字幕时,先阅读转录命令,再使用 transcribe.py:
- 明确选择模型,优先已有缓存,运行
--pilot试转录第一分钟,检查语言、内容与速度。 - 试读可用后运行相同命令并去掉
--pilot,由检查点继续完整处理;没有缓存时,确需下载才加--download-model。 - 读取完整
transcript.json,检查空语音、异常重复、needs_review、关键术语和数字;重要引用位于分钟分块边界时回听跨边界片段。
脚本以 16 kHz 单声道 PCM16 和 NumPy 输入识别器,按分钟保存检查点。completed: true 只表示处理范围已被消费,不证明识别准确。不要静默切换小模型,也不要为导入模块而下载模型。
只跑一条完整主识别路线;先验证小段材料,再决定是否切换。不默认同时对整片做 ASR 和 OCR,后台单次等待不超过 60 秒,并报告有意义的进展。
核对关键画面
先读画面选择说明。有章节时按章节定位,没有章节时按主题转换建立分析者划分。用少量概览定位,再提取必要的清晰画面。
代码、公式、表格、设置和操作步骤不能仅靠语音转述。相似画面有独有信息时保留,不用固定截图数量代替完整性判断。
OCR 只用于图中文字核对或无可用音轨时的备用路线。先试读代表画面,避免把字幕、正文和水印混为口述内容。低清、遮挡或无法辨识的公式标明具体时间缺口;无声视觉视频说明采用视觉阅读,不虚构语音转录。
写笔记与证据
默认包含标题、来源、时长、实际材料、摘要、主题要点和关键时间点;用户要求或视频适合操作复用时,再整理工作流、输入、步骤、输出与完成条件。不默认附整段逐字稿。
区分原视频事实、作者观点与案例、AI 补充。作者演示的速度和数量不写成普遍保证。明确已处理范围及影响理解的缺口,不把“有全片字幕”写成“全片音轨逐句核验”。
截图保存到持久附件目录,以 Markdown 图片链接嵌入。笔记、附件和同名 .evidence.json 都不能依赖临时媒体目录。证据只保留必要片段、时间范围、关键细节和核对记录,格式见证据说明。
验证与清理
先回读材料、笔记和附件,核对各章节主要概念、方法、案例、结论,以及重要名称、数字、公式与步骤。证据中如实记录检查范围和未解决项;静音或重复段可以说明无实质内容,不虚构摘要填时间轴。
再运行 finalize.py 检查来源、章节、完成状态、持久文件与缺口。脚本只验证记录和文件,不代替内容审阅,不能为了通过检查而伪填 reviewed 或 passed。
只有选中材料已处理、内容核对通过、持久文件回读成功后才加 --clean。清理仅限当前工作区 work/video_tmp 的一个直接子目录,并拒绝目录及子项中的符号链接、junction 或重解析点。原文件、模型缓存与持久产物不删;失败或仍有未补缺口时保留媒体和检查点。
收尾给出实际材料与处理范围、笔记位置、清理结果和限制。短片试读、静态检查与导入成功均按真实范围报告,不能当作全片验收。