# Video Script Generator

> 口播脚本生成器：面向各行业短视频运营者，根据行业和目标自动生成教学或带货脚本。 内置12大行业模板（教育/美妆/服饰/餐饮/健身/数码/家居/母婴/金融/房产/本地生活/知识付费）， 支持单条生成与套系策划（5-10条递进选题），8种钩子类型自动适配行业， 双版本交付（提词器版+拍摄参考版的 md 文件；钉钉文档默认不出，仅在用户明确要求时追加），适配抖音、小红书、快手、视频号等平台。 每当用户说「短视频脚本」「视频文案」「口播稿」「直播脚本」「带货脚本」 「教学视频脚本」「帮我写个脚本」「做一套短视频」「我是XX行业运营」 「抖音文案」「小红书视频」「快手文案」「视频号脚本」时应使用本技能。 此外，用户给出视频平台链接（抖音/小红书/快手/视频号/B站/YouTube）或对标参考文档时， 本技能会调用相关技能提取参考内容，模仿其钩子、结构、节奏与语言风格生成新脚本。

- Skill: `ahang1598/video-script-generator` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add ahang1598/video-script-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahang1598/video-script-generator/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ahang1598 (https://skillmd.com/u/ahang1598)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ahang1598/video-script-generator

---


# 口播脚本生成器

面向各行业短视频运营者，根据行业、目标、模式生成爆款脚本。支持单条生成与套系策划，覆盖教学/带货双模式，12大行业预设模板。适配抖音、小红书、快手、视频号等平台。

## 核心规则

**禁止：**
- 单条超过 800 字（口播节奏拖沓）
- 书面语和长难句（必须口语化）
- 钩子承诺与正文不符
- 全篇钩子堆砌无干货
- 虚假夸大
- 钩子类型单一重复
- 无引导动作的结尾
- 输出内部逻辑（Phase 0-5 为内部步骤，不输出给用户）

**强制：**
- 开头 50-80 字内有黄金 3 秒强钩子
- 中间每 40-60 字插入钩子，全文 7-12 个
- 情绪曲线有起伏
- 价值输出具体（方法论、数据、案例）
- 结尾有评论区互动 + 关注引导
- 单条脚本 500-700 字

## 工作流

```
用户输入 → Phase 0 输入预处理（内部）
         → Phase 1 策略路由（内部）
         → Phase 2 选题策划（内部）
         → Phase 3 钩子设计（内部）
         → Phase 4 文案生成（内部）
         → Phase 5 节奏验收（内部）
         → Phase 6 交付
```

## Phase 0 — 输入预处理

识别用户输入的形态，分流到对应的预处理路径。所有输入最终都会以"行业 + 话题 + 风格信号"形式进入 Phase 1。

### 0.1 输入类型识别

| 输入类型 | 识别特征 | 处理方式 |
|---------|---------|---------|
| **纯自然语言** | 仅文字描述，无 URL、无文件 | 跳过预处理，直接进入 Phase 1 |
| **文件** | 用户上传或给出本地文件路径（`.md` / `.txt` / `.docx` / `.pdf` 等） | 调用 `read_file` 读取，提炼参考要点后进入 Phase 1 |
| **视频平台链接** | URL 域名命中 `douyin.com` / `xiaohongshu.com` / `xhslink.com` / `kuaishou.com` / 视频号链接 / `bilibili.com` / `youtube.com` 等 | 必须 `use_skill` 显式调用 `content-breakdown` 技能，拿到 .md 文档后进入 Phase 1 |

三种类型可叠加（如"文件 + 一段需求"），按"先文件/链接、后自然语言"顺序合并上下文。

### 0.2 视频平台链接处理

检测到任一视频平台链接，**必须**先激活 content-breakdown 技能，禁止直接用 `read_url` 抓页面。

**入口分支（按 `use_skill` 官方入口规则）：**

- **content-breakdown 在当前 `# Skills` 目录中** → 直接激活：

  ```python
  use_skill(
    name="content-breakdown",
    snippet="激活视频内容提取技能"
  )
  ```

- **不在 `# Skills` 目录** → 先 `search_skills` 找到，再 `use_skill` 激活：

  ```python
  search_skills(
    context_summary="提取视频平台链接的文案、钩子、结构、节奏",
    keywords=["content-breakdown", "视频内容提取", "video extractor"],
    snippet="搜索视频内容提取技能"
  )
  # 命中 1 条已安装 → 直接 use_skill
  # 命中 1 条远程 → 与用户确认后再 use_skill
  # 命中 2+ 条 → ask_human(question_type="single_select") 让用户选
  # 命中 0 条 → 告知用户失败，走降级路径

  use_skill(
    name="<search_skills 返回的 name>",
    skill_id="<search_skills 返回的 skill_id>",  # 外部技能必填
    snippet="激活视频内容提取技能"
  )
  ```

**URL 传递**：`use_skill` 自身不接受 URL 参数（schema 仅 `name / skill_id / provider / snippet`）。视频链接已在对话上下文中，content-breakdown 激活后会按其自身 SKILL.md 指令从上下文读取 URL 执行抽取。

**产物**：content-breakdown 输出一份**固定格式 .md 报告**，结构如下：

```
# 📋 <平台> 视频内容分析报告

## 📊 内容元数据
| 标题 / 作者 / 平台 / 时长 / 点赞 / 评论 / 收藏 / 分享 / 提取方式 |

## 📄 提取内容原文
（原视频口播/字幕逐行全文）

## 📊 内容分析
- 核心主题: ...
- 主要观点: 1. ... 2. ... 3. ... 4. ...
- 适用场景: ...
```

**字段 → Phase 决策映射**（必须严格按下表消费报告，不臆测字段含义）：

| 报告字段 | 映射到 | 用途 |
|---|---|---|
| **标题** | Phase 2 选题策划 | 命名风格/标签 `#`/话题词/人称的模仿来源 |
| **作者** | Phase 1.1 行业识别 | 账号定位强信号（如"袁梦｜良策文化"→ 知识 IP / 教育培训） |
| **平台** | Phase 6 交付 | 提词器/拍摄参考按该平台风格适配（抖音 vs 小红书 vs 视频号） |
| **时长** | Phase 1.3 输出规模 | 按 **≈250 字/分钟** 换算目标字数（覆盖默认 500-700 字。如 01:09 ≈ 280-340 字） |
| **点赞 / 评论 / 收藏 / 分享** | Phase 5 验收 | 互动数据越高的样本，"风格贴合度"验收越严格 |
| **提取方式** | 忽略 | 不参与决策 |
| **📄 提取内容原文** | Phase 3 + Phase 4 | 开头 1-3 行 = 钩子组合复用源；段落顺序 = 结构骨架；句长/标点 = 节奏来源；口头禅 = 句式来源 |
| **核心主题** | Phase 2 选题策划 | 单条模式作主题锚点；套系模式作系列主线 |
| **主要观点** | Phase 2 / Phase 4 | 套系模式下作为递进选题候选；单条模式下作为内容点 |
| **适用场景** | Phase 1.1 行业识别 | 当"作者"信号弱时，"适用场景"为行业判定主依据 |

**Phase 1-6 在该报告基础上**模仿其钩子、结构、节奏与语言风格**生成新脚本，不照搬原文（禁止抄连续 8 字以上）。

**正文重复识别**：若"📄 提取内容原文"中存在大段重复（如同一段示范文本出现多次），是因为视频里同段文本配多层视觉演示，属于**示范文本重复 ≠ 结构骨架重复**，去重后再判定真正的段落顺序。

**报告字段缺失**：某字段为空或未提供时，仅该字段回退到 skill 默认行为；不强行猜测、不外推其他字段。

**失败降级**：`search_skills` 0 命中 / `use_skill` 激活失败 / content-breakdown 抽取失败 → 告知用户具体原因，询问是否手动粘贴参考文案（走"文件/自然语言"路径降级，`reference_mode` 仍为 true）。

### 0.3 文件输入处理

```python
read_file(file_path="<用户提供路径>", snippet="读取参考文档")
```

提取文件中的：核心话题 / 目标受众 / 行业线索 / 已有金句或卖点 / 语言风格信号。提炼后进入 Phase 1。

文件过大（> 2 万字）：仅取前后各 3000 字 + 中间抽样，避免上下文淹没。

### 0.4 纯自然语言

无需预处理，直接进入 Phase 1 策略路由。

### 0.5 标记 reference_mode（内部）

Phase 0 末尾必须打一个内部标记 `reference_mode`，决定 Phase 1/3/4/5 是否进入"模仿生成"分支：

| 输入类型 | `reference_mode` | 含义 |
|---------|------------------|------|
| 纯自然语言 | `false` | 原创生成：按行业模板默认值走 |
| 文件 / 视频平台链接 | `true` | 模仿生成：钩子组合 / 结构骨架 / 句式节奏优先复用参考素材 |

混合输入（参考素材 + 用户额外需求）：`reference_mode = true`，用户需求作为"主题约束"，参考素材作为"风格约束"。

**`reference_mode = true` 总则**：
- 参考素材抽取结果与 **skill 自带模板**（12 大行业模板 / 8 种钩子分类 / 教学+带货默认骨架 / 情绪句式表）冲突时，**永远以素材为准**，模板让位
- 素材未覆盖的字段才使用 skill 默认值补齐
- 素材呈现的特征超出预设分类时（如行业不属于 12 类、钩子不属于 8 种、骨架不属于教学/带货），**按素材实际特征走，不强行归类到现有模板**
- 用户额外文字描述仅作为补充约束（如"主题改为 XX"、"长度压到 500 字"）
- 不询问用户、不做冲突协商

该标记仅在内部流转，不输出给用户。后续 Phase 引用方式：Phase 1.1 行业识别 / Phase 3 钩子设计 / Phase 4 文案生成 / Phase 5 节奏验收。

---

## Phase 1 — 策略路由

识别用户输入中的三个维度，匹配脚本生成策略。详细行业参数见 [references/industry-templates.md](references/industry-templates.md)。

### 1.1 行业识别

| 行业 | 模板ID | 默认模式 | 核心钩子偏好 | 典型选题方向 |
|------|--------|----------|-------------|-------------|
| 教育/培训 | edu | 教学 | 痛点戳中+悬念 | 误区拆解、方法技巧、考试攻略 |
| 美妆 | beauty | 带货 | 视觉冲击+利益诱惑 | 成分科普、效果对比、使用教程 |
| 服饰 | fashion | 带货 | 痛点戳中+利益诱惑 | 穿搭公式、身材适配、场景搭配 |
| 餐饮 | food | 带货 | 悬念+利益诱惑 | 隐藏吃法、性价比、探店攻略 |
| 健身 | fitness | 教学 | 数字冲击+痛点戳中 | 动作教学、饮食计划、避坑指南 |
| 数码 | tech | 教学 | 反常识+数字冲击 | 参数解读、隐藏功能、选购攻略 |
| 家居 | home | 带货 | 痛点戳中+利益诱惑 | 空间改造、好物种草、避坑清单 |
| 母婴 | baby | 教学 | 痛点戳中+疑问式 | 育儿知识、产品测评、成长阶段 |
| 金融 | finance | 教学 | 数字冲击+反常识 | 理财入门、避坑指南、政策解读 |
| 房产 | realestate | 教学 | 数字冲击+利益诱惑 | 买房攻略、区域分析、避坑指南 |
| 本地生活 | local | 带货 | 利益诱惑+悬念 | 优惠攻略、隐藏玩法、同城探店 |
| 知识付费 | knowledge | 教学 | 反常识+痛点戳中 | 认知升级、方法论、干货总结 |

无法识别行业时：根据用户描述的关键词推断，或直接询问。用户可手动指定行业模板ID。

**`reference_mode = true` 时**：行业以参考素材抽取的信号（账号定位、产品类目、术语密度）为准。素材判定的行业可超出 12 类模板范围（如"占星塔罗""宠物""手作"），此时按素材实际特征生成脚本，**不强行归类到最接近的现有模板**。素材完全无行业信号时才回退到用户描述。

### 1.2 模式判定

| 模式 | 脚本骨架 | 情绪曲线 | 结尾目标 |
|------|----------|----------|----------|
| **教学** | 痛点→误区→方法→案例→练习/关注 | 共鸣→焦虑→希望→行动 | 完播率 + 关注 |
| **带货** | 痛点→种草→信任→限时→下单 | 共鸣→渴望→紧迫→行动 | 转化率 + 下单 |

用户同时需要教学和带货时：按「教学引流+带货收尾」混合模式，前60%教学结构，后40%带货转化。

### 1.3 输出规模

| 用户意图 | 行为 |
|----------|------|
| 单条脚本 | Phase 1 跳过套系，直接生成1条 |
| "一套"/"系列"/"批量" | Phase 1 先出选题矩阵，用户确认后逐条生成 |
| 未指定 | 默认单条 |

## Phase 2 — 选题策划

### 单条模式

从用户话题中提炼 1-3 个核心观点，识别痛点和情绪触发点，确定文案基调。

### 套系模式

生成选题矩阵，包含 5-10 条递进选题：

```
选题矩阵结构：
├── 第1条：痛点共鸣（建立连接）
├── 第2条：误区拆解（制造冲突）
├── 第3条：方法核心（价值输出）
├── 第4条：案例验证（信任建立）
├── 第5条：进阶技巧（深度价值）
├── 第6-10条：按需扩展（场景变体/常见问题/对比测评/节日热点/互动征集）
```

**规则：**
- 选题之间有递进关系，不是随机堆叠
- 每条选题标注：核心钩子类型 + 预估字数 + 情绪定位
- 输出后暂停，等用户确认或调整选题矩阵

**⏸️ 门禁规则：套系模式下，选题矩阵必须经用户确认后才能进入 Phase 3。**

## Phase 3 — 钩子设计

从 8 种钩子类型中组合（详见 [references/hook-techniques.md](references/hook-techniques.md)）：

| 类型 | 原理 | 适用模式 |
|-----|------|---------|
| 疑问式 | 用问题激发好奇 | 教学/带货 |
| 反常识 | 打破常规认知 | 教学 |
| 数字冲击 | 具体数字制造冲击 | 教学/带货 |
| 痛点戳中 | 直击用户痛点 | 教学/带货 |
| 利益诱惑 | 直接展示价值 | 带货 |
| 悬念制造 | 设置悬念引导继续 | 教学/带货 |
| 视觉冲击 | 描述画面感（口播用语言营造） | 带货 |
| 共情代入 | "我也曾这样"式共鸣 | 教学/带货 |

**行业钩子偏好**：按 Phase 1 识别的行业模板选择首选钩子类型，避免不匹配行业调性的钩子。

**`reference_mode = true` 时**：钩子选择以参考素材为准——
1. **复用素材实际钩子组合**（如素材开头是"反常识+数字冲击"，新脚本沿用同款组合）
2. **素材钩子超出 8 种范畴时**（如"故事钩""场景钩""挑衅钩"），按素材实际特征命名并使用，不强行归到 8 种里
3. **分布密度对齐素材**：素材钩子节奏疏的，新脚本不要堆砌；节奏密的，新脚本保持高密度
4. **回退条件**：仅在素材完全无可识别钩子信号时，才使用行业模板偏好兜底

**分布：** 开头 1-2 个强钩子 → 中间每 40-60 字 1 个（共 5-8 个）→ 结尾 1-2 个引导钩子

## Phase 4 — 文案生成

**`reference_mode = true` 时**：
- **结构骨架**完全贴近素材的段落顺序，**不套用**教学/带货默认骨架（如素材是"金句开场→案例→方法→金句收尾"，新脚本沿用同款，即使它不属于教学/带货任一默认模板）
- **句长 / 标点节奏 / 口头禅**向素材对齐（短句多→新脚本也短促；长句叙事→新脚本沿用）
- **情绪句式**取素材中已出现的句式；素材未出现的情绪节点才用下表默认句式补齐
- **金句**可化用素材句式但不照搬原文，禁止抄连续 8 字以上

### 教学模式脚本结构

```
开场Hook（50-80字）
  → 痛点场景（3-5句，共鸣代入）
  → 常见误区（1-2个，制造冲突）
  → 核心方法/知识点（分点讲解，3个以内）
  → 案例验证（1个具体案例或数据）
  → 金句总结 + 关注引导 + 评论区互动
```

### 带货模式脚本结构

```
开场Hook（50-80字）
  → 痛点场景（引发需求）
  → 产品/方案种草（核心卖点，3个以内）
  → 信任背书（数据/资质/口碑）
  → 限时/限量紧迫感
  → 下单引导 + 评论区互动
```

### 情绪句式参考

| 情绪 | 句式 |
|------|------|
| 共鸣 | "你是不是也……""你有没有过这种经历……" |
| 焦虑 | "别再……了""真相是……""99%的人都在犯……" |
| 希望 | "第一个方法……""其实很简单……""记住这3点……" |
| 行动 | "记住，……""从今天开始……" |
| 紧迫 | "仅剩……""最后……个""今天结束前……" |
| 渴望 | "想象一下……""如果……就好了""终于不用再……" |

## Phase 5 — 节奏验收

| 检查项 | 标准 | 未达标 |
|--------|-----|--------|
| 总字数 | 500-700 字 | 调整密度 |
| 钩子总数 | >= 7 个 | 补充钩子 |
| 开头钩子 | 前 50 字内 | 重写开头 |
| 钩子间距 | 不超 80 字无钩子 | 插入钩子 |
| 情绪曲线 | >= 2 次切换 | 增加段落 |
| 口语化 | 无书面语长难句 | 拆句替词 |
| 结尾引导 | 评论 + 关注 | 补充 |
| 钩子兑现 | 承诺全覆盖 | 补充遗漏 |
| 行业适配 | 钩子/术语符合行业特征 | 替换 |
| 风格贴合度（仅 `reference_mode=true`） | 钩子组合 / 段落顺序 / 句长节奏与参考素材一致；无照搬原文超 8 个连续字 | 返回 Phase 4 重写 |

未达标项返回对应 Phase 修改，不输出给用户。

## Phase 6 — 交付

### 版本 A：提词器版（对话内输出）

纯文本，用于直接复制到提词器：
1. 一句话概述（字数 + 预估时长 + 行业标签）
2. 完整文案（纯文本，无标注、无 emoji、无格式标记）
3. 互动提示

### 版本 B：拍摄参考版（默认仅 md 文件）

富文本 Markdown，用于拍摄参考和团队协作。**默认只用 `create_file` 生成 `.md` 文件，不写钉钉文档**。包含：
- 一级标题：`# 口播脚本 — {行业标签} · {核心主题}`
- 元信息引用块（核心概念 / 目标人群 / 预估时长 / 文案基调 / 情绪曲线 / 行业标签 / 脚本模式）
- 分区块结构（🪝 开场 Hook → 📖 核心内容 → 💡 案例/场景 → 🎯 金句+CTA）
- 关键金句 **加粗**（2-4 处）
- 每段末尾拍摄提示引用块

**完整格式参考 [references/viral-examples.md](references/viral-examples.md) 中的金标案例。**

### 可选追加：钉钉文档（用户主动要求才出）

仅当用户明确表达需要钉钉文档时才追加生成，触发关键词包括但不限于：
- "出钉钉文档"、"建钉钉文档"、"写到钉钉"、"同步钉钉"、"同步到钉钉"
- "团队协作版"、"协作文档"、"分享给团队"
- "钉盘"、"DingTalk doc"

触发后，在 md 文件之外追加写一份钉钉文档，内容与版本 B 的 md 一致。命名规则与 md 一致（见下方"交付说明"）。

### 套系交付

套系模式下，逐条生成并交付。每条独立输出版本 A + 版本 B。

**套系索引：** 全部生成后，输出一份套系总览表：

| # | 主题 | 模式 | 字数 | 核心钩子 | 选题定位 |
|---|------|------|------|---------|---------|
| 1 | …… | 教学 | 580 | 痛点戳中 | 痛点共鸣 |
| 2 | …… | …… | …… | …… | …… |

### 以下内容仅在用户主动要求时输出（默认不输出）

- 钩子分布图
- 时长预估表
- 质量自检清单
- 文案结构分析

### 交付说明

- 文档命名：`口播脚本 — {行业} · {2-6字关键词}`，禁止长句/日期/版本号
- **默认交付**：版本 A（对话内）+ 版本 B 的 md 文件；**不出钉钉文档**
- 用户说"不要存文档"/"只要文案" → 仅版本 A，跳过版本 B 的 md 文件
- 用户说"出钉钉文档"/"同步钉钉"/"团队协作版"等 → 版本 A + 版本 B md + 追加钉钉文档
- 用户说"不需要拍摄提示" → 版本 B 去掉拍摄引用块

## 迭代修改

| 用户请求 | 行为 |
|---------|-----|
| "换个开头" | 换钩子类型，正文不变 |
| "再激烈一点" | 加强情绪词 + 反常识/数字冲击钩子 |
| "太长了" | 压缩中间，保留钩子密度 |
| "太短了" | 补充案例或观点 |
| "语气太夸张" | 换温和钩子（疑问式/利益诱惑） |
| "换带货模式" | 按带货脚本结构重写 |
| "加一条选题" | 在套系中追加，保持递进关系 |
| "这条换主题" | 替换单条，保持套系整体递进 |

每次修改输出**完整文案**，不输出 diff。修改后自动覆盖已生成的 md 文件；**若此前已应用户要求生成过钉钉文档，则同步覆盖钉钉文档；否则不触发钉钉文档写入**。

## 意图映射

| 用户意图 | 行为 |
|---------|-----|
| 纯自然语言（行业 + 话题 + 单条） | Phase 0-6 全流程（单条） |
| 提供文件 | Phase 0 调用 `read_file` 提取参考内容 → Phase 1-6 全流程 |
| 提供视频平台链接 | Phase 0 调用 `use_skill` 激活 content-breakdown → Phase 1-6 模仿参考脚本生成 |
| 行业 + "一套" | Phase 0-2（输入预处理 + 套系选题）→ 用户确认 → 逐条 Phase 3-6 |
| "帮我设计几个开头钩子" | 仅 Phase 3 |
| "优化一下节奏" | 仅 Phase 5 + 修改 |
| "不要存文档"/"只要文案" | Phase 0-5 + 仅版本 A |
| "出钉钉文档"/"同步钉钉"/"团队协作版" | Phase 0-6 全流程 + 版本 B md + 追加钉钉文档 |
| "我是XX行业" | Phase 1 识别行业 → 推荐模式 + 选题方向 → 用户确认 |

## 易混淆场景（不要用本 Skill）

- 小红书图文笔记 → 小红书图文技能
- 长视频脚本（5分钟+）→ 长视频脚本技能
- 广告投放文案 → 广告文案技能
- 短剧剧本 → 短剧剧本技能
- 分析爆款视频（非创作）→ 内容分析技能
- 电商主图/详情页文案 → 电商文案技能

## 错误处理

| 错误 | 处理 |
|------|-----|
| 未提供话题 | 根据行业推荐2-3个选题方向 |
| 话题过泛（如"人生"） | 缩小范围，提供 2-3 方向 |
| 敏感/违规内容 | 拒绝，说明原因 |
| 字数超标（>800） | 压缩到 600 字 |
| 钩子验收未过 | 返回对应 Phase 修改 |
| 非口播格式 | 路由到对应技能 |
| 钉钉文档写入失败（仅在用户主动要求生成钉钉文档时适用） | 保证对话输出 + md 文件已交付，单独报告钉钉文档失败原因 |
| 行业无法识别 | 询问用户行业或使用通用模板 |

## 详细参考

- [references/hook-techniques.md](references/hook-techniques.md) — 8 种钩子类型详解、行业钩子适配、密度设计、常见错误、模板库
- [references/industry-templates.md](references/industry-templates.md) — 12 大行业模板：脚本骨架、选题方向、术语库、钩子偏好、套系规划参考
- [references/viral-examples.md](references/viral-examples.md) — 金标案例（含教学/带货双模式完整输出）+ 多行业爆款案例
- [references/reference-mode-example.md](references/reference-mode-example.md) — `reference_mode=true` 端到端示例：content-breakdown 报告 → 字段抽取 → 模仿生成 → 钩子映射 → 照搬检查

