影视解说成片 Skill
版本:0.2.0;创作协议:film-recap-content/1。执行前读取本目录 AGENTS.md。
任务与交付模式
先从用户请求判定交付对象,不把“分析”扩大为配音或渲染:
| 用户目标 | 做到哪里 | 本地入口 |
|---|---|---|
| 分析人物、主线与高光 | 给出证据、候选与不确定点 | --until highlights |
| 只要解说方案 | 主线、开头、Beat、剧透策略、声音预算 | --until plan |
| 只要可编辑分镜 | Storyboard 与可读脚本;不宣称已生成成片 | --until storyboard |
| 完整制作/最终文件 | MP4、SRT、EDL、决策文件与质量报告 | 完整 run |
用户明确要求完整制作时持续执行;现有授权可以复用。仅在必要信息、能力、权限或预算阻塞时暂停受影响步骤,其他工作继续。普通风格缺省项自动推断并记录,不逐步确认。
本 Skill 是本地 Python/FFmpeg 执行入口。用户指定 ChatCut 时,使用账号中的 ChatCut 版及当前 Desktop 工具,保留可编辑项目,不将本地合成视频冒充原生时间线。
创作目标与约束
核心协议见 创作与接管协议。必须做到:
- 人物、关系、事件与因果可回到源片证据;外部剧情资料只辅助,不能覆盖素材。
- 分开源片、故事发生、原片揭示与成片四条时间轴。钩子服从已选剧透策略,不能用最高分自动替代可前置资格。
- 高光包括冲突、反击、动作、台词、表演、情绪、揭示、悬念、喜剧、奇观、人物选择与关系变化;只保留对当前作品有用的类型,不追求凑齐分类。
- VO 压缩背景、跳时和过程;原片保留完整台词、动作、反应、停顿与视听价值。VO 不抢下一段最强台词,不重复刚说完的事实。
- 镜头用途清晰:直接举证、上下文、反应或转场。普通 VO 配画从已分析单元选择,不凭事件宽时间范围编造画面。
- 保护源素材与用户已修改片段;局部修改只重做受影响内容。新任务可建工作副本,恢复同一作品不应反复从头生成。
输入与默认值
优先从现有上下文获取:素材范围、内容单位、核心问题/视角、目标时长、画幅、剧透策略、旁白偏好、必须保留片段和交付对象。可选 project.editorial_brief 记录明确的创作意图,不要求用户填表。
- 缺省画幅:1080×1920、30fps;横屏优先
safe_fit_blur,保护关系、动作空间和关键道具。 - 内容单位与时长分开:
highlight为 30–90 秒;保留既有short3–6 分钟、standard6–10 分钟、deep10–20 分钟的兼容语义。实际配置以config.example.yaml为准。 - 题材默认值是可调整建议。优先级为用户显式设置 > 题材预设 > 通用默认;规划和 QC 读取同一份已解析约束。
- 多集可作为同一作品分析;当前本地运行一次交付一个成片/Part。用户要求每集分别制作时,逐集建独立工作目录,不合成一条后宣称批量完成。
- 输入字幕优先精确同名。允许明确语言后缀,歧义必须暴露,不能把相邻集字幕当成当前集。字幕变化属于输入变化。
运行与恢复
在已安装依赖的 Python 3.11+ 环境中:
python -m douyin_film_recap doctor --config config.yaml
python -m douyin_film_recap run "/path/to/source" --work-dir "./work/project" --config config.yaml
先按当前交付模式检查必要能力。完整制作需要 FFmpeg/ffprobe、配置的 LLM/VLM、字幕或 ASR、TTS;烧录字幕需要 libass。缺失能力如实阻断或降级,不静默替换 Provider。
恢复沿用原工作目录。源视频、字幕、可信上下文或有效配置改变时失效相应结果;上游重算后不能沿用旧的下游 QC。人工编辑中间文件后明确从受影响的下游阶段继续,例如修改 Storyboard 文案后 --from-stage tts,保留已修改的 Storyboard。
09_storyboard.json 是剪辑执行依据;其中素材身份必须与已索引清单一致。运行状态、阶段快照和最终文件校验不能代替用户创作决策,也不能把旧 QC 绑定到新文件。
阶段与按需参考
| 阶段 | 必须留下的决策/证据 | 参考 |
|---|---|---|
| ingest / transcript / scenes | 源身份、字幕选择、时间来源、场景单元与抽帧 | 执行与恢复、Provider |
| scene_analysis / story | 人物、事件、因果、知识变化、证据等级与冲突 | 故事理解 |
| highlights | 高光类型、上下文、最小完整边界、保留/淘汰原因 | 高光分类 |
| plan / storyboard | 观众承诺、主线、钩子、Beat 变化、镜头用途、声音所有者 | 格式、节奏 |
| tts / pre_qc | 按段音频、真实时长、可靠字幕映射、来源与时长合法性 | 质量门禁 |
| render / post_qc / delivery | 实际消费镜头、MP4/SRT/EDL、QC 证据与最终状态 | 执行与交付 |
低成本索引覆盖全部素材;长镜头也划分分析窗口,但保留原连续镜头关系。候选高光再抽密集 filmstrip,窗口边界不应成为机械剪切边界。
先完成故事与原声骨架,再生成 TTS。配音超出画面时长时,运行时优先重写整句;需要补画由 Agent 修改 Storyboard 后续跑。速度调整默认限于 0.95–1.08。按段复用有效音频,失败恢复不能盲目重复整条配音。
完成标准
必须区分三个问题:文件是否正确、内容是否讲对、成片视听是否成立。
- 确定性门禁:来源一致、时间合法、无未经允许的重复、对白边界/TTS 完整、画面覆盖音频、输出规格和字幕产物符合要求。
- 语义复核:人物与因果有证据,钩子未违反揭示约束,VO 与实际选中画面一致;模型意见需回源验证,不能伪装成确定事实。
- 成片复核:检查最终合成画面和声音,记录方法、范围、证据及剩余风险。结构检查、源片截图或文件存在不等于全片看过/听过。
- 原声字幕按源时间映射输出时间;均匀分配产生的词时间标为估算,不能作为可靠切点。无对白动作/沉默段不生成虚构台词字幕。
- EDL 记录实际消费的镜头范围,不能把未进入成片的候选画面写作已用镜头。
PASSED:该交付模式要求的检查已完成且证据有效。DEGRADED:可审阅,但有明确能力降级或关键验证缺口。BLOCKED:存在阻断性错误,保留中间产物供修复。不得隐藏未执行的检查或沿用失效报告。
本地自动修复当前只覆盖明确列出的渲染故障;不宣称实现自动剧情纠错或审美修复。计数统一为:初检 → 修复 1 → 复检 → 修复 2 → 最终复检;仍失败只报告,不执行修复 3。局部创作修复由 Agent 按源证据处理,并重跑受影响的检查。
交付与接管
保留 state.json、00–11 阶段 JSON、可读脚本,以及 output/final.mp4、preview.mp4、master.srt、edit_decision_list.json、delivery_report.md。分析/方案模式只交付已执行阶段,勿列未生成文件为完成。
报告说明:交付模式、实际文件/版本、时长与画幅、主线/高光/声音分工、检查证据、模型服务、失败或降级项。用户可修改高光清单、方案与任意分镜段;任务中出现的素材 ID、时间码和生成任务记录只留在该作品工作目录。
评测与边界
修改模型、Prompt、召回或剪辑逻辑后,按 评测协议 验证受影响能力。evals/ 区分合成回归与真实内容评测;缺素材/金标时标为未就绪,不得把占位案例计入通过率。稳定关注严重事实错误、禁止剧透、残句、漏高光和每分钟成片的人工修正时间。
仅处理获授权的素材;不去水印、规避版权检测或自动发布。不把素材或密钥上传到未配置的第三方。没有明确的真实片源评测与听检证据时,不宣称生产级内容质量或发布效果。