zou0613

blogger-distiller

"蒸馏抖音博主:批量下载其爆款视频并提取信息档案,交叉蒸馏出商业思维、视频思路与可直接照做的拍片行动包。当用户提供博主主页链接(批量蒸馏 Top N)或单条视频分享链接(单条拆解),要求分析学习某博主的打法时调用。"

zou0613 0 Updated 1w ago

Resources

5
GitHub

Install

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 步:确认输入与规模

  1. 解析输入(仅支持链接形式):
    • 博主主页链接 → 提取 sec_uid,进入全量收片 + 批量蒸馏
    • 单条视频分享链接 → 单条模式:直接用 scripts/extract/dy_extract.py 直传拆解,跳过收片层
    • 本地视频目录 → 跳过收片层,直接从第 2 步开始
      注意:不支持按名字搜索博主;图文作品(无视频流)不支持。
  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. 行动包(最终交付物)

  1. 脚本骨架模板:开头钩子(2–3 种句式可选,附从他那里改编的例句)→ 内容主体分段结构 → CTA 收尾,形成填空即可用的模板
  2. 第一批选题清单:基于选题矩阵生成的 5 条具体选题(标题级,可直接开拍)
  3. 翻拍 checklist:拍摄前的自查项(时长、节奏、字幕、钩子位置等)
  4. 差距清单:对照该博主的制作水准,列出用户还需要补的能力/工具/素材

第 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       # ★ 蒸馏报告(最终产物)

方法论约束(写作纪律)

  1. 证据锚点强制:每条结论须标注来源——引用某条档案的章节/时间戳,或 meta.json 的数值字段。禁止无出处断言
  2. 三档表述:【事实】(档案/元数据直接支持)、【推断】(跨条归纳)、【建议】(行动包里的主观方案)——不得混写
  3. 样本量自觉:N 条是小样本,定性提炼为主,不输出定量结论(如"爆款率提升 x%"禁止出现);推断超出 N 条范围时标注"仅基于 N 条样本"
  4. 不编造:没看到的画面/听不清的口播不脑补;上游档案缺节就标"该维度证据不足"
  5. 模拟/虚假数据零容忍:任何数字必须能溯源到真实文件或真实 API 返回

失败处理

各类失败场景的手册级解法见 references/ 两份 playbook 的失败模式表。编排层补充:

症状 处理
ARK_API_KEY 未设置 向用户索要,写入当前 shell 环境变量后继续
某条视频提取反复失败 跳过,用剩余档案继续蒸馏,报告中注明有效样本数
可用档案 < 2 条 提示用户小样本蒸馏价值有限,询问是否补充下载其他视频

安全红线(全局)

  • 下载绝不携带用户登录态 cookie(headless 用独立 profile);cookie 只留在用户 Chrome 里做只读查询
  • 禁止在用户浏览器执行任何点赞/关注/私信等写操作
  • API Key 只进环境变量,绝不写入任何文件
  • 禁止伪造任何数据;缺数据明说或换接口