技能:留存优化短剧(钩子→故事→回报)
0. 来源与方法论诚实
基础:视频“ESSA TÉCNICA VIRALIZOU MEU SHORTS COM 30 MILHÕES DE VISUALIZAÇÕES”(频道 O Milionário,ID iPpt_INjn8A)。标记为 [VÍDEO] 的项目来自作者所教内容。标记为 [EXT] 的项目是本系统的工程扩展:合理的启发式方法,但未经视频验证。应使用实际留存数据进行校准(参见第 10 节)。
1. 核心原则 [VÍDEO]
- 决定一个短视频是否爆火的是留存曲线:观看完成率越高,平台推荐越多。
- 目标:让留存曲线尽可能平直,没有下跌。关键是让观众看到最后。
- 三个必要部分:钩子(Hook)、故事(Storytelling)、回报(Payoff)。
- 剧本/叙事是“汽车的引擎”:没有叙事的精美剪辑无法留住观众。
- 时长:视频大约在 ~15 秒以内更容易爆火,因为更容易完整观看。更长的视频更难爆火,但能建立忠实粉丝群。如果利基市场需要更长的视频,请使用相同的三个步骤。
2. 时长模式 [VÍDEO + EXT]
| 模式 | 目标时长 | 使用场景 |
|---|---|---|
viral | 12–20 秒(最大 25) | 最大化触达。默认设置。 |
balanced | 20–40 秒 | 需要最少上下文的内容。 |
authority | 40–75 秒 | 建立忠实粉丝群,更深入的内容。 |
用户选择模式。即使片段很好,也切勿超过模式的限制:通过剪掉死区来缩短。
3. 决策流程(按顺序执行)
步骤 1:分割候选片段
- 输入:逐字时间戳转录文本、场景切换点、静音片段、说话人标记。
- 生成以句子边界(切勿在句子或思路中间)开始和结束的候选窗口。生成数量是所需数量的 3 倍。
- 每个候选片段必须自包含:没有上下文的观众需要能够理解,无需查看视频的其余部分。如果依赖之前上下文,则丢弃或准备上下文字幕(第 6 节)。
步骤 2:为每个候选片段评分(0–100)
| 标准 | 权重 | 评估内容 |
|---|---|---|
| 钩子潜力 | 25 | 前 3 秒是否存在一个清晰、直接、快速并承诺回报的句子或时刻 [VÍDEO]? |
| 张力/叙事 | 25 | 是否存在冲突、出错的事情、障碍、未解之谜或悬念 [VÍDEO]?有解决方案吗? |
| 回报 | 20 | 结尾是否兑现了钩子承诺的结果、揭示、情感或结论 [VÍDEO]? |
| 自包含 | 15 | 是否能独立存在? [EXT] |
| 密度/节奏 | 10 | 是否很少废话、停顿少、每隔几秒就有信息 [EXT] |
| 情感/新颖 | 5 | 是否有惊喜、幽默、强烈观点、震撼数字 [EXT] |
规则:
- 钩子 < 12/25 或 回报 < 8/20 → 丢弃,无论总分如何。
- 向用户显示每个标准的分数以及每行一句的解释。
- 按分数排序。避免重叠裁剪(超过 30% 重叠):保留最好的一个。
步骤 3:映射钩子 → 故事 → 回报结构
对于选定的候选片段,在时间线上标记:
- 钩子(0–3 秒) [VÍDEO]:清晰、直接、快速、有承诺。不含问候语、“大家好”、“那么”或自我介绍。
- 故事(中间部分) [VÍDEO]:一系列张力节拍。每个节拍属于以下类型之一:
冲突(出错的事情)、解决方案(所做的)、悬念(“但在…之前发生了某事”)。叙事必须有一个故事被“打断”并产生好奇心的时刻。 - 回报(最后 3–5 秒) [VÍDEO]:交付钩子承诺的回报。
如果原始片段不是以强力钩子开头,则应用冷开场技术 [EXT]:
- 在片段内部找到最强的句子(承诺、结果或最具挑衅性的句子)。
- 将该句子放在开头(0–3 秒)作为钩子,然后回到时间顺序。
- 仅在该句子本身有意义且回报仍然清晰时才这样做。不得扭曲含义:禁止改变说话人所说的含义。
步骤 4:钩子工程 [VÍDEO + EXT]
- 生成 3 个变体 的钩子文本作为屏幕标题(开头标题),每个 ≤ 8 个单词:
- 结果承诺(“5 雷亚尔的礼物让我奶奶流泪”)。
- 好奇心/信息缺口(“我只有 5 雷亚尔,然后…”)。
- 矛盾/挑衅。
- 文本必须与内容相符(无回报无法支持的点击诱饵)。
- 必须在 ≤ 2 秒内被阅读。
步骤 5:节奏清理 [EXT]
- 删除静音 > 0.35 秒、犹豫词(“嗯”、“啊”、“那个”、“呃”)、重复和错误的开头。
- 在揭示(张力)之前保留 0.1–0.2 秒的微停顿,该停顿具有功能。
- 不要在音节中间剪切:在音频过零点使用切割点,并使用 30–60 毫秒的交叉淡入淡出。
- 如果结果超过模式限制,首先删除中间张力最低的节拍,切勿删除钩子或回报。
步骤 6:编辑计划 [VÍDEO + EXT]
视频推荐的元素,让观众“感觉不到时间流逝” [VÍDEO]:
- 动态字幕:逐词显示,突出显示的单词。
- 缩放 和 快切:始终有事情发生。
- 场景间音乐切换:给人一种同时发生多件事的感觉。
- 张力部分的悬念配乐,产生观看结局的欲望。
建议的操作参数 [EXT],可调:
- 视觉节奏:每 1.5–3.5 秒 发生一次视觉变化(缩放、剪切、取景变化、突出、B-roll)。从不超过 4 秒无变化。
- 缩放:强调词上 punch-in 105-115%;张力部分慢速缩放(100→108%);在后续剪切中重置。交替方向以避免疲劳。
- 字幕:每次 1–3 个词,≤ 2 行,激活词使用突出显示颜色,放置在屏幕下三分之一(避开应用界面区域:保持底部边距约 20%,侧面边距约 6%)。仅当表情符号能强化单词时才使用。
- 音乐:
- Beat 1(钩子和开头):中等能量,0 秒进入。
- 张力节拍:悬念配乐,音量略微升高,低音更重。
- 回报:解决(张力下降或逐渐增强 + 揭示前静音 0.2 秒)。
- 音乐切换:仅在节拍/场景边界处,使用 200–400 毫秒的交叉淡入淡出。
- 人声始终优先于音乐:语音时闪避 −14 到 −18 dB。
- 音效:剪切/缩放时使用 whoosh,揭示时使用 hit,回报前使用 risers。每约 2 秒最多 1 个 SFX。
- B-roll/支持性图片:当提到具体事物(对象、地点、数字)时,显示 1–2 秒。
- 可选的进度条:加强期望到达终点的心理。
步骤 7:视频结尾 [EXT]
- 回报必须是最后一个重要时刻。在最终句子后立即剪切(≤ 0.3 秒余量)。
- 可选,循环模式:如果结尾在视觉或口头能与钩子衔接,使最后一帧接近第一帧。
- 没有“感谢观看”或会破坏结尾的行动号召。如果有 CTA,在回报上使用低调的文字。
4. 反模式(拒绝或修正)
- 以问候语、较长上下文或“今天我要谈谈”开头。
- 钩子承诺了回报未交付的内容。
- 片段在思路中间结束。
- 超过 4 秒无视觉变化。
- 音量过大的音乐掩盖人声。
- 字幕位于安全区域外或不可读。
- 剪切改变了原话含义。
- 视频时长超出所选模式。
- 对留存无益的特效(装饰性)。
5. 输出格式:JSON 格式的编辑决策列表 (EDL)
输出应为仅有效 JSON,符合以下模式。
{
"clip_id": "string",
"mode": "viral|balanced|authority",
"source": { "start": 0.0, "end": 0.0 },
"scores": {
"total": 0,
"hook": 0, "tension": 0, "payoff": 0,
"self_contained": 0, "density": 0, "emotion": 0,
"rationale": { "hook": "", "tension": "", "payoff": "" }
},
"structure": {
"hook": { "start": 0.0, "end": 3.0, "technique": "native|cold_open", "text_overlay_options": ["", "", ""], "chosen_overlay": 0 },
"beats": [ { "start": 0.0, "end": 0.0, "type": "conflict|solution|suspense", "note": "" } ],
"payoff": { "start": 0.0, "end": 0.0, "note": "" }
},
"segments": [
{ "id": "s1", "src_start": 0.0, "src_end": 0.0, "out_start": 0.0, "role": "hook|body|payoff", "speed": 1.0 }
],
"cuts_removed": [ { "src_start": 0.0, "src_end": 0.0, "reason": "silence|filler|repeat|low_tension" } ],
"reframe": { "mode": "auto_face|split|center|manual", "keyframes": [ { "t": 0.0, "cx": 0.5, "cy": 0.4, "scale": 1.0 } ] },
"captions": { "style": "string", "words": [ { "t0": 0.0, "t1": 0.0, "text": "", "emphasis": false } ] },
"effects": [
{ "type": "zoom_punch|zoom_slow|shake|flash|overlay_text|broll|sticker|freeze", "t0": 0.0, "t1": 0.0, "params": {}, "reason": "" }
],
"audio": {
"voice": { "normalize_lufs": -14, "denoise": true },
"music": [ { "track_id": "", "t0": 0.0, "t1": 0.0, "mood": "energetic|suspense|resolve", "gain_db": -16, "ducking": true, "fade_in": 0.2, "fade_out": 0.3 } ],
"sfx": [ { "id": "", "t": 0.0, "gain_db": -10 } ]
},
"retention_forecast": { "curve": [ { "t": 0.0, "pct": 100 } ], "risk_points": [ { "t": 0.0, "why": "" } ] },
"qa": { "passed": true, "violations": [] },
"duration_out": 0.0
}
JSON 规则:
- 所有时间以秒为单位,相对于原始视频(
src_*)或最终视频(out_*、t0、t1、t)。 segments描述按显示顺序的最终剪辑(包括冷开场,如果使用)。- 每个
effect需要reason与留存相关(例如:“避免在 12–16 秒处 4 秒无变化”)。 retention_forecast是一个启发式估计,而非测量值。请在界面中如此标注。
6. 缺失上下文
如果片段需要其自身未解释的上下文,则在开头 3 秒内添加一个简短的 overlay_text(≤ 8 个词),或丢弃该候选片段。
7. QA 检查清单(返回前执行)
- 前 3 秒是否有清晰的钩子和承诺?
- 是否至少有一个张力节拍和解决方案?
- 回报是否交付了钩子的承诺?
- 时长是否在模式范围内?
- 是否没有超过 4 秒无视觉变化的片段?
- 是否没有在单词/思路中间剪切?
- 字幕是否在安全区域,每次 ≤ 3 个词?
- 音乐是否在人声下进行了闪避,并且仅在场景边界处切换?
- 原始含义是否得到保留?
- 结尾是否在回报后立即剪切?
如果任何一项失败,请修正并重新评估(最多 2 次迭代)。如果仍然失败,则返回 qa.passed=false 并列出违规项。
8. 安全和完整性规则
- 切勿编造转录中不存在的台词或事实。
- 切勿在重新排序时改变一句台词的含义。
- 钩子文本必须与内容相符。
- 不要生成本用户未声明拥有或已获得使用许可的内容的剪辑。
9. A/B 测试变体 [EXT]
当被要求时,生成同一剪辑的最多 3 个变体,每次更改一个变量(钩子文本、冷开场顺序或字幕风格)。记录哪个变量被更改。
10. 使用实际数据校准 [EXT]
本技能的权重和参数是起点。系统应:
- 记录每个已发布剪辑的实际留存曲线(当用户从 YouTube Studio/TikTok 导入时)。
- 将实际曲线与
retention_forecast比较,并将评分与结果比较。 - 当有 ≥ 30 个剪辑的数据时,建议调整权重。