> 生成视频脚本,覆盖短视频(7-60秒)到中长视频(1-30分钟)全时长。 短视频:Hook 变体评分、分秒计时、字幕文案、封面方案。 中长视频:留存率优化、节奏中断点、前向钩子、章节结构。 适用于抖音、视频号、小红书视频、B站、YouTube 等平台。 当用户说"视频脚本"、"短视频脚本"、"抖音脚本"、"B站脚本"、 "视频号脚本"、"竖版视频"、"Reel 脚本"、"写个视频文案"时使用。 和 video-strategy 的区别:video-strategy 做视频内容规划和系列策划, video-script 写具体某一条视频的脚本。
npx skills add https://github.com/ZJU-REAL/Easel --skill video-script
> 根据目标时长自动适配短视频或中长视频模式,生成留存率优化的结构化脚本。
| 字段 | 必填 | 说明 | 示例 |
|------|------|------|------|
| 主题 | 是 | 视频主题 | "为什么 Rust 正在替代 C++" |
| 目标时长 | 是 | 秒数或分钟数 | 30 秒 / 10 分钟 |
| 平台 | 否 | 抖音/视频号/小红书/B站(默认按时长推断)| 抖音 |
| 内容类型 | 否 | 科普/教程/评测/种草/解说/杂谈 | 科普 |
| 核心要点 | 是 | 要覆盖的关键信息 | 内存安全、性能… |
| 调性 | 否 | 专业/轻松/犀利/对话感(默认:对话感)| 轻松 |
| 时长 | 模式 | 典型平台 | 关键指标 |
|------|------|----------|----------|
| 7-15 秒 | 短视频·极速 | 抖音/视频号 | 3 秒完播率 |
| 15-60 秒 | 短视频·标准 | 抖音/视频号/小红书 | 完播率、DM 转发、收藏 |
| 1-5 分钟 | 中视频 | 视频号/抖音/B站 | 5 秒留存、互动率 |
| 5-30 分钟 | 长视频 | B站/YouTube | 30 秒留存、播放完成率 |
语速基准:中文约 250 字/分钟。
从 5 种 Hook 类型中选 3 个,各生成一个变体:
| 类型 | 适用场景 | 示例 |
|------|---------|------|
| 好奇缺口 | 冷知识、反直觉 | "你每天做的这件事其实在伤害你" |
| 模式打断 | 反常规、挑战认知 | "忘掉你以前学的所有XX" |
| 身份触发 | 精准受众 | "如果你是XX,这条一定要看完" |
| 痛点共鸣 | 真实困扰 | "明明很努力了还是没效果?" |
| 权威背书 | 数据/研究支撑 | "最新研究发现:XX 竟然是错的" |
每个 Hook 按 4 维度评分(每项 1-5,满分 20):好奇强度、打断效果、身份触发、3 秒清晰度。选最高分作为主 Hook。
按时长压缩结构:
| 时长 | 结构 |
|------|------|
| 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 字,口语化,加括号注释(停顿/强调/表情)。
caption:100-300 字,Hook 变体开头(不重复视频 Hook),DM 转发 > 收藏 > 点赞。
hashtags:3-5 个垂直标签,不用泛标签。
封面:3-5 字大标题 + 画面描述 + 表情。
| 维度 | 权重 | 检查点 |
|------|------|--------|
| Hook 强度 | 25 | 好奇缺口、打断效果、3 秒清晰度 |
| 内容质量 | 25 | 价值密度、结构、痛点-方案清晰度 |
| caption+CTA | 20 | 长度 100+字、转发型 CTA、Hook 变体 |
| 格式合规 | 15 | 9:16 安全区、时长匹配、封面 |
| 算法信号 | 15 | 收藏/转发优化、原创性 |
≥80 分交付,<60 分返工后重评。
> 留存率优化的详细方法(节奏中断点 / 前向钩子 / 章节结构 / 留存曲线)见 references/retention-scripting-guide.md。
根据目标时长分配各段:
| 阶段 | 时间 | 目标 |
|------|------|------|
| 抓眼 | 0-5s | 全片最重要的一句话,不加片头 |
| 承诺 | 5-15s | 看完能获得什么,具体可感知 |
| 悬念 | 15-30s | 不看会损失什么 |
每段结构:节奏中断 → 正文 → 微总结 → 前向钩子。
节奏中断每 60-90 秒一次(短视频每 15-30 秒),类型:【镜头切换】【画面】【音效】【数据冲击】。
扫描全稿,在危险区标 ⚠️ 警告(至少 3 处)+ 应对方案。
产物写入 outputs/。包含:
python3 skills/shared/scripts/wordcount.py check --target <时长分钟×250> --tolerance 0.1(stdin 传入),退出码 0 = 达标;非 0 时脚本给出「还需增/删 X 字」,据结果增删口播后重跑,直到通过。
Take zju-real/video-script from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.