video-script · git:20260828.21694dd · 2026-08-28 · sha256 3b06a2078a62ff2b

video-script git:20260828.21694ddA

Immutable. This exact content is served forever at /api/v1/blob/3b06a2078a62ff2b.

---
name: video-script
description: >
  生成视频脚本,覆盖短视频(7-60秒)到中长视频(1-30分钟)全时长。
  短视频:Hook 变体评分、分秒计时、字幕文案、封面方案。
  中长视频:留存率优化、节奏中断点、前向钩子、章节结构。
  适用于抖音、视频号、小红书视频、B站、YouTube 等平台。
  当用户说"视频脚本"、"短视频脚本"、"抖音脚本"、"B站脚本"、
  "视频号脚本"、"竖版视频"、"Reel 脚本"、"写个视频文案"时使用。
  和 video-strategy 的区别:video-strategy 做视频内容规划和系列策划,
  video-script 写具体某一条视频的脚本。
layer: produce
---

# 视频脚本生成

> 根据目标时长自动适配短视频或中长视频模式,生成留存率优化的结构化脚本。

## 输入

| 字段 | 必填 | 说明 | 示例 |
|------|------|------|------|
| 主题 | 是 | 视频主题 | "为什么 Rust 正在替代 C++" |
| 目标时长 | 是 | 秒数或分钟数 | 30 秒 / 10 分钟 |
| 平台 | 否 | 抖音/视频号/小红书/B站(默认按时长推断)| 抖音 |
| 内容类型 | 否 | 科普/教程/评测/种草/解说/杂谈 | 科普 |
| 核心要点 | 是 | 要覆盖的关键信息 | 内存安全、性能… |
| 调性 | 否 | 专业/轻松/犀利/对话感(默认:对话感)| 轻松 |

## 模式自动判定

| 时长 | 模式 | 典型平台 | 关键指标 |
|------|------|----------|----------|
| 7-15 秒 | 短视频·极速 | 抖音/视频号 | 3 秒完播率 |
| 15-60 秒 | 短视频·标准 | 抖音/视频号/小红书 | 完播率、DM 转发、收藏 |
| 1-5 分钟 | 中视频 | 视频号/抖音/B站 | 5 秒留存、互动率 |
| 5-30 分钟 | 长视频 | B站/YouTube | 30 秒留存、播放完成率 |

**语速基准**:中文约 250 字/分钟。

---

## 短视频模式(≤60 秒)

### Step 1 — Hook 设计(3 个变体)

从 5 种 Hook 类型中选 3 个,各生成一个变体:

| 类型 | 适用场景 | 示例 |
|------|---------|------|
| 好奇缺口 | 冷知识、反直觉 | "你每天做的这件事其实在伤害你" |
| 模式打断 | 反常规、挑战认知 | "忘掉你以前学的所有XX" |
| 身份触发 | 精准受众 | "如果你是XX,这条一定要看完" |
| 痛点共鸣 | 真实困扰 | "明明很努力了还是没效果?" |
| 权威背书 | 数据/研究支撑 | "最新研究发现:XX 竟然是错的" |

每个 Hook 按 4 维度评分(每项 1-5,满分 20):好奇强度、打断效果、身份触发、3 秒清晰度。选最高分作为主 Hook。

### Step 2 — 分秒脚本

按时长压缩结构:

| 时长 | 结构 |
|------|------|
| 7-15 秒 | Hook(0-2s) + 核心价值(2-10s) + 收尾(10-15s) |
| 15-30 秒 | Hook(0-3s) + 痛点(3-8s) + 方案(8-20s) + 收尾CTA(20-30s) |
| 30-60 秒 | Hook(0-3s) + 痛点(3-8s) + 方案(8-40s) + 洞察+CTA(40-60s) |

脚本格式:
```
[0-3s] HOOK
口播: "..."
字幕: "..."
画面: [描述]

[3-8s] 痛点
口播: "..."
画面: [描述]
```

每句 ≤15 字,口语化,加括号注释(停顿/强调/表情)。

### Step 3 — caption + 封面

**caption**:100-300 字,Hook 变体开头(不重复视频 Hook),DM 转发 > 收藏 > 点赞。
**hashtags**:3-5 个垂直标签,不用泛标签。
**封面**:3-5 字大标题 + 画面描述 + 表情。

### Step 4 — 质量评分(满分 100)

| 维度 | 权重 | 检查点 |
|------|------|--------|
| Hook 强度 | 25 | 好奇缺口、打断效果、3 秒清晰度 |
| 内容质量 | 25 | 价值密度、结构、痛点-方案清晰度 |
| caption+CTA | 20 | 长度 100+字、转发型 CTA、Hook 变体 |
| 格式合规 | 15 | 9:16 安全区、时长匹配、封面 |
| 算法信号 | 15 | 收藏/转发优化、原创性 |

≥80 分交付,<60 分返工后重评。

---

## 中长视频模式(>60 秒)

> 留存率优化的详细方法(节奏中断点 / 前向钩子 / 章节结构 / 留存曲线)见 `references/retention-scripting-guide.md`。

### Step 1 — 结构计算

根据目标时长分配各段:
- **Hook**:0:00-0:30(短视频缩短到 0:00-0:10)
- **开场**:0:30-2:00
- **首次 CTA**:约 25% 处
- **留存再拉回**:约 60% 处
- **结尾**:最后 60 秒
- **目标字数** = 时长(分钟) × 250

### Step 2 — 写 Hook(三段式)

| 阶段 | 时间 | 目标 |
|------|------|------|
| 抓眼 | 0-5s | 全片最重要的一句话,不加片头 |
| 承诺 | 5-15s | 看完能获得什么,具体可感知 |
| 悬念 | 15-30s | 不看会损失什么 |

### Step 3 — 内容段落

每段结构:节奏中断 → 正文 → 微总结 → 前向钩子。
**节奏中断**每 60-90 秒一次(短视频每 15-30 秒),类型:【镜头切换】【画面】【音效】【数据冲击】。

### Step 4 — CTA 与结尾

- 首次 CTA(25% 处):软性、对话式、10-15 秒
- 留存再拉回(60% 处):"接下来是最关键的部分"
- 结尾 CTA:硬性号召 + 下期预告,**不说"感谢观看"**

### Step 5 — 留存风险标注

扫描全稿,在危险区标 ⚠️ 警告(至少 3 处)+ 应对方案。

## 输出格式

产物写入 `outputs/`。包含:
- 脚本元数据(主题/时长/平台/字数)
- 完整分段脚本(含时间码、口播、字幕、画面提示)
- 节奏中断日志(时间戳/类型/说明)
- 留存风险地图(中长视频)/ 质量评分(短视频)
- 剪辑备注

## 质量检查

- [ ] 字数与时长匹配(250 字/分钟,±10%):**用脚本判定,不靠估算**。把全部口播文案(去掉时间码、画面提示等非口播行)喂给
  `python3 skills/shared/scripts/wordcount.py check --target <时长分钟×250> --tolerance 0.1`(stdin 传入),退出码 0 = 达标;非 0 时脚本给出「还需增/删 X 字」,据结果增删口播后重跑,直到通过。
- [ ] Hook 完整(短视频 3 变体评分;中长视频三段式)
- [ ] 节奏中断频率达标
- [ ] CTA 位置正确
- [ ] 全稿口语化,短句,不像书面文
- [ ] 结尾有能量,不含收尾废话

## Profile 感知

- **有 Profile**:读取 platform 锁定平台、audience 调整用语、tone 匹配风格、cta_style 使用惯用话术
- **无 Profile**:默认按时长推断平台,对话感调性