# Short Video Copywriter

> 将用户粘贴的原稿（文章/新闻/长文）改写为短视频口播文案，支持分镜脚本生成并用 AI 生图为每个分镜配插图。 自动从 WPS 笔记中加载"短视频脚本偏好"，首次使用时引导用户填写偏好并存入笔记，每次生成后询问是否更新偏好。 触发词："生成短视频文案""改成短视频脚本""帮我写视频稿""把这篇稿子改成视频口播""短视频文案""视频脚本""分镜脚本""生成分镜"。 不适用于：从0到1创作内容（用 content-creator）、纯排版需求。

- Skill: `wpsnote/short-video-copywriter` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wpsnote/short-video-copywriter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wpsnote/short-video-copywriter/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: wpsnote (https://skillmd.com/u/wpsnote)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wpsnote/short-video-copywriter

---


# Short Video Copywriter - 短视频文案生成工作流

将原稿改写为短视频口播文案，结合用户的个性化偏好，确保风格一致、平台适配。

---

## 铁律（最高优先级）

### 1. 必须通过工具写入笔记，绝对禁止在对话中输出文案内容
**AI 不允许在对话消息里输出任何文案、分镜脚本或生图结果，无论任何情况，无一例外。**
- 禁止在对话中输出文案正文、分镜表格、BGM 建议的具体内容
- 禁止以「以下是文案内容」「分镜如下」等任何形式在消息里直接输出结果
- **唯一合法的输出方式**：调用 `create_note` + `batch_edit` / `edit_block` 将内容写入 WPS 笔记
- 写入成功后，对话中只允许出现：笔记标题、字数、一句话摘要、「已写入笔记」
- 违反以上任一条，即为执行错误，必须立刻停止并重新通过工具写入

### 2. 提问必须附备选项
对话中只能做两件事：**提问** + **状态通知**。
- 提问时必须附上 2-4 个备选选项，不让用户面对空白
- 状态通知：调用工具前一句话告知正在做什么

---

## 核心流程

```
加载偏好 → 接收原稿 → 生成文案（+分镜脚本）→ [可选] 分镜生图 → 确认是否更新偏好
```

---

## Step 1：加载偏好

**执行**：使用 `search_notes` 搜索关键词 `短视频脚本偏好`。

- **找到偏好笔记** → 读取笔记内容，提取表格中的偏好参数，以如下格式告知用户：
  ```
  已加载短视频偏好：平台={平台} | 时长={时长} | 风格={风格} | CTA={类型}
  ```
- **未找到偏好笔记** → 进入 [首次配置流程](#首次配置流程)

> 偏好笔记标题约定为：`短视频脚本偏好`

---

## Step 2：接收原稿

如果用户还没有粘贴原稿，提示：

> "请把原稿贴过来，我来帮你改写成短视频文案。"

原稿接收后，快速分析：
- 原稿核心信息（1句话）
- 原稿字数和信息密度
- 建议视频时长（根据偏好中的默认时长或原稿量推算）

---

## Step 3：生成文案与分镜脚本

根据偏好参数和原稿，调用 `create_note` 新建笔记（标题：`{原稿标题/主题} - 短视频文案`），再用 `batch_edit` 写入以下结构：

### 写入笔记的内容结构

```xml
<h1>{原稿标题} - 短视频文案</h1>
<p><tag>#短视频</tag></p>
<p>平台：{平台} | 时长：{预估时长} | 风格：{风格}</p>
<h2>开场钩子（0-3秒）</h2>
<p>{吸引注意力的开场白，提出悬念/冲突/利益点}</p>
<h2>主体内容</h2>
<p>{核心信息，分段口播，每段约15-20字}</p>
<h2>结尾 CTA</h2>
<p>{引导点赞/关注/评论/购买}</p>
<p>预估字数：{N}字 | 预估时长：{T}秒</p>
<h2>BGM 建议</h2>
<p>情绪：{情绪关键词}</p>
<p>搜索关键词：{词1} / {词2} / {词3}</p>
```

写入完成后，对话中**只说**：「文案已写入笔记《{笔记标题}》，共 {N} 字，预估 {T} 秒。需要我帮你拆分镜脚本并生成配图吗？」

**不得在对话中展示任何文案内容。**

### 生成原则

1. **钩子优先**：开场3秒必须抓住眼球，直接切入最有价值的信息
2. **口语化**：去掉书面语，用说话的方式重组句子
3. **短句节奏**：每句不超过20字，适合口播停顿
4. **信息提炼**：原稿可能有大量背景/铺垫，只保留核心信息
5. **平台适配**：根据平台特点调整语气（抖音更强势，视频号更温和）

### BGM 关键词对照表

| 视频风格 | 情绪 | 推荐 BGM 关键词 |
|---------|------|----------------|
| 干货直给 | 专注/高效 | lo-fi hip hop / 轻电子 / 专注背景音乐 |
| 情绪带动 | 励志/热血 | 励志纯音乐 / epic orchestral / 燃向剪辑 |
| 轻松幽默 | 轻快/趣味 | 轻松欢快 / ukulele / 搞笑bgm |
| 严肃专业 | 沉稳/权威 | 企业宣传音乐 / 商务背景音乐 / corporate |

- 用户确认需要分镜 → 进入 [Step 3.5：分镜脚本与生图](#step-35分镜脚本与生图)
- 用户不需要 → 跳至 Step 4

---

## Step 3.5：分镜脚本与生图

### 分镜脚本格式

将文案拆分为若干分镜，**写入 WPS 笔记时以表格形式呈现**，每行一个分镜：

| 列名 | 内容说明 |
|------|---------|
| 分镜 | 序号，如 01、02 |
| 时间 | 该镜头时间段，如 0-3秒 |
| 口播文案 | 这段的具体台词 |
| 场景说明 | **直接作为生图 prompt 使用的英文描述**（主体 + 场景 + 动作/状态 + 风格 + 色调 + 构图） |
| 配图 | 生成后通过 insert_image 插入，初始为空 |

> 分镜数量建议：15秒视频 3-4 个，30秒 5-6 个，1分钟 8-10 个

**场景说明写法规范**（即生图 prompt）：
- **中文**，结构：`主体 + 场景/背景 + 动作/状态 + 风格 + 色调 + 构图`
- 风格词按视频风格选择：`电影感`、`写实照片`、`插画风格`、`动漫风格` 等
- 避免：文字、logo

示例：`一个人在繁忙的城市街道上行走，夜晚霓虹灯倒映在湿润的地面上，电影感风格，冷蓝色调，广角镜头`

**写入笔记的表格 XML 模板**（先占位，配图列后续逐个填入）：

```xml
<h2>分镜脚本</h2>
<table>
  <tr>
    <td><p><strong>分镜</strong></p></td>
    <td><p><strong>时间</strong></p></td>
    <td><p><strong>口播文案</strong></p></td>
    <td><p><strong>场景说明</strong></p></td>
    <td><p><strong>配图</strong></p></td>
  </tr>
  <tr>
    <td><p>01</p></td>
    <td><p>0-3秒</p></td>
    <td><p>{台词}</p></td>
    <td><p>{场景说明/生图prompt}</p></td>
    <td><p>生成中…</p></td>
  </tr>
  <!-- 更多分镜行… -->
</table>
```

### 分镜生图流程

表格写入笔记后，逐个分镜取"场景说明"列内容直接作为 prompt 生图，**优先使用 CLI，失败则降级到 MCP：**

**方法一：CLI（优先）**
```bash
wpsnote-cli gen-image \
  --prompt "{场景说明列的中文内容}" \
  --width 1080 --height 1920 \
  --json
```
- 竖版（抖音/视频号/小红书）：`1080×1920`
- 横版（B站/YouTube）：`1920×1080`

**方法二：MCP（降级）**
```
generate_image({ prompt: "{场景说明列的中文内容}", width: 1080, height: 1920 })
```

> ⚠️ 生图限速每分钟 1 张，多分镜生成前告知用户预计耗时（分镜数 × 约60秒）

### 配图回填步骤

每张图生成完毕后：
1. 获取图片 URL（CLI 从 JSON 输出中取 `url` 字段；MCP 直接返回 URL）
2. 用 `get_note_outline` 刷新获取表格的 block_id
3. 整表替换（`edit_block` replace），将对应行"配图"列的占位文字替换为 `<img/>` 标签

> 表格须整表替换，不可单独编辑 `<td>` 内部。每次回填一张后刷新 outline 再替换下一张。

每张回填完成后，对话中只说：「第 {N} 张配图已写入」。全部完成后说：「分镜脚本和 {N} 张配图已全部写入笔记《{笔记标题}》。」**不得在对话中展示任何分镜内容或图片。**

---

## Step 4：确认是否更新偏好

询问：「这次用的偏好是：{平台}、{时长}、{风格}。有需要调整的参数吗？A. 更新某项 B. 不用」

- 用户说更新 → `edit_block` 整表替换偏好笔记，完成后说「偏好已更新到笔记」
- 用户说不用 → 结束

---

## 首次配置流程

当未找到偏好笔记时，询问以下参数：

```
我没有找到你的短视频脚本偏好，先帮你配置一下吧：

1. 主要发布平台？（抖音 / 视频号 / 小红书视频 / B站 / 其他）
2. 常用视频时长？（15秒 / 30秒 / 1分钟 / 3分钟）
3. 内容风格？（干货直给 / 情绪带动 / 轻松幽默 / 严肃专业）
4. 是否需要 BGM 建议？（需要 / 不需要）
5. 是否需要 CTA？（需要 / 不需要）
6. CTA 类型？（点赞 / 关注 / 评论 / 私信 / 购买）
```

收到回答后：
1. 整理为偏好笔记内容
2. 调用 `create_note` 创建标题为 `短视频脚本偏好` 的笔记
3. 将偏好以结构化方式写入（见下方偏好笔记模板）
4. 告知用户"偏好已保存到 WPS 笔记，下次自动加载"
5. 继续执行 Step 2

### 偏好笔记模板

偏好以**表格形式**写入 WPS 笔记，方便查看和局部更新：

```xml
<h1>短视频脚本偏好</h1>
<p><tag>#短视频</tag></p>
<table>
  <tr>
    <td><p><strong>配置项</strong></p></td>
    <td><p><strong>当前值</strong></p></td>
    <td><p><strong>可选项</strong></p></td>
    <td><p><strong>说明</strong></p></td>
  </tr>
  <tr>
    <td><p>主要平台</p></td>
    <td><p>{平台}</p></td>
    <td><p>抖音 / 视频号 / 小红书视频 / B站</p></td>
    <td><p>影响语气节奏</p></td>
  </tr>
  <tr>
    <td><p>默认时长</p></td>
    <td><p>{时长}</p></td>
    <td><p>15秒 / 30秒 / 1分钟 / 3分钟</p></td>
    <td><p>15秒≈40字，1分钟≈160字</p></td>
  </tr>
  <tr>
    <td><p>内容风格</p></td>
    <td><p>{风格}</p></td>
    <td><p>干货直给 / 情绪带动 / 轻松幽默 / 严肃专业</p></td>
    <td><p>影响措辞和情绪</p></td>
  </tr>
  <tr>
    <td><p>是否需要 BGM 建议</p></td>
    <td><p>{是/否}</p></td>
    <td><p>需要 / 不需要</p></td>
    <td><p>每次生成文案时附上 BGM 推荐</p></td>
  </tr>
  <tr>
    <td><p>是否需要 CTA</p></td>
    <td><p>{是/否}</p></td>
    <td><p>需要 / 不需要</p></td>
    <td><p>结尾引导动作</p></td>
  </tr>
  <tr>
    <td><p>CTA 类型</p></td>
    <td><p>{类型}</p></td>
    <td><p>点赞 / 关注 / 评论 / 私信 / 购买</p></td>
    <td><p>可多选，用逗号分隔</p></td>
  </tr>
</table>
<h2>备注</h2>
<p>（可记录特殊要求，如：某类题材特别处理方式）</p>
```

**更新偏好时**：整表替换（对表格 block 使用 `edit_block` 的 replace 操作），不要逐行修改。

---

## 偏好参数说明

| 参数 | 说明 | 示例值 |
|------|------|--------|
| 主要平台 | 决定语气和节奏 | 抖音、视频号、小红书视频 |
| 默认时长 | 决定信息密度 | 15秒≈40字，30秒≈80字，1分钟≈160字 |
| 内容风格 | 决定措辞和情绪 | 干货直给、情绪带动、轻松幽默 |
| CTA | 结尾引导动作 | 点赞、关注、私信咨询 |

---

## 多版本生成

如果用户说"给我多几个版本"或"有没有其他风格"，可输出 2-3 个版本：

- **版本A（当前偏好风格）**
- **版本B（情绪更强烈）**  
- **版本C（更简短精炼）**

---

## 常见问题处理

| 场景 | 处理方式 |
|------|---------|
| 原稿太长（>3000字） | 提示用户：建议先说明重点方向，否则只提炼最核心的信息 |
| 原稿本身是视频稿 | 直接优化节奏和钩子，不大改结构 |
| 用户说"不够好" | 询问具体哪里不满意：钩子/节奏/风格/内容取舍 |
| 偏好笔记内容格式混乱 | 读取后用 AI 解析，宽容匹配关键字段 |
| CLI 生图失败（命令不存在/超时） | 自动降级到 MCP `generate_image` 工具 |
| MCP 生图也失败 | 告知用户生图服务暂不可用，仅输出文字分镜脚本 |
| 生图限速（1次/分钟） | 告知用户需要逐张生成，每张约30-120秒，询问是否继续 |

