Install
openclaw skills install @lijinhongucl-pixel/article-to-video-shots当用户有一篇已写好的长文(公众号推文、博客、测评稿、教程、报告、小红书长帖、技术文档),想做成短视频时触发。产出带时间轴的镜头清单,每个镜头包含画面描述、中文提示词、英文提示词、配音文案、屏幕字幕五要素,可直接投喂可灵、即梦、Sora、Veo、Runway 等文生视频模型。内置九项硬伤体检,自动检查配音字数是否超出时长、画面是否误让模型渲染中文、提示词是否遗漏统一风格前缀、单镜头是否过长。自带经验沉淀机制,每次完成的教训会累积下来变为新检查项。适用于抖音、视频号、小红书、B站、YouTube Shorts 等竖版短视频场景。触发词包括「把这个做成视频」「写视频提示词」「出分镜」「做短视频脚本」「长文转视频」「」「AI 视频脚本」「口播稿」「分镜头」「storyboard」「text to video」。不用于纯图片海报生成,不用于已有时长精确的剪辑工程。
openclaw skills install @lijinhongucl-pixel/article-to-video-shots把一篇长文压缩成 30 到 90 秒的竖版短视频脚本。
这个 skill 替用户做三件他们自己做不好的事。一是把文章结构改成镜头结构,二是把中文意思翻译成视频模型听得懂的话,三是把每次踩过的坑记住,下次自动拦住。
动笔之前必须先看一下过去攒下的经验,这一步不能跳:
avs learn digest
# 没装 CLI 就跑 python3 scripts/learn.py digest
输出里的每一条都要遵守。特别留意「画面禁用词」,那些是过去真实翻过车的东西。
顺便问一句这次有没有新增偏好,比如客户指定要某套配色或某种口播风格,有就先 learn.py add 进去再开工。
文章按「论证」组织,视频按「信息块」组织。直接把段落搬进镜头会得到一堆同一个机位的口播画面,观众三秒就划走。第一步一定是重排,不是摘抄。
镜头数控制在 6 到 9 个。少于 6 个讲不完,多于 9 个观众记不住。单个镜头 4 到 8 秒,钩子镜头不超过 5 秒。
每个镜头只承载一个信息点。一个镜头里塞两个观点,等于这个镜头作废。
读完全文,用一句话写出这篇文章最想让人记住的那件事。不是标题,是读完之后的认知转变。
提炼不出来,说明这篇文章不适合做视频,直接告诉用户并说明原因,不要硬拆。这是唯一的提前终止条件,触发就停。
主线定下来后列出支撑它的证据点,每个证据点对应候选镜头。证据点超过 9 个就合并同类,不要靠删掉重要论据来凑镜头数。
按这个骨架排,这是长文转视频唯一稳定的结构:
| 位置 | 作用 | 建议时长 |
|---|---|---|
| 镜头 1 | 钩子,制造悬念或给出反常事实 | 3 到 5 秒 |
| 中间 4 到 6 个 | 痛点和转折,交替推进 | 每个 5 到 8 秒 |
| 最后 1 个 | 收束加行动引导 | 5 到 8 秒 |
钩子不要用「今天聊聊某某」这种介绍式开头。用文章里最反直觉的那个事实,或者最有画面感的那个动作。
需要脚手架时先让它生成一个骨架,省去排版时间:
avs init 文章.md --duration 60
# 没装 CLI 就跑脚本
python3 scripts/init_storyboard.py 文章.md --duration 60
avs 是随这个技能一起分发的命令行工具,装在 avs_cli 包里,avs init 会转发到 scripts/init_storyboard.py。它会读文章的小标题作为候选镜头主题,按钩子短、中段平均、收尾略长的规则切好时间轴。骨架里的 TODO 必须逐个填实,不允许批量编造。
镜头类型不够用时查 references/shot-patterns.md,里面有九种常见镜头的画面公式和翻车点。
每个镜头必须写全这五项,缺一项这个镜头就没法直接投喂:
## 镜头 N|镜头名(起止秒)
画面:给剪辑和设计看的一句话,说明这个镜头里发生了什么动作
中文提示词:给模型看的画面描述,只写看得见的东西
英文提示词:同一画面描述的英文版本
配音:口播原文,要能直接念出来
字幕:叠在屏幕上的短句,通常不超过 15 字
镜头语言从中英对照词表 references/prompt-patterns.md 里取,景别、运镜、光线这些词决定画面质感。
写提示词时重点处理这三件事:
全片用一个全局风格前缀。用户没指定时默认这套中性方案:
竖屏 9:16,电影级打光,干净的极简科技风,柔光,低饱和,画面稳定无闪烁
同时给一组全局负向提示词,每次一起提交:
变形文字,乱码字符,水印,商标 logo,画面闪烁,过度饱和,廉价广告风
产出后必须跑检查脚本,不凭感觉交稿:
avs check 分镜.md
avs check 分镜.md --strict # 提醒也算失败
脚本查九项硬伤和五类提醒。硬伤必须改到清零才能交付:
| 代号 | 含义 |
|---|---|
| E1 | 缺必备字段 |
| E2 | 配音字数超出该镜头时长能念完的范围 |
| E3 | 画面描述里出现需要模型渲染的文字 |
| E4 | 镜头数不在 6 到 9 之间 |
| E5 | 时间轴断档、重叠或起点不为零 |
| E6 | 提示词没带全局风格前缀 |
| E7 | 英文提示词里混入了中文 |
| E8 | 命中历史沉淀的画面禁用词 |
| E9 | 字段还留着 TODO 占位符 |
E8 是这套工具自我进化的地方。经验文件里记过的禁用词会自动变成新的检查项,不用改代码。
提醒项包括画面出现金额百分比、提示词过短或过长、字幕超过 15 字、单镜头超过 8 秒、配音量相对画面过空。提醒默认不影响退出码,加 --strict 后算失败。
默认交付 Markdown。用户另有要求再导出别的形式,不要自作主张生成网页或海报。
发布注意事项里必须提醒三件事,视频里不放外链、界面类镜头录屏前核对当前版本、不可独立验证的数字只进配音不进画面。
每完成一条片子,把这次学到的东西写回去。这一步决定了下次能不能更准,不允许跳过。
至少回写两到三条,重点记这四类:
# 用户明确否决过的表达
avs learn add --category 画面 --text "涉及餐饮的画面不要给食物特写" --why "客户嫌廉价"
# 某个模型渲染失败的具体元素,会被体检自动拦截
avs learn add --avoid "沙漏" --why "该模型渲染沙漏必崩"
# 稳定的用户偏好
avs learn add --category 用户偏好 --text "配乐偏克制,不要情绪煽动型"
learn.py promote <id> 把项目级经验提升为全局经验,跨项目复用。
learn.py show 会统计每条经验的命中次数。同一条经验出现三次以上,就应该升级成这个 SKILL.md 里的硬规则,而不是继续留在经验文件里。改完 SKILL.md 记得把 version 递增。
画面里不要出现任何需要模型渲染的文字。 文生视频模型渲染中文基本必废,出来的是乱码。凡是「写着某某」「打印出一行」这类描述一律删掉,改成「字幕」字段交给后期叠加。
不要出现具体金额和百分比。 一是触发审计风险,二是模型会渲染错。价格信息只在配音里说。
商标和品牌 logo 要规避。 涉及第三方商业品牌的热点文,用通用物件代替,比如用一张通用小票代替某个快餐的包装。
配音语速按每秒 4.5 个汉字估算。 8 秒的镜头最多 36 字。写超了砍字或加时长,写少了画面太空观众会觉得拖,这两种情况脚本都会报警。
同一个元素要跨镜头保持一致。 文章里反复出现的核心物件,全片用同一个颜色同一个形态描述,不要这个镜头叫卡片、下个镜头叫面板。
产品界面类镜头必须核对当前版本。 提示词里写按钮名称之前先确认界面没改版,录出来和提示词对不上是最常见的翻车点。
| 文件 | 用途 |
|---|---|
scripts/init_storyboard.py | 从长文生成带时间轴的分镜骨架 |
scripts/check_storyboard.py | 体检,支持多文件、--strict、--json |
scripts/learn.py | 经验沉淀,add / show / digest / promote / forget |
scripts/storyboard_lib.py | 解析与校验公共库 |
references/shot-patterns.md | 九种镜头类型的画面公式 |
references/prompt-patterns.md | 镜头语言中英对照词表 |
这个技能还配了一个命令行工具 avs,用来把它装进各种 Agent。用户可能通过 pipx install 或一键脚本装过,也可能直接复制目录。
avs install 会把本技能复制进 WorkBuddy、Claude Code、Cursor、Codex CLI 等 Agent 的 skills 目录,自动检测本机装了哪些avs init / avs check / avs learn 会转发到上面 scripts/ 里的对应脚本,作用完全一样,只是不用记路径adapters.json,新增平台只改配置对本 skill 的影响:无论用户怎么装,本文件(SKILL.md)和 scripts/、references/ 的相对位置不变。所以上面所有命令里的相对路径写法始终成立,不需要关心自己被装到了哪里。
如果用户说「装到 Cursor 里」或「给 Claude Code 也装一份」,告诉他运行 avs install --agent cursor 即可,不要手动复制目录。路径对不上时用 avs install --dir <路径> 兜底。
交付一个 Markdown 文件给用户,格式照上文第三步的五件套代码块组织即可。这个 skill 不附带成品示例文件,避免把某个具体项目的品牌和口吻带进每一次使用。
经验文件不放在技能包内。全局在 ~/.workbuddy/avs/learnings.jsonl,项目级在当前目录 .avs/learnings.jsonl,这样升级技能包不会冲掉已经攒下来的东西。