自研 WorkBuddy Skill · short-video-producer · 863 个文件 / 21.8 MB
说一句「短视频生产」,它先问你走哪条线:查数据从零选题,还是贴一篇文章,还是脚本已经写好了只做成片。定下路线,八个站一路推下去——选词、采集、写稿、配音、分镜、合成、混音、验收,每一站都有能数出来的判据,不符合就不许往下一站走。
触发词:短视频生产 / 做一条视频号 / 出一条口播 / 从选词到成片 / 按这篇文章出脚本 / 出片 / 换个风格重做。
做视频号口播的人,卡点通常不在拍,也不在剪,而在前面那一大段没有章法的活:这期讲什么、别人讲过没有、稿子写到什么程度算能念、字幕该切多碎、音效该多大。每一步都能凭感觉做,做出来就每次都长得不一样。
这个技能把这些判断全部落成数字。稿子不超过 800 个汉字,最长句子不超过 36 个字,十来个字的短句要占到四分之一以上;成片语速落在每分钟 230 到 250 字之间;音效比人声低 16 到 18 分贝;单场静帧不超过 10 秒。数字定下来,返工就有依据,吵架也有依据。
它的第二条骨架是两道确认门。脚本写完先给你看,你点头才做分镜图;分镜图出来再给你看,你点头才合成视频。中间不许自己往下冲——因为一旦冲错,返工的不是一段文字,是十几张图加一条片子。
产线上九成的返工,都是顺序做反了:先拍一个参数,再拿眼睛判断结果对不对。所以每一步都先定义「什么算对」。
微信指数、红心、在看、评论,只采界面上真实读到的。联网搜索只用来核实案例出处,不许拿它补数据。
语速、断句、重音是作者的态度。合成音等于替他拍成另一个人的片子,所以这条是红线。
路线是时间决策,交给用户选;切口、主词、用哪一版稿属于专业判断,不许做成选择题。
查微信指数定需求,量竞争度定稀缺,采 20 条对标视频加 20 篇公众号,读评论区找别人没讲的缺口,给 5 个角度候选,你选完再按七段骨架写稿。
约半天出第一版拆它的观点、找它没讲的缺口,给 2 个切口候选,你选完按顾问式四段写完,交三份:拆解、带接缝表的脚本、纯文本。
2–3 小时不改稿,只体检。体检完出分镜、写每场出图提示词、合成、混音、验收,一路送到出厂。
1–2 小时三条线在第 3 站合流,合流之后共用同一套标准:800 字、一个论点、一个案例、结尾回扣标题。也就是说不管前面从哪儿起步,后面的活没有区别。
每一站都有明确产出物落盘。中间还有一个配音站插在 3 与 4 之间,编号 3.5,因为它决定后面所有时间轴。
先给三个选项让你定路线,再花 60 秒把依赖跑一遍:微信登录状态、kimi-cu、ffmpeg、om、327手绘、Python 包。哪一样不通就停手报障,不自己找替代方案。
环境自检报告选题是二维的:需求乘供给。只查指数不看竞争度,等于只做了一半。判定分四档——蓝海、可做、有窗口、红海,每一档对应不同打法。
01-素材与选题卡.md20 条视频号加 20 篇公众号,再看评论区。采集走 Windows 上的微信自动化脚本,白屏一律不点、采完立刻关页面、素材只用两年以内的。
原始数据/ + 04-研究进度.md线 1 给 5 个角度候选,线 2 给 2 个切口候选,你选完才动笔。写完全机器自检:precheck.py 退出码为 1 就是有 FAIL,不许交稿。
先剪停顿,再换 1.5 倍速,顺序不许反。产出干声与一份新的时间轴 JSON——后面分镜场数、字幕起止全部按新时间轴重算,不许把老时间轴整体除以 1.5。
voice-tight.wav + timeline.json场数按换速后的真实时长反算。画风默认走 327手绘,调性接不住才翻内置画风包。定下来就锁死,一个片子只准一种画风。
images/seq/ 逐帧图一个片子一个 HTML 加一条 GSAP 时间轴,由 Python 生成器写,不手改。标题常驻两行、字幕落在画面下方、取景框按内容归一化,全部走同一份版式规则代码。
film/index.html无声渲染,再把人声与音效轨合起来。剪过气口的配音不能交给自动混音,否则人声会被当成背景音乐压掉二十几分贝。
成片vN-9x16.mp4抽帧叠框、量字幕位置、量节奏、量电平、核帧数、念一遍断行。交付时报四个数:时长、体积、md5、削顶系数。
交付说明863 个文件,21.8 MB。主体是十四份参考文档、八个校验脚本、一条 Windows 采集链,以及一个十三 MB 的内置画风包。
short-video-producer/ ├── SKILL.md 主流程:三线八站 + 三十一条速览(62 KB) ├── README.md 一页速览:三条线、依赖、四条采集红线 ├── references/ 十四份规范,规则唯一权威在这一层 │ ├── 01-硬规则.md 133 条,A–AL 段(149 KB)★ │ ├── 02-脚本-三线出稿.md 三条线怎么走、降级表、确认门 │ ├── 03-脚本-结构与文风.md 七段骨架、硬指标、句法指纹 │ ├── 04-成片-版式与取景.md 标题、字幕、取景框归一化 │ ├── 05-成片-音效与音乐.md 视觉重音表、混音、电平 │ ├── 06-工具-om链与混音.md om 五条命令、五个必设 │ ├── 07-踩坑记录.md 坑按字母编号 A–AV │ ├── 08-验收清单.md 出厂逐项打勾 │ ├── 09-迁移与依赖.md 换机器带什么 │ ├── 10-采集-微信Windows.md 采集实战:坐标、遮挡、评论区(44 KB) │ ├── 11-词库.md 十三个方向词 + 无关词黑名单 │ ├── 12-踩坑台账.md 念稿三问、机器查不到的六条坑 │ ├── 13-字幕布局高级版.md 第二档版式:12 项实装 + 13 项不实装 │ ├── 14-正面样例-口播语料.md 语体与站位的唯一正面基准 │ ├── example-成片实例-T08战略/ 出厂标准答案:成片 + 15 张分镜 + 复盘 │ └── 截图-*.png 「发现」面板与搜一搜结果页长什么样 ├── scripts/ │ ├── precheck.py 交稿前机器自检,退出码 1 = 不许交(26 KB) │ ├── caption_rules.py 版式规则唯一实现:字号、位置、档位 │ ├── caption_wrap.py 断行:动态规划选切点 + 自检 │ ├── fit_voice.py 剪停顿 + 换速 + 出新时间轴 │ ├── asr_check.py 配音验真:念的是哪一版、念完没有 │ ├── encode_timeline.py 铺帧:帧数由构造保证,可校验 │ ├── frame0_check.py 首帧有没有画,从成片里解帧验 │ ├── subgap_check.py 字幕间隙检查 │ └── wx/win/ Windows 采集链:搜词、扫卡、开播放器、读评论 └── vendor/ └── illustration-skills-pack/ 内置画风包,733 个文件 / 11 MB └── INDEX.md 唯一入口:内容调性 → 用哪个画风
| 脚本 | 它拦的是什么 |
|---|---|
precheck.py | 稿子层面的所有硬指标。字数、句长、主题词、动宾搭配、数字口径、因果方向,一次跑完。 |
caption_wrap.py | 断行。按词边界切,不许把「修改」劈成「修 / 改」,也不许切出孤零零一个字的一行。 |
asr_check.py | 配音验真。一次性回答三件事:念的是哪一版稿子、有没有念完、语速对不对。 |
encode_timeline.py | 铺帧。帧数由构造保证,顺带核对切换点有没有漂移。 |
fit_voice.py | 剪停顿与换速。剪完必须出新时间轴,不许复用旧的。 |
frame0_check.py | 首帧。从成片 mp4 里解第一帧看有没有画,不看工程文件。 |
subgap_check.py | 字幕间隙。间隙太短会闪,太长会断气。 |
caption_rules.py | 版式的唯一实现。字号、位置、档位全在这里,别处不许再写一份。 |
外部只依赖三样东西:327手绘(默认画风,借它的画风编号与提示词写法)、内置画风包(调性不对时换风格,唯一入口是 INDEX.md)、huashu-motion 的 om 命令(合成)。路径与命令在 SKILL.md 里写死,就是为了防止开工时到处翻「那个技能在哪儿」。
全部来自 references/01-硬规则.md,冲突时以该文件为准。
| 项目 | 定值 | 为什么是它 |
|---|---|---|
| 字数 | ≤800 汉字,含标点 ≤850 | 超了先砍案例,不砍观点。削短每句话就变电报体,只能整块删。 |
| 第一句 | ≤15 字,必须是判断 | 前三秒只给判断,不铺垫、不自我介绍。 |
| 句长 | 平均 ≤18,最长 ≤36 | 十来个字的短句要占到 25% 以上,念起来才有呼吸。 |
| 案例 | 一个,必须带媒体与日期 | 一个论点配一个案例,只列症状不给动机,老板点头但记不住。 |
| 语速 | 230–250 字/分 | 超过 260 赶,低于 200 拖。快慢是用户的取向,不替人权衡。 |
| 单场静帧 | ≤10 秒 | 超了先在同一张图里切第二机位,还不够就补图。 |
| 音效电平 | 比人声低 16–18 dB | 音效跟这一行有没有高亮词走,不跟「这句是不是金句」走。 |
| 字幕粒度 | 一句一片一屏,6–14 字 | 整句一次性亮出就是「一下子圈出来」,要按标点切成小句随字音出。 |
| 字幕断行 | 行首不许是「的、了、着」 | 行尾落在「把、被、在」也算不合格,孤字行同样不算。 |
| 削顶系数 | Flat factor 必须为 0 | 不为零就是有削顶,交付时报的这个数自己也要能过。 |
翻 01-硬规则.md 会发现一个现象:几乎每条规则后面都挂着一个日期,和一句「用户打回」的记录。规则不是先想好再写下来的,是一条片子被退回一次,就长出一条。
往后翻还有数字口径那条:一组数据只留一个对比,大定、退订、交付、上险是五种口径,放在同一句话里观众就会按同一个口径算,算出来就是「总共才订三千,退了一万多」。判据很朴素——抄到纸上,小学算术过一遍,过不了就是错。
这套东西的价值不在条数多,而在于每一条都对应一次真实的返工。它把一个反复踩坑的过程,压缩成了一份可以照着执行的清单。
解压后把整个 short-video-producer/ 目录放进技能目录。包里的画风包原样保留,不要去改它的内部结构。
863 个文件 · 21.8 MB 原始体积 · ZIP 13.8 MB · 含主流程、十四份参考文档、八个校验脚本、Windows 采集链与内置画风包
# 1. 解压(Windows 上中文文件名建议用 7-Zip 或 Bandizip) unzip short-video-producer.zip -d /tmp/skill # 2. 放进技能目录 mv /tmp/skill/short-video-producer ~/.workbuddy/skills/ # 3. 交稿前自检,先跑一次看看门槛长什么样 python ~/.workbuddy/skills/short-video-producer/scripts/precheck.py --help
这个包的采集链是为 Windows 写的(微信桌面客户端自动化 + om 合成),脚本里的路径也是 Windows 路径。换到别的系统,要按 references/09-迁移与依赖.md 改一遍依赖与路径。纯出稿、纯体检的部分不依赖系统。