ワンクリックで
drama-explainer
// 制作“解说配音 + 原片高张力片段穿插”的短剧解说成片技能。适用于短剧二创、剧情解说、狗血短剧混剪、情绪冲突型剧情拆解、影视解说口播成片等场景;当用户希望从短剧原片直接产出可剪辑脚本、解说配音、分镜数据和最终成片时应触发。尤其适合“保留原片最有戏的台词和表演,再用解说串联剧情”的任务。不要在普通剧情总结、影评、纯文案改写、纯字幕烧录、普通视频剪切中使用本技能。
// 制作“解说配音 + 原片高张力片段穿插”的短剧解说成片技能。适用于短剧二创、剧情解说、狗血短剧混剪、情绪冲突型剧情拆解、影视解说口播成片等场景;当用户希望从短剧原片直接产出可剪辑脚本、解说配音、分镜数据和最终成片时应触发。尤其适合“保留原片最有戏的台词和表演,再用解说串联剧情”的任务。不要在普通剧情总结、影评、纯文案改写、纯字幕烧录、普通视频剪切中使用本技能。
Lean FFmpeg playbook for reliable video compression, WeChat-compatible MP4 export, clip stitching, audio mixing, subtitle handling, and quick fallback decisions. Use for requests like “压缩视频”, “微信上传”, “体积太大”, “导出更小但别糊”, “多段素材拼接”, “字幕烧录”, and “ffmpeg 报错”.
为短剧、影视、悬疑剧情视频创作解说文案。适用于根据字幕、剧情梗概、人物关系、视觉笔记撰写或改写解说词;默认采用《豺狼的日子1-6》这类高信息密度、短句推进、先抛钩子后回顾的连载解说风格。触发场景:用户要求写短剧解说文案、影视解说词、连载剧情旁白、根据字幕改写成解说、模仿《豺狼的日子》这类风格。
字幕优先的短剧解说结构设计 skill。适用于分析优秀短剧解说字幕、拆解它们的结构与节奏、判断什么时候插原片什么时候上解说,或基于原剧字幕 / 梗概直接产出短剧解说的 beat sheet、插片计划和口播稿。用户一旦提到“短剧解说结构”“原片穿插”“什么时候放原声”“根据字幕做解说”“学习优秀短剧解说”“拆解短剧解说账号”这类需求,应优先触发。不要在纯视频裁切、纯字幕排版、普通剧情总结、纯影评里使用本技能。
竖屏视频字幕位置与参数配置 skill。适用于 9:16 或其他竖屏视频的字幕烧录、ASS 样式调整、安全区控制、替换或压住原视频自带字幕,以及“字幕别挡脸/别压底部按钮/盖住原字幕/字体太小/字幕超宽/字幕变成三行”这类字幕排版请求。当前版本只优化字幕参数,不处理遮罩、底板、背景条或毛玻璃效果。只要用户提到竖屏字幕位置、字号、边距、换行、盖住原字幕,都应优先使用这个 skill。
横屏视频字幕位置与参数配置 skill。适用于 16:9 或其他横屏视频的字幕烧录、ASS 样式调整、底部安全区控制,以及“字幕太高/太低/太贴边/太挤”这类字幕排版请求。
口播 / talking-head 视频精剪 skill。适用于单人出镜口播、采访、自述、 课程讲解、播客切条等以 A-roll 说话为主的视频。Use when the user asks for “剪口播”, “删停顿”, “去废话”, “删语气词”, “jump cut”, “按字幕精剪”, “根据 transcript 粗剪”, “采访精剪”, “单人口播提速”, or “把这段 talking head 剪紧凑”.
| name | drama-explainer |
| description | 制作“解说配音 + 原片高张力片段穿插”的短剧解说成片技能。适用于短剧二创、剧情解说、狗血短剧混剪、情绪冲突型剧情拆解、影视解说口播成片等场景;当用户希望从短剧原片直接产出可剪辑脚本、解说配音、分镜数据和最终成片时应触发。尤其适合“保留原片最有戏的台词和表演,再用解说串联剧情”的任务。不要在普通剧情总结、影评、纯文案改写、纯字幕烧录、普通视频剪切中使用本技能。 |
这个 skill 不是“把剧情讲清楚”就结束的摘要器,而是一个短剧解说成片编辑器。
它的核心任务是:
如果最终结果只是“信息对了,但不好看、不够狠、没记忆点”,那就是失败。
开始前先读:
../references/excellent-short-drama-commentary-playbook.md../references/skill-stack.md只有同时满足以下条件,才算成功:
storyboard.json 可直接用于配音、匹配、裁切、拼接出现以下任一情况,都说明 skill 执行失败,需要返工:
original 段的 text 写成摘要标签,而不是真正要展示的台词voiceover 紧挨着复述 original 刚说完的信息,造成“台词听两遍”videoindex / videosearch 缩小范围,再用视觉判断补足 transcript 看不见的表演强度draft_script.md;步骤 6 才做剪辑化编辑storyboard.json 为唯一真相源:步骤 6 开始,所有分镜、音频、时间和输出状态都只回写它videoindex / videosearch 缩小候选戏眼范围,再结合 transcript 与定向视觉复核做最终编辑判断source_index 下所有最终使用时间段不能重叠storyboard.json:裁切、拼接、交接都不再依赖别的片段真相文件| 阶段 | 工具 | 用途 |
|---|---|---|
| 分析 | qwenasr | 提取原片对话字幕和时间戳 |
| 分析 | mediainfo | 获取视频元数据 |
| 检索 | videoindex | 为原片建立向量索引,供后续戏眼召回和画面匹配使用 |
| 检索 | videosearch | 用自然语言召回高张力候选片段,缩小编辑搜索范围 |
| 视觉 | doubaovision | 对候选片段、疑难节点或弱字幕段做视觉复核;只有在必要时才上升到全片分析 |
| 编辑 | subagent / TaskTool | 为步骤 6 派发专门的 dramatic editor 子任务 |
| 匹配 | videosearch + 视觉复核 | 为 voiceover 段匹配能承载情绪的画面,必要时再做视觉复核 |
| 生成 | voiceover | 生成解说音频 |
| 剪辑 | FFmpeg | 按分镜裁切原片、抽取中间片段 |
| 合成 | FFmpeg | 标准化、拼接、输出最终成片 |
<项目名>/
├── analysis/
│ ├── transcript.json / transcript_01.json
│ ├── mediainfo.json / mediainfo_01.json
│ ├── visual_analysis.json / visual_analysis_01.json
│ ├── plot_analysis.md
│ ├── characters.md
│ ├── retrieval_candidates.json # 可选检索候选快照
│ └── scene_matching.json # 可选审查快照
├── scripts/
│ ├── draft_script.md
│ ├── storyboard.json # 唯一真相源
│ ├── final_script.md # 从 storyboard 派生的审查稿
│ └── voiceover.md # 从 storyboard 派生的 TTS 稿
├── audio/
├── clips/
│ ├── raw/
│ └── merged/
├── output/
│ └── output.mp4
└── state.json # 仅记录进度/运行状态
| 文件 | 角色 |
|---|---|
draft_script.md | 连续可读的原始解说稿,只负责把故事讲顺 |
storyboard.json | 分镜主数据,记录每段模式、素材来源、时间、文案、音频策略、状态 |
final_script.md | 从 storyboard.json 派生的人类审查稿 |
voiceover.md | 从 storyboard.json 派生的 TTS 文案稿 |
retrieval_candidates.json | 步骤 3.5 的可选检索候选快照,只用于审查和回放检索过程 |
scene_matching.json | 步骤 8 的可选审查快照,不是新的真相源 |
state.json | 运行状态,不保存片段真相 |
state.json:只保存 project、progress、last_errorscripts/storyboard.json:先写空壳
project.nameproject.created_atsourcesdraft_script_path = "scripts/draft_script.md"segments = []output.final_video = null产出:项目目录 + state.json + scripts/storyboard.json
对每个原片独立执行:
qwenasr → analysis/transcript*.jsonmediainfo → analysis/mediainfo*.json要求:
storyboard.json.sources[]产出:transcript*.json、mediainfo*.json
在具备
videoindex/videosearch的环境里,这一步应视为默认流程。
对全部原片执行一次 videoindex:
shot_threshold 以可召回戏眼为先,不要一上来就设得过高要求:
shot_threshold产出:本地视频向量索引
基于全部 transcript 梳理:
这一步只建立剧情骨架,不做最终选段决策。
产出:analysis/plot_analysis.md(初步版)
doubaovision 默认不是从头到尾扫完整部片子的必跑步骤。
优先做法是:
videosearch 召回高张力候选只有在下面情况之一,才升级为全片视觉分析:
复核时重点回答:
若执行本步骤,可产出:visual_analysis*.json
基于步骤 2 的剧情骨架,用 videosearch 做候选召回;如步骤 3 已运行,再把视觉判断作为复核依据。
优先检索这些类型的 query:
要求:
analysis/retrieval_candidates.json产出:候选时间段集合(可选落盘 analysis/retrieval_candidates.json)
将步骤 2 与步骤 3.5 的检索结果交叉校验;若步骤 3 已运行,再一并吸收视觉修正,产出统一剧情基线:
characters.mdplot_analysis.md必须向用户展示:
用户确认无误后才能进入步骤 5。
产出:characters.md、校验后的 plot_analysis.md
本步骤只做一件事:把故事讲顺。
基于 plot_analysis.md 和 characters.md 产出 draft_script.md。
要求:
modecharacters.md 一致禁止:
original / voiceover产出:draft_script.md
在进入步骤 6 前,主代理必须先做一次节奏预算:
若这一步答不出来,禁止进入最终 storyboard 阶段。
这是质量最高优先的核心步骤。
主代理必须先准备最小上下文包:
characters.mdplot_analysis.mddraft_script.mdtranscript*.json / 对应 SRTvisual_analysis*.json 中的候选片段复核摘要analysis/retrieval_candidates.json然后派发一个专门的 dramatic editor 子任务。这个子任务只做三件事:
storyboard.jsondramatic editor 在筛段时必须遵守:
videosearch 召回结果,而不是重新盲扫全量 transcriptoriginal 优先选最有戏的台词,不是最完整的台词notes 里解释为什么不能再压original 已说明的内容original.text 必须是真正要展示的台词,不能写“婆婆羞辱儿媳”“男主公开护妻”这种摘要标签notesnotes 标记 hook_preposed=true;否则默认按剧情顺序推进以下任一命中,必须返工:
original.text 明显是摘要而不是真实台词storyboard.json 在步骤 6 的最低要求每个 segment 至少包含:
idtitlemode:voiceover / originalsource_indexsource_pathstartendtexttext_rawmute_originalstatusnotes额外要求:
original 段在步骤 6 就必须有精确 start/end 和 text_rawvoiceover 段允许先无时间,但必须有成型 textnotes 必须解释:为什么留原声 / 为什么此处必须 VOoriginal 段 > 15 秒,notes 里必须明确说明为什么不能再压步骤 6 完成后:
storyboard.json 派生 final_script.mdstoryboard.json 里所有 mode = voiceover 的段落派生 voiceover.md产出:storyboard.json、final_script.md、voiceover.md
只对 mode = voiceover 的段落生成音频。
回写:
storyboard.json.segments[].audio_filestoryboard.json.segments[].audio_duration_secvoiceover.md 的对应音频时长禁止:
original 段生成空音频voiceover.md 和 storyboard.json 漂移voiceover 段)必须优先使用
videosearch;如果尚未建索引,先补做步骤 1.5。
这一步不再负责剧情编辑决策,只负责:
voiceover 段找能承载该段解说的画面audio_duration_sec匹配要求:
videosearch 召回候选片段storyboard.jsonanalysis/scene_matching.json 作为审查快照storyboard.json 逐段渲染按 storyboard.json 顺序逐段:
start/end 裁切原片voiceover 段:静音原声并叠加 TTSoriginal 段:保留原声clips/merged/使用 FFmpeg concat demuxer 无损拼接 clips/merged/*.mp4。
回写:
storyboard.json.output.final_video如用户需要字幕,交接给专门字幕 skill,并携带:
output/output.mp4scripts/final_script.mdscripts/storyboard.jsondraft_script.md 读起来顺,不是最终剪辑稿storyboard.json 是唯一真相源doubaovision 只在候选歧义、字幕不足、无台词强表演等必要场景介入;没有和检索重复扫片original.text 都是真实展示台词,不是摘要标签voiceover 没有复述紧邻 original 已说清的内容notes 明确说明是钩子前置voiceover.md 与 storyboard.json 一一对应storyboard.json| 问题 | 根因 | 修正方式 |
|---|---|---|
| 成片信息对了但不好看 | 只做了剧情摘要,没有做编辑决策 | 回到步骤 6,重挑原片戏眼 |
| 台词听了两遍 | VO 复述了原片已表达内容 | 压缩 VO,只保留铺垫和转场 |
| 原片都是真实台词但还是不够打人 | 选中了“说明剧情”的台词,而不是“最有戏”的台词 | 先补检索改写 query;若仍难判断,再做定向视觉复核,高张力优先 |
storyboard.json 审不动 | original.text 写成摘要标签 | 改成真实展示台词,摘要写 notes |
| 同一 source 时间跳来跳去很乱 | 没区分钩子前置和正常顺序 | 默认按剧情顺序;只有钩子允许前置且必须标记 |
| 成片没有人物感 | VO 用了空泛短视频模板句 | 重写 VO,改成更贴人物、更贴处境的句子 |