--- name: lzheng-video-lessons description: 将抖音或本地健身教学视频核对为有起止点的分段课程,用直接教读者怎么做的详细解释生成播放器,接入现有知识库并按用户授权完成发布和线上验证;支持复用更新,不把视频建议自动写成个人训练处方。 --- # Lzheng 分段视频教学 用户给链接或本地视频并要求“分段讲解、知识库教学、接入健身系统”时使用。沿用当前用户的素材、目标与发布授权,不要求重新确认已有决定。创建 Skill 本身不代表发布新课程。 ## 1. 获取并核对来源 优先复用已核对的媒体、转写和时间戳;有 `lzheng-video-learning` 时用它的获取/转写工具,个人环境也可用已安装的 `douyin-question-distiller`。没有这些工具时接收用户本地视频和转写,保留同样数据契约。不要绕过登录、验证码、付费或访问限制;同一临时媒体地址失败最多重新获取一次,失败条目记录原因,继续可独立完成部分。 在用户 workspace 中保存来源 URL、作品 ID、讲者/上传者、时长、媒体哈希、转写和关键帧。运行材料不得进入 Skill 或公开仓库。逐段核对时间、数字、单位、动作版本与否定词;只做过机器转写/抽帧就如实写明,不声称逐字听校。 ## 2. 编写章节 读取 [讲解与数据契约](references/lesson-contract.md)。章节必须有精确 start/end、稳定 ID、目标、详细步骤与步骤时间点。分段按教学意义,不固定章节数、不等分时间。允许未收录片段,但要在 coverage_note 说明;章节不能重叠、越界。 正文直接讲“你怎么准备、怎么做、为什么、怎样判断、哪里容易错”,不用“作者演示了/他说了”代替解释。署名和证据放来源区。不要补造片中没有的组数、重量或通用结论;来源建议与额外解释分开标注,存疑处保留待核对。 ## 3. 生成可试用课程 `python scripts/lesson.py validate --input ` 核对通过后:`python scripts/lesson.py build --input --out <新课程目录> [--media --poster ]` 工具只接受新输出目录,避免覆盖已有课程和学习笔记。更新使用同一 lesson.id/chapter.id 并生成新版本目录,验收后替换注册入口,保留旧版便于回退。默认只链接原视频;复制媒体需要 lesson.json 记录 media_rights_basis。开源包不附带原视频、截图、完整转写或私人资料。 播放器保持黑白、单列浮动目录、编号步骤、原片起止时间、到终点暂停、重播/循环、步骤跳转、按课程保存本机笔记。缺少媒体明确显示“仅原视频链接”,不留假播放器。真实媒体必须验证可解码、非黑屏、拖动与片段终点;浏览器后台限流时不承诺逐帧剪辑精度。需要独立片段文件时可由 ffmpeg 导出,但默认复用单原片的时间窗口,避免重复占用空间。 ## 4. 接入与复用 `python scripts/lesson.py integrate --html <工作台.html> --lesson <课程目录> --backup-dir <备份目录> [--apply]` 先预检,已获接入授权再 apply。课程必须位于工作台目录树内。只按稳定 ID 更新 `knowledge-lessons-data`;支持现有个人工作台 UI,其他模板安装通用知识库对话框。保留 `workbench-data`、账号配置和已有知识;不自动匹配相似动作,精确动作联动交给现有适配器,需逐个核对变式。 ## 5. 验收与发布 读取 [接入与发布](references/integration-release.md)。先完成本地检查与可审阅页面。已授权发布就继续现有发布器;未授权仅给预览,不把“入库”推断成上传许可。媒体再分发范围与代码许可分别判断。 发布需包含课程 HTML、chapters.js 和授权媒体/海报;以依赖清单为准。不得让公开匿名工作台夹带私人课程。上线后逐文件 HTTP/哈希核验,并实际打开知识库、选段、播放/终点、返回。分别记录 source_verified、lesson_built、integrated、release_prepared、deployed、online_verified;脚本完成不等于用户已学会或练过。