"蒸馏抖音博主:批量下载其爆款视频并提取信息档案,交叉蒸馏出商业思维、视频思路与可直接照做的拍片行动包。当用户提供博主主页链接(批量蒸馏 Top N)或单条视频分享链接(单条拆解),要求分析学习某博主的打法时调用。"
Resources
5Install
npx skillscat add zou0613/blogger-distiller Install via the SkillsCat registry.
SKILL.md
博主蒸馏器(blogger-distiller)
把"看别人视频学东西"变成一条可重复的流水线:收片 → 拆片 → 蒸馏 → 行动包。输入博主主页链接或单条视频分享链接,最终产出一份《蒸馏报告》——不是分析文档堆砌,而是用户能直接照着拍自己视频的行动指导。
技能结构
blogger-distiller/
├── SKILL.md # 本文件:编排层(流程总控 + 蒸馏方法论)
├── scripts/
│ ├── download/
│ │ ├── dy_dl.py # 单视频下载(CDP 拦截 + 自动校验)
│ │ └── dy_batch_top.py # 批量下载(按点赞排序 Top N + 校验重试)
│ └── extract/
│ ├── extract_video_info.py # 火山方舟多模态提取
│ └── prompt.txt # "只提取、不分析"提示词
└── references/
├── download-playbook.md # 收片手册 ★ 执行阶段一前必读
└── extract-playbook.md # 拆片手册 ★ 执行阶段二前必读三层流水线的分工
| 层 | 脚本 | 职责 | 产物 |
|---|---|---|---|
| 收片 | scripts/download/* | 抓元数据 + 批量下载 + 质检修复压缩闭环 | meta.json + videos/*.mp4 |
| 拆片 | scripts/extract/* | 多模态提取 10 类信息(带时间戳) | 每条视频的信息档案 .md |
| 蒸馏 | 无脚本,纯分析 | 跨档案交叉分析 + 转化为行动方案 | distill_report.md |
关键认知:拆片层的提示词被约束为"只提取、不分析"——蒸馏层的职责才是分析。不要试图让拆片直接给出爆款结论。
环境依赖
- Python 3.10+;
pip3 install --user websockets requests - ffmpeg 在 PATH 中;macOS 需 Google Chrome
ARK_API_KEY环境变量(缺失时向用户索要,只进环境变量,绝不写文件)
工作流程
第 0 步:确认输入与规模
- 解析输入(仅支持链接形式):
- 博主主页链接 → 提取 sec_uid,进入全量收片 + 批量蒸馏
- 单条视频分享链接 → 单条模式:直接用
scripts/extract/dy_extract.py直传拆解,跳过收片层 - 本地视频目录 → 跳过收片层,直接从第 2 步开始
注意:不支持按名字搜索博主;图文作品(无视频流)不支持。
- 用 AskUserQuestion 确认蒸馏规模(说明成本):
| 规模 | 耗时预估 | 适用 |
|---|---|---|
| Top 3(默认) | 约 20 分钟 | 常规学习 |
| Top 5 | 约 30 分钟+ | 重点对标的核心博主 |
第 1 步:收片
先读 references/download-playbook.md,再按其流程执行。要点:
- 所有元数据与视频统一落到一个运行目录(见「目录约定」)
- 必须走完手册里的全部闭环:ffprobe 校验 →
_failed.json修复 → >50MB 压缩——这些是实测踩坑换来的硬规则,不得跳过
第 2 步:拆片
先读 references/extract-playbook.md,再逐条对下载的视频跑:
cd <技能目录>/scripts/extract
export ARK_API_KEY=<key>
python3 extract_video_info.py "<运行目录>/videos/<某个视频>.mp4"- 开跑前告知总耗时预估;批量用非阻塞命令 + 轮询进度
- 单条截断时按手册用
--split+--file-id重跑 - 某条持续失败则跳过并在报告中注明样本数,不要阻塞整体流程
- 记录每份档案路径供蒸馏读取
快捷/补漏通道:某条视频本地文件损坏又想省一次下载时,可用直传方式跳过本地落盘:
python3 <技能目录>/scripts/extract/dy_extract.py "<该视频分享链接>" -o <运行目录>/extracts/<视频名>/它默认把抖音签名直链直接交给方舟拉流(≤50MB 且匿名可访问时成功),失败自动回退为「下载后上传」。(使用仓库内 scripts/download/dy_dl.py。)
第 3 步:蒸馏(本技能的核心价值)
通读全部档案 .md + meta.json,产出三部分内容写入 distill_report.md。
A. 商业化要素
从多档案交叉归纳(每条结论都要有证据锚点):
- 定位公式:他是谁 × 给谁看 × 解决什么需求——从各条口播主题、字幕用词归纳共性
- 变现路径:带货 / 课程 / 接单 / 广告 / 私域引流——证据来自档案第 6 节(产品品牌)、第 9 节(CTA)、口播中的转化话术
- 人设资产:重复出现的身份标签、开场白、口头禅、视觉形象(第 5 节 + 各条开头对比)
- 增长策略信号:发布节奏(meta.json 的 iso 字段)、蹭热点模式、互动引导方式
B. 内容结构特征
- 选题矩阵:把 N 条视频的主题归类,找出反复使用的选题公式(如"教程型 / 翻车型 / 观点型"),并对照 liked 数据指出哪类最能打
- 开头钩子模式:并排对比每条 0–5 秒的口播转写(第 2 节)和画面文字(第 3 节),提炼可复用的钩子句式
- 结构与节奏:统计镜头时间轴(第 4 节)的平均切换频率、段落切分规律(第 7 节)
- 收尾 CTA 模式:对比第 9 节,提炼结尾套路
C. 行动包(最终交付物)
- 脚本骨架模板:开头钩子(2–3 种句式可选,附从他那里改编的例句)→ 内容主体分段结构 → CTA 收尾,形成填空即可用的模板
- 第一批选题清单:基于选题矩阵生成的 5 条具体选题(标题级,可直接开拍)
- 翻拍 checklist:拍摄前的自查项(时长、节奏、字幕、钩子位置等)
- 差距清单:对照该博主的制作水准,列出用户还需要补的能力/工具/素材
第 4 步:交付
以 distill_report.md 为主线向用户讲解,重点讲透行动包部分。
目录约定
每次运行在一个独立目录内完成(<项目根>/distilled/<博主名>_<YYYYMMDD>/):
distilled/<博主名>_20260827/
├── meta.json # 博主全量元数据(download-playbook 定义的标准格式)
├── videos/ # Top N 视频(已质检压缩)
│ ├── 01_likes96548_xxx.mp4
│ ├── 01_likes96548_xxx_extract_<时间戳>/
│ │ └── ...md # 该视频的信息档案
│ └── ...
└── distill_report.md # ★ 蒸馏报告(最终产物)方法论约束(写作纪律)
- 证据锚点强制:每条结论须标注来源——引用某条档案的章节/时间戳,或 meta.json 的数值字段。禁止无出处断言
- 三档表述:【事实】(档案/元数据直接支持)、【推断】(跨条归纳)、【建议】(行动包里的主观方案)——不得混写
- 样本量自觉:N 条是小样本,定性提炼为主,不输出定量结论(如"爆款率提升 x%"禁止出现);推断超出 N 条范围时标注"仅基于 N 条样本"
- 不编造:没看到的画面/听不清的口播不脑补;上游档案缺节就标"该维度证据不足"
- 模拟/虚假数据零容忍:任何数字必须能溯源到真实文件或真实 API 返回
失败处理
各类失败场景的手册级解法见 references/ 两份 playbook 的失败模式表。编排层补充:
| 症状 | 处理 |
|---|---|
| ARK_API_KEY 未设置 | 向用户索要,写入当前 shell 环境变量后继续 |
| 某条视频提取反复失败 | 跳过,用剩余档案继续蒸馏,报告中注明有效样本数 |
| 可用档案 < 2 条 | 提示用户小样本蒸馏价值有限,询问是否补充下载其他视频 |
安全红线(全局)
- 下载绝不携带用户登录态 cookie(headless 用独立 profile);cookie 只留在用户 Chrome 里做只读查询
- 禁止在用户浏览器执行任何点赞/关注/私信等写操作
- API Key 只进环境变量,绝不写入任何文件
- 禁止伪造任何数据;缺数据明说或换接口