| name | video-distill |
| description | 视频蒸馏 + 翻拍 + 平台文案:把一个/多个视频转成可复用的「翻拍案例」。自动抽音频→whisper转写中文字幕→读完文稿→产出结构化拆解(一句话选题/叙事骨架/为什么有效/金句/翻拍角度);翻拍稿/成片完成时,再顺手产出抖音/微信视频号/小红书三平台的爆款标题+文案+hashtag(用作者人设口吻,默认陈锦初0xKaiwen)。每个视频一个工程子文件夹。
触发词:「蒸馏这个视频」「拆解视频」「提取caption/字幕」「把这几个视频做成案例」「翻拍分析」「加进案例库」「分析这条爆款的结构」「写平台文案/标题/hashtag」「抖音/小红书/视频号文案」「帮我配个爆款标题」。
给视频/录屏文件 + 想理解它为什么有效/想翻拍/想要发布文案时,就用这个 skill。
|
视频蒸馏 · Video Distill
目标不是"总结这个视频讲了啥",而是拆出可迁移的骨架和手法,让用户能照着翻拍。
摘要是给看过的人省时间;拆解是给要重做的人一张施工图。
核心理念
一份合格的拆解,要能回答翻拍者的三个问题:
- 选题内核是什么——抽掉具体案例后,剩下的那句话主张。
- 它怎么搭起来的——逐段的叙事/论证骨架,换个题材也能套。
- 它为什么抓人——可复用的手法(钩子类型、情绪曲线、信任背书、节奏),不是夸"做得好",而是说清"好在哪个机关上"。
关键区分:捕捉的是 HOW it works,不是 WHAT it says。
执行流程
Phase 0: 接活与定位
确认三件事(用户没说就用默认值直接推进,别来回问):
- 视频在哪:拿到一个或多个文件路径。
- 放哪:默认放进
案例库/<slug>/(相对当前视频工作区,如 clipping)。一个视频一个子文件夹。slug 用有意义的英文短名或原文件名。
- 翻拍风格:默认对齐用户的「从夯到拉」产品锐评风格——翻拍角度那节要往这个方向给建议。用户另有指定就听用户的。
多个视频 = 多个子文件夹,逐个独立处理,不要混在一份文档里。
给的是链接(不是本地文件)时,先取片
按平台选最省事的下法,不要一上来就上 mitmproxy 抓包那种重活:
下完把原片放进 案例库/<slug>/,source.txt 记清来源链接 + 下载方式。
批量:给作者句柄,自动枚举全部作品(取片升级,省得逐条丢 link)
不想逐条丢 link 时,用 scripts/take.py(三模式 + 自动跳过已蒸馏的):
- 抖音作者(全自动):
python scripts/take.py douyin <作者主页URL或sec_uid> [--top 20]
→ 枚举他全部作品 metadata(赞/收藏/评论/文案/id),按点赞排序、跳过已蒸馏的,列成表 + 存 json。
勾选要的 → python scripts/take.py dl <works.json> 0,2,5 案例库/<作者> 下载选中 mp4,再走 Phase 1 转写 + 拆解。
一次性配置:cookie 放 ~/.baokuan-factory/secrets.env(见 scripts/secrets.example.env),或 pip install browser_cookie3 自动从浏览器取;依赖 pip install f2。
- 视频号作者(半自动):视频号没公开作者目录。先在电脑微信里开 ltaoo/wx_channels_download 本地拦截、滑一遍作者主页,把抓到的 feed 列表存成 json,再
python scripts/take.py sphfeed <feed.json> → 同样列表 + 勾选下载。
- 单条链接(老方式,保留):
python scripts/take.py one <抖音视频/视频号分享链> <输出目录> 自动判别平台下载;也可继续手动按上面单链方式取。
去重表在 ~/.baokuan-factory/state/distilled.json,下过的 id 自动跳过(--all 看全部)。cookie/sec_uid 等个人敏感配置只进 ~/.baokuan-factory/secrets.env(仓库外、gitignore),永不提交共享仓库。
Phase 1: 转写(用脚本,别手搓)
对每个视频跑:
scripts/transcribe.sh "<视频路径>" "案例库/<slug>" zh
脚本会:抽 16k 单声道 audio.wav、whisper 转写出 caption.srt(带时间轴)和 caption.txt(纯文)。
省钱要点:脚本会先在本地找已有的 whisper 模型复用,找不到才下载。不要自己另起 curl 去下模型——用户机器上往往已经有 medium / turbo 模型躺在 ~/.cache/hyperframes/... 或 homebrew 里,重复下载是浪费。
转写完顺手补两个文件:
source.txt:原视频来源路径 + 时长/分辨率 + 作者/母本(如果是二手转述,注明原始出处)。若原片在 ~/Downloads 等易清理位置,提示用户归档。
video.mp4:软链到原视频(ln -sf 绝对路径),让案例自包含。
Phase 2: 读全文稿
用 Read 读完整份 caption.txt,别只看开头。whisper 对中文人名/术语常有错字(如"纳瓦尔→那玩""复利→负利""毛骨悚然→毛骨损然"),心里按正确意思还原,并在拆解开头提示读者留意——但不改 caption 原始文件(它是转写产物,要保真)。
Phase 3: 写拆解(核心产物)
产出 案例库/<slug>/拆解.md,严格按下面的模板。模板每一节都有它的作用,别省:
# 拆解:<给视频起的一句话标题>
> 来源:<一句话说清这是什么视频、谁做的、时长/形式>。
> 文稿见 `caption.txt`,逐句时间轴见 `caption.srt`。<如有 whisper 错字,提示>
## 一句话选题
**<抽掉所有具体案例后,这个视频真正在主张的那一句>。** <可补一句点透它的钩子机制>
## 核心结构(可直接套用的叙事/论证骨架)
1. **钩子**:<开场怎么抓人,是什么类型的钩子>
2. <逐段拆,标出每一段在干嘛——抛悬念/拆论点/举证/拔高/反转/收尾>
...
N. **结尾**:<怎么收的,开放式还是给答案,留没留互动>
## 为什么有效(可迁移的手法)
- **<手法名>**:<这个机关具体怎么起作用,为什么观众会被勾住>
- ...(聚焦"可搬走的招":反差数字钩子、内行私下视角、情绪曲线、信任背书、目标人群点名、金句可截图、真实感包装、开放结尾等)
## 金句 / 可复用话术
- "<可直接截图传播或翻拍时复用的原话>"
- ...
## <速记表,可选——当内容是 N 条并列结构时很有用>
| # | 要点 | 内核 | 一句话 |
|---|------|------|--------|
## 翻拍角度(给<目标风格>的改造建议)
- **骨架照搬,外壳换**:<指出哪套结构可复用到什么题材>
- **形式建议**:<场景/口播/节奏上的可借鉴点>
- **风险点**:<数字要核对、二手转述要回查原始出处、版权等>
写拆解的几条心法
- 骨架要可迁移:每一段标注"它在干嘛"(抛悬念/算账/反转…),这样换题材能套。这是拆解的命根子。
- 手法说机关,不说褒贬:写"用两个体量悬殊的数字并置制造认知缺口",不要写"开头很吸引人"。
- 金句单独拎出来:高密度、可截图的句子是二次传播的燃料,也是翻拍时的锚点。
- 翻拍角度要落地:默认往用户的「从夯到拉」锐评风格靠——能不能反过来做、能不能配 tier-canvas 分档、形式上保留什么。
- 诚实标风险:口述的数字、二手转述的名人原话,都提醒翻拍前回核。
Phase 3.5: 翻拍洗稿(个人元素审计 → 洗稿)→ 产出「翻拍稿」
这一步的产物是一份文件,别只在脑子里洗。 写出 口播/<片名>/翻拍稿.md —— 一份能直接照着念的逐字口播脚本。
它和 拆解.md 里的「翻拍角度」是两回事:角度是立场建议(往哪个方向改),翻拍稿是成稿(真正要念的每一句)。下游 talking-head-edit 录制 + 配字幕,吃的就是这份稿;没有它,整条链在成片前断掉。
放哪:成片走口播的,放 口播/<片名>/翻拍稿.md(片名是你这条成片的名字,和蒸馏用的 案例库/<slug>/ 是两棵树)。只想要稿不立刻成片,也可以先放 案例库/<slug>/翻拍稿.md,之后开工再挪。
翻拍 = 母本的骨架和观点照搬,但原作者这个人必须从稿子里彻底替换掉。洗稿不是换措辞,是换人——否则新作者会"冒领"原作者的人生(说人家的经历、卖人家的产品、顶人家的身份),既假又有版权/人设风险。
洗稿前第一步,必做「个人元素审计」:通读原片转写,逐条揪出属于原作者个人的东西,产出一张映射表,先跟用户对齐再动笔:
| 类型 | 在原片里长啥样 | 怎么处理 |
|---|
| 身份/职业/作品名 | 原作者是谁(作家/投资人/老师…)、公众号/书/课/公司名 | 换成新作者的身份与产品(读其人设 skill 填) |
| 第一人称亲身经历/轶事 | "我当年…""我有一次…""我创立的…" | 换成新作者真实经历;新作者没有的,标红问用户要,绝不替他编人生 |
| 被点名 | 别人喊原作者的名字、"我们 XX 团队" | 换名 / 泛化 |
| 借用的例子/场景 | 原作者挑的 illustration(房产中介、艺人公司…) | 换成新作者圈子的等价场景(更可信、更差异化) |
| 口头禅/价值观腔调 | 招牌话术("迷茫的时候看看 XX"…) | 换成新作者的语气 DNA |
保留不动:母本(被转述的人,如 Naval)的观点/金句/比喻、普世文化梗(华尔街之狼、马具理论)。
审计表里每一项标 ✅ 我用人设 skill 能填 还是 ❓ 需本人提供真实素材。❓ 的先收齐用户答复,再开洗。洗完通读一遍:稿里还剩没剩任何只属于原作者的痕迹?有就没洗干净。
洗完落盘:把成稿写进 口播/<片名>/翻拍稿.md(段落分明、能直接念),开头放黄金 5 秒 hook,结尾可附一句"和母本的差异点"。这份文件就是 Step 4 成片的输入。
黄金5秒 hook(开头第一句最重要,实测决定完播和播放量)
学原作者怎么抓眼球,别用自我介绍开场。第一句就是钩,三种任选或叠加:
- 暴论/主张直戳观众:李尚龙「每一个人都应该去找自己的杠杆系统」「你大概率是被割的那一位」。
- 认同钩:「迷茫的时候看看 Naval」——给观众一个"我也这样"的代入。
- 反直觉超简框架:「人生就两件事:build it / sell it」——简到让人非听第二件不可。
紧跟 借名权威 + 浓缩承诺("Naval 三小时访谈,我用十分钟""我总结了 N 条/N 个坑")。第一句里就要有"你"。
禁忌:别用「我一个纯血文科生 / 我是 XX」这种自我介绍开场——那是讲作者自己,不是钩观众(实测:带"纯血文科生"那条播放只有暴论标题那条的 1/9)。作者身份(前 FAANG / FDE…)后置到第二段当可信度背书("为什么我有资格跟你聊这个"),不当开场钩。
其余洗稿纪律见 Phase 5 口吻段(人设口吻 / 禁长破折号 / 贴实际内容不造假)。
Phase 4: 收尾汇报
给用户一张最终结构树(每个子文件夹有:video.mp4 软链 / audio.wav / caption.srt / caption.txt / source.txt / 拆解.md),并主动提示:
- 原片若在易清理位置,是否归档;
- caption 是否要清洗错字;
- 下一步翻拍哪个。
Phase 5: 平台发布文案(爆款向,三平台)
触发:翻拍稿写完 / 成片完成时,顺手产出 抖音 + 微信视频号 + 小红书 + X 四平台的「标题 + 正文文案 + hashtag」,目标 go viral。写进 平台文案.md(翻拍工程目录或案例子文件夹)。抖音/视频号/小红书写中文;X 写英文。
口吻(关键):用作者本人的人设口吻定调,不要写成 AI 通稿。
- 默认陈锦初 / 0xKaiwen——口播号就是他本人出镜。读其蒸馏
CLAWVARDLABS-nuwa-skill/skills/0xkaiwen/SKILL.md 的「表达 DNA」定调:自嘲先行 / 中英术语裸奔 / 梗密度高(虾佛·小龙虾·纯血文科生)/ 高低反差 / e/acc / 技术平权落地成人话;忌「thrilled to announce」老登语、「颠覆/革命性/AGI 2027」大词。
- 换号就换人:能用 Skill 工具加载人物 perspective 就加载,不能就 Read 其 SKILL.md。小红书想走「humanist / 认知长文」lens 可改用
zarazhangrui(Zara Zhang)。
- 内容必须贴成片实际内容(数字/证据/金句以最终稿为准),不套空模板,不造假数据。
- 禁止长破折号(em-dash
— / en-dash –)——一律改用逗号、句号、冒号或「...」。中英文都不准用。
各平台分别写(差异化,别一稿三投):
| 平台 | 标题 | 正文 | hashtag | 爆款机关 |
|---|
| 抖音 | —(首行即标题) | 首行=一句能独立成立的数字暴论(实测打败多句叙事段落),单独一行;正文短、口语、留悬念 | 3–5 个,前 2 个上大流量词(#职场 #干货分享 #打工人,别用 #纳瓦尔 这种没人搜的窄词) | 首行暴论决定播放;平均播放时长决定放大;置顶互动问导评论 |
| 微信视频号 | 一句话标题,偏信息量/中性(微信用户更理性) | 2–3 句把价值说清 + 一个钩子;可联动公众号 | 2–3 个话题 | 标题信息密度 + "值得转群"感 |
| 小红书 | ≤20 字:钩子词(扒完才懂/破防/别再…)+ 具体利益点 + emoji | emoji 分段、短句、项目符号、价值密;结尾「建议收藏」+ 互动问 | 8–10 个,大流量 + 精准混 | 标题点击率 + 收藏率;封面压一行和标题不同的大字 |
| X(英文) | —(首句即钩) | 英文,0xKaiwen 口吻:e/acc + degen + 自嘲 + 小写随意 + 梗(vibe-code/wagecuck/trenches);单条暴论或 2–4 条 thread;句子短、反直觉 | 几乎不用 hashtag(X 文化反感堆标签),最多 1 个;可 @相关账号 / 用 $cashtag | 暴论 / 反直觉 take + quote-tweet 钩子;「reply with…」导流 |
每平台给 2–3 个标题/首句备选,结尾附一句"为什么这么写"的口吻说明。中文三平台是中文;X 一律英文,且用其 X 语料的英文口吻(不是把中文直译)。
实测数据沉淀(抖音,持续更新)
0xKaiwen 抖音前两条实测(2026-06-10):
| 作品 | 播放量 | 5s完播 | 2s跳出 | 平均时长 |
|---|
| 工资条·三万亿(数字暴论标题) | 85,367 | 41.5% | 28.6% | 37.8s |
| 五个杠杆(叙事体标题) | 9,566 | 42.2% | 30.5% | 29.7s |
可迁移结论(样本小、方向性,新数据来了再校):
- 标题/首行 = 一句能独立成立的数字暴论 >> 多句叙事段落。 两条开头钩子(5s完播/2s跳出)几乎一样,但暴论标题那条播放 9 倍。抖音首行别写成故事,写成一句炸的结论,最好带具体数字 + "这关乎你"。
- 平均播放时长是算法放大器。 37.8s vs 29.7s 对应 9x 播放。开头钩住只是入场券,内容结构要能 hold 到 30s+。
- 宽流量 hashtag > 窄。 #职场 #干货分享 #打工人(吃大盘)> #纳瓦尔 #副业思维(#纳瓦尔没人搜)。
- 数字 + 具体可怖 > 抽象概念。 "三万亿工资条上那串数字" 赢 "5 个杠杆"。
- 别过度归因(发布时间 / 账号权重 / 随机都有份),上面是方向,不是定律。
每出一条新片就把数据补进这张表,让 hook 和文案越写越准。
产物清单(两棵树)
蒸馏树 案例库/<slug>/(读懂别人,每条对标视频一个):
| 文件 | 内容 |
|---|
video.mp4 | 软链到原视频 |
audio.wav | 16k 单声道(转写用,可留可删) |
caption.srt | 带时间轴字幕 |
caption.txt | 纯文稿 |
source.txt | 来源 + 元信息 |
拆解.md | 核心产物:选题/骨架/手法/金句/翻拍角度(立场) |
生产树 口播/<片名>/(做自己的成片,每条要发的成片一个):
| 文件 | 内容 |
|---|
翻拍稿.md | Phase 3.5 产物:能照着念的逐字口播脚本(不是角度,是成稿) |
build/ | talking-head-edit 引擎工作目录(news/ 素材、字幕、卡片、渲染) |
平台文案.md | 翻拍/成片后产出:抖音·视频号·小红书·X 标题+文案+hashtag(爆款向,作者人设口吻) |
一份蒸馏可对多条成片:案例库/<slug>/ ↔ 多个 口播/<片名>/。只想要拆解、不立刻翻拍时,只产蒸馏树即可。
依赖
ffmpeg、whisper-cli(whisper.cpp):brew install ffmpeg whisper-cpp
- 已有 whisper 模型优先复用,脚本会自动找。
- 取片:
curl(视频号明文真链直下)、yt-dlp(YouTube/抖音)、gstack /browse(驱动在线解析器)。视频号解析器 https://sph.litao.workers.dev/ 。
- gstack
/browse 怎么装:brew 装不了,但它是公开仓库(github.com/garrytan/gstack),不用找团队要,一行装(需 Bun v1.0+ 和 Git):git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup。装完重开一轮生效。没有它:视频号改备选工具 github.com/ltaoo/wx_channels_download(见 Phase 0)。