mcpField
B
blogger-distiller

blogger-distiller

github.com/otter1101マーケティング・グロース745123 回インストール5 週間前に更新
リポジトリ

blogger-distiller について

blogger-distillerは、小紅書とDouyinのクリエイターを分析するマルチプラットフォーム対応のスキルです。スクリプトによる集計とAIによる分析を組み合わせ、HTMLレポートとAI向けの執筆スキルを生成します。

主な機能

  1. 01小紅書とDouyinのクリエイター分析
  2. 02投稿を30・50・80件収集
  3. 03思考・運用・コンテンツの傾向抽出
  4. 04HTML分析レポートの生成
  5. 05執筆スキルフォルダーの作成

活用シーン

  1. 01参考にするクリエイターの分析
  2. 02自分のアカウントの診断
  3. 03分析結果を基にした文体ガイド作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/otter1101/blogger-distiller --skill blogger-distiller

インストール後、Claude Code で/blogger-distillerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

DISCLAIMER.md
.gitignore
SECURITY.md
README.md
install.py
LICENSE
run.py
references/
张咋啦_创作指南.md
scripts/
__init__.py
analyze.py
check_env.py
crawl_blogger.py
crawl_common.py
crawl_douyin.py
crawl_xhs.py
deep_analyze.py
scripts/utils/
common.py
__init__.py
cover_analyzer.py
adapters.py
first_run.py
douyin_endpoints.json
endpoints.json
md_to_docx.py
quality.py
index_client.py
privacy.py
endpoint_router.py
tikhub_client.py
transcript.py

詳細

博主蒸馏器

⚠️ 使用前必读:本工具仅供学习研究使用,通过 TikHub 公开 REST API 获取公开数据(不模拟登录、不注入 Cookie)。评论者身份默认脱敏(读者1 / 读者2 / 作者),评论正文保留用于研究。完整条款见 DISCLAIMER.md · 安全策略见 SECURITY.md。

⛔ 执行前铁律(优先级高于一切)

触发蒸馏任务前,以下三项必须由用户明确说出,缺一不可:

  • 平台(小红书 / 抖音)
  • 模式(A 拆解对标博主 / B 诊断自己账号)
  • 采集数量(30 / 50 / 80)

博主名不等于平台选择。 即使用户提到了"影视飓风""李子柒"等明显关联某平台的博主名,也不得自行推断平台,必须明确询问。

「跑/分析/拆解 博主X」不等于模式 A。 即使用户分析的是他人账号,也必须询问模式,不得推断。

用户已明确说出的项可直接采用,未说出的必须逐一询问后再执行。


你是什么

自动化的多平台博主蒸馏工具(小红书 + 抖音)。输入一个博主名字,输出两样最终产物:

  1. HTML 蒸馏报告 — 给人看。浏览器打开,快速理解这个博主的人设、认知层、策略层和内容层。
  2. 创作 Skill 文件夹 — 给 AI 用。安装后说"用 XX 风格写一篇笔记",AI 立刻知道怎么写。

模式 A 用来拆解对标博主(学 TA),模式 B 用来诊断自己的账号(看自己)。

核心理念:脚本保下限,AI 冲上限。 脚本负责数据采集和确定性分析,AI 负责蒸馏洞察和生成最终产物。


能力范围

采集目标博主笔记数据(支持 30 / 50 / 80 三档),三层蒸馏产出:

三层蒸馏结构
层级回答什么举例
认知层TA 怎么想?核心信念 / 观点张力 / 价值立场 / 思维模式
策略层TA 怎么运营?系列规划 / 蹭热点方式 / 运营习惯 / 发布节奏
内容层TA 怎么写?标题公式 / 开头模板 / 正文公式 / 情感节奏 / 语言DNA / CTA / 视觉风格 / 标签策略
产出物一:HTML 蒸馏报告(10 个模块)
  1. 一眼看清(摘要卡片)
  2. 人设拆解
  3. 认知层:TA 怎么想
  4. 策略层:TA 怎么运营
  5. TOP10 爆款拆解
  6. 内容公式速查
  7. 选题灵感 TOP15
  8. 数据面板(基础展开,详细折叠)
  9. 发展趋势(附置信度标注)
  10. 核心结论
产出物二:创作 Skill 文件夹
  • 模式 A:{博主名}_创作指南.skill/SKILL.md
  • 模式 B:{用户名}_创作基因.skill/SKILL.md
  • 8 大章节:使用说明 → 认知层 → 策略层 → 内容层(含正文公式/情感节奏/语言DNA)→ 创作禁区 → 对比示例 → 选题灵感 → 局限性+自检清单
分工

脚本做 30%(保下限):

  • 环境检查、TikHub Token 验证、数据采集
  • 统计分析(11种标题模式、6类CTA、藏赞比、发布频率)
  • 认知层粗提取(观点句候选、思维模式统计、价值词)
  • 数据底稿 + AI 蒸馏任务生成

AI 做 70%(冲上限):

  • 生成 HTML 蒸馏报告
  • 生成创作 Skill 文件夹
  • 抽取信念、张力、框架、创作禁区、对比示例
  • 因果分析、个性化建议、金句总结

前置要求

  • Python 3.9+(Skill 会自动检测,如未安装会提示)
  • TikHub API Token(注册地址: https://user.tikhub.io)
  • 网络连接(用于访问 TikHub API: api.tikhub.io)
  • 不需要本地桌面环境,云端/无头服务器也可以运行
【可选】Whisper 视频口播提取

不安装不影响使用,照常分析博主简介、笔记标题、正文、点赞收藏、评论。 安装后可额外提取视频里说了什么(口播文字),蒸馏结论有更多内容依据。

  • 安装:pip install openai-whisper

  • 系统依赖:ffmpeg(macOS: brew install ffmpeg;Windows: 下载 ffmpeg.org)

  • 模型:在 ~/.xiaohongshu/tikhub_config.json 中设置 whisper_model 字段切换,支持以下档位:

    模型文件大小每条视频耗时(约2分钟视频)适用场景
    tiny39MB3-5s(CPU)/ 1-2s(M芯片)极低配机器,质量较差
    base74MB8-12s(CPU)/ 4-6s(M芯片)默认,够用
    small244MB20-35s(CPU)/ 8-15s(M芯片)推荐升级点,中文准确率明显提升
    medium769MB60-120s(CPU)/ 25-50s(M芯片)需 8GB+ 内存,50条笔记约需 1-1.5小时
    large-v31.5GB150-300s(CPU)/ 60-120s(M芯片)需 16GB+ 内存,轻薄本不建议,中文相比 medium 提升有限
  • 代价:每条视频额外消耗转写时间(见上表)+ 蒸馏时消耗更多 AI Token

  • 超过 10 分钟的视频自动跳过(ffprobe 预检)

Token 获取与存储

⚠️ 首次运行时,必须在进入 Phase 0.5 前提醒用户:

本工具需要 TikHub API Token 才能运行。如果你还没有,请按以下步骤操作:

  1. 访问 https://user.tikhub.io 注册账号
  2. 充值(按量付费即可)
  3. 在控制台 → API 权限中,一键勾选全部小红书(xiaohongshu)相关端点(开得越全,自动容错能力越强)
  4. 生成 API Token

密钥存储: 用户提供 Token 后,系统会自动保存到 ~/.xiaohongshu/tikhub_config.json,下次运行无需重复输入。Token 三级加载优先级:

  1. 环境变量 TIKHUB_API_TOKEN
  2. 配置文件 ~/.xiaohongshu/tikhub_config.json(自动保存)
  3. 交互式输入(首次使用时引导,输入后自动保存到配置文件)

设置方式(三选一):

  • 环境变量: set TIKHUB_API_TOKEN=你的token(Windows)/ export TIKHUB_API_TOKEN=你的token(macOS/Linux)
  • 配置文件: 首次运行 check_env.py 时会交互式引导,自动保存
  • 命令行参数: python run.py "博主名" --token 你的token
代理设置

如需通过代理访问 TikHub API,设置环境变量:

# Windows
$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"

# macOS/Linux
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"

执行流程

フェーズ 0:環境の自動準備

ステップ 0-A:コードの自動更新(必ず最初に実行)

skill の配置ディレクトリで次のコマンドを実行し、最新バージョンのコードを取得します:

git pull origin main
  • "Already up to date." または更新成功を示すメッセージが返された場合 → 次へ進みます
  • エラー(Git リポジトリではない、ネットワークに接続できないなど)が返された場合 → 無視して次へ進みます

ステップ 0-B:環境チェック

python scripts/check_env.py を実行します

以下の依存関係を自動でチェックし、修復します:

  1. Python のバージョン — Python 3.10 以降を確認します
  2. python-docx — 未インストールの場合、自動で pip install します
  3. TikHub API Token — Token が設定され、有効かどうかを確認します
    • 設定済み → 接続を確認し、利用可能なクレジット情報を表示します
    • 未設定 → 対話形式で案内します:登録を促す → Token を入力 → ~/.xiaohongshu/tikhub_config.json に自動保存
  4. Whisper + ffmpeg — 動画の音声抽出機能が利用可能か確認します
    • インストール済み → 現在のモデルを表示し、切り替えオプションを提示します
    • 未インストール → インストールを案内します(対話形式で y/N を確認し、y を選ぶと自動インストール)

⚠️ AI による実行時の注意:check_env.py の Whisper のインストール手順は対話形式です(y/N の回答が必要です)。AI 環境では自動で対話できないため、Whisper のインストールを完了するためにスクリプトの対話プロンプトに依存しないでください。代わりに、フェーズ 0.5 の対話中にユーザーに確認してから、回答に応じてインストールコマンドを手動で実行します。check_env.py の実行中に Whisper 関連の対話プロンプトが表示された場合は、N を入力してスキップしてください。

💡 利用可能なクレジットについて:蒸留を一通り実行すると、ノート数に応じて約 ¥1~8 消費します。残高は https://user.tikhub.io で確認できます。

フェーズ 0.5:事前の対話

⚠️ 必ず守るべき 2 つのルール。違反すると、プロセス全体が無効になります:

  1. フェーズ 0-B はフェーズ 0.5 より前に必ず完了してください。 ユーザーがトリガー指示でどれだけ情報を提供していても、先にフェーズ 0(ステップ 0-A + ステップ 0-B)を完了し、whisper_available の値を取得してからフェーズ 0.5 に進んでください。フェーズ 0 を省略して、直接対話に進んではいけません。
  2. 質問 4(Whisper による音声抽出)は、必ず単独の質問としてツールを使って尋ねてください。 ユーザーが最初のメッセージですでにプラットフォーム、モード、数量の 3 項目すべてを明確に伝えている場合でも、質問 4 は必ずフェーズ 0.5 で AskUser ツールを使って独立した質問として提示してください。黙って省略したり、ほかの質問にまとめたりしてはいけません。

⚠️ 不足している情報は必ず明確に確認してください:以下 4 項目のうち、ユーザーがトリガー指示で明確に指定していないものは、必ず一つずつ質問してください。推測してはいけません:

  • プラットフォーム(小紅書 / 抖音)
  • モード(A ベンチマークとするブロガーの分析 / B 自分のアカウントの診断)
  • 取得するノート数(30 / 50 / 80)
  • 動画の音声抽出を有効にするか(Whisper が利用可能かどうかにかかわらず、必ず確認してください。下記のロジックを参照)

ユーザーが明確に指定済みの情報は、そのまま使用し、再度質問する必要はありません。

未指定の情報については、次の対話文を参考に質問してください:

─────────────────────────────────────
欢迎使用博主蒸馏器!

请选择分析平台:
   1 — 小红书
   2 — 抖音

请选择分析模式:
   A — 拆解对标博主
     采集 TA 的笔记 → 提炼内容公式和思维方式
     → 生成「TA的名字_创作指南.skill/」

   B — 诊断我的账号
     采集你的笔记 → 找到内容基因和增长瓶颈
     → 生成「你的名字_创作基因.skill/」

采集数量(推荐 50 条):
  ① 30 条 — 快速扫描(约 15-25 分钟)
  ② 50 条 — 推荐档位(约 30-45 分钟)
  ③ 80 条 — 深度分析(约 45-65 分钟)

【whisper_available = true 时】
是否提取视频口播内容?
  当前已分析:博主简介、笔记标题、正文、点赞收藏、评论
  开启后额外提取:视频里说了什么(口播文字)
  代价:每条视频多消耗约 8-12s + 蒸馏时消耗更多 AI Token

【whisper_available = false 或字段不存在时】
当前环境还没有安装视频口播提取功能(Whisper)。
不影响本次蒸馏——标题、正文、评论等文本数据照常分析。
但如果开启,蒸馏时还能额外提取视频里说了什么,
分析出正文公式、情感弧线、语言DNA等更多维度,蒸馏质量会显著提升。

要不要我现在帮你安装?大约需要 2-5 分钟。
  y — 帮我装(自动安装 Whisper + ffmpeg)
  N — 跳过,先不装(默认)

【安装成功后追加提示】
✅ Whisper 已安装完成(默认使用 base 模型,适合大多数场景)。
如需了解其他模型档位(tiny/small/medium/large),回复「1」查看对比表。
  1 — 查看模型对比表,自行选择
  回车/其他 — 使用默认 base,继续蒸馏
─────────────────────────────────────

Whisper の利用可否の確認とインストール手順:

  1. ~/.xiaohongshu/tikhub_config.json の whisper_available フィールドを読み取ります
  2. 結果に応じて、次の 2 つの経路に分かれます:

経路 A:whisper_available = true

⚠️ 必ずツールを使って質問してください。選択肢は次の 3 つに固定し、省略してはいけません:

  • 選択肢 1:有効にする(現在のモデルで文字起こし)
  • 選択肢 2:スキップ
  • 選択肢 3:Whisper モデルを変更する(ほかのモデルについて相談できます)

→ ユーザーが選択肢 3 を選ぶ → 事前要件にあるモデルの比較表を表示し、ユーザーの選択後に whisper_model を更新します。その後、この質問を再度行います → ユーザーが選択肢 1 を選ぶ → transcript_enabled = true → ユーザーが選択肢 2 を選ぶ → transcript_enabled = false

経路 B:whisper_available = false またはフィールドが存在しない → 音声抽出機能がインストールされていないことをユーザーに伝え、「インストールを手伝いましょうか」と尋ねます(上記の対話文の「未インストール」版を使用) → ユーザーが y を選ぶ → 次の手順を順番に実行します:

  1. pip install openai-whisper(Whisper をインストール)
  2. ffmpeg が利用可能か確認し、利用できない場合はシステムに応じて自動インストールします:
    • macOS: brew install ffmpeg
    • Windows: winget install Gyan.FFmpeg(または choco install ffmpeg)
    • Linux: sudo apt-get install -y ffmpeg
  3. インストール完了後、whisper_available に true、whisper_model に "base" を設定します
  4. デフォルトでは base モデルを使用することをユーザーに伝え、「1」と返信するとモデル比較表を表示して切り替えられることを案内します
  5. ユーザーが「1」と返信 → 下記のモデル比較表(事前要件にあるモデルの比較表)を表示し、ユーザーの選択後に whisper_model を更新します。返信がない、または別の内容が返信された場合 → base のまま続行します
  6. transcript_enabled = true → ユーザーが N を選ぶ → transcript_enabled = false(メインの処理には影響しません)

以降の処理で使用する 4 つの変数を記録します:

  • platform:xhs または douyin
  • user_mode:A または B
  • max_notes:30 / 50 / 80
  • transcript_enabled:true または false
フェーズ 1:データ収集

transcript_enabled = true の場合、次を実行します: python scripts/crawl_blogger.py <ブロガー名> -o ./data --max-notes <max_notes> --platform <platform> --transcript

それ以外の場合、次を実行します: python scripts/crawl_blogger.py <ブロガー名> -o ./data --max-notes <max_notes> --platform <platform>

--platform の値は xhs または douyin で、フェーズ 0.5 でユーザーが選択したプラットフォームに対応します。

⚠️ 重要な制約(必ず守ってください):

  • ノート本文を取得するには、fetch_note_detail をノートごとに必ず呼び出してください。タイトルとエンゲージメント数だけのリストデータでは詳細な分析には不十分です。本文、コメント、タグはすべて detail インターフェースからのみ取得できます。
  • scripts/crawl_blogger.py の代わりに独自のスクリプトを作成してはいけません。既存のスクリプトを必ず呼び出してください。
  • --max-notes パラメーターの値を変更してはいけません。フェーズ 0.5 でユーザーが選択した数量を必ず使用してください。

⚠️ すべてのエンドポイントが失敗した場合の対応: 収集中に「すべてのエンドポイントが失敗しました」というエラーが発生した場合(特に HTTP 402/403)、直ちに処理を中断し、ユーザーに知らせてください:

⚠️ すべての API エンドポイントが失敗を返しました。最もよくある原因は、TikHub コンソールで API 権限がすべて有効になっていないことです。 https://user.tikhub.io にログインし、コンソール → API 権限に移動して、小紅書関連のエンドポイントをすべて一括選択してから、再度実行してください。 すべての権限が有効な場合は、アカウント残高が十分か確認してください。

自動で次の処理を行います:

  1. ブロガーを検索して特定(search_users で正確に照合することを優先し、見つからない場合は search_notes で照合)
  2. プロフィール情報を取得 — フォロワー数、獲得いいね数、ノート数、紹介文(fetch_user_info)
  3. プロフィールのノート一覧を取得 — ページネーションでユーザーの全ノートを取得(fetch_user_notes)
  4. 複数のキーワードで検索して補足 — デフォルトでは汎用的な語尾(チュートリアル / おすすめ / シェア / レビュー / 攻略 / まとめ)を使用します。ユーザーは --keywords で分野のキーワードを指定できます(search_notes)
  5. ノートの詳細を 1 件ずつ取得 — TikHub API のレート制限に合わせて、間隔を自動調整します(fetch_note_detail)
  6. チェックポイントから再開 — 10 件ごとに自動保存します

出力ファイル(JSON):

  • {ブロガー名}_profile.json — プロフィール情報
  • {ブロガー名}_notes_list.json — ノート一覧(いいね数順)
  • {ブロガー名}_notes_details.json — ノートの詳細(コメントを含む)
Phase 2: 数据分析 + 认知层提取

运行 python scripts/analyze.py ./data/<博主名>_notes_details.json -o ./data

自动完成:

  1. 数据清洗 — 解析 JSON,提取标题 / 正文 / 互动数据 / 评论 / 标签
  2. 内容分类 — 基于笔记标签和高频关键词动态聚类,不预设任何领域
  3. 标签统计 — 提取所有 # 话题标签,按频次排序 TOP20
  4. TOP10 + 评论洞察 — 高赞前 10 条的详情 + 热评精选
  5. 认知层粗提取 — 观点句候选 / 高频价值词 / 写作结构统计
  6. [可选] 对比分析 — 自己 vs 目标博主的数据差异

输出文件:

  • {博主名}_analysis.json — 结构化分析数据(含完整笔记列表、分类、观点句候选、高频价值词等)
Phase 3: 蒸馏 + 产出物生成
Step A:生成数据底稿和 AI 蒸馏任务

运行:

python scripts/deep_analyze.py ./data/<博主名>_analysis.json "<博主名>" \
  -o ./output --details ./data/<博主名>_notes_details.json --mode <user_mode>

脚本自动完成:

  1. 基础统计面板 — 均赞 / 均藏 / 均评 / 爆款率 / 视频 vs 图文 / 藏赞比
  2. 标题模式识别 — 11 种标题策略的使用比例和示例
  3. 内容结构分析 — 正文长度分布、列表率、小标题率
  4. CTA 提取
  5. Emoji 视觉分析
  6. 发布频率
  7. 发展趋势数据
  8. 观点句候选 / 高频价值词 / 写作结构
  9. TOP10 数据包
  10. AI 蒸馏任务

脚本产出:

  • {博主名}_数据底稿.md
  • {博主名}_AI蒸馏任务.md
Step B:AI 读取蒸馏任务,生成最终产物

AI 必须读取 AI蒸馏任务.md,按以下顺序生成最终交付物,每完成一个立即写入磁盘,不等另一个完成:

  1. Skill 文件夹(先)

    • 模式 A:{博主名}_创作指南.skill/SKILL.md
    • 模式 B:{用户名}_创作基因.skill/SKILL.md
    • 生成完毕后立即写入文件,再继续步骤 2
  2. HTML 报告(后)

    • 文件名:{博主名}_蒸馏报告.html
    • 技术要求:单文件 HTML,手写 CSS(禁止 Tailwind CDN),Google Fonts 引入 Space Mono + Noto Serif SC
    • 设计风格:Archive Terminal(工业档案感);底色 #CEC9C0,主强调色 #8A3926,正文 #1A1211
    • 无圆角、无阴影、无白色卡片;模块1/8/10 为砖红色反转背景
    • 三个动效:滚动 fadeInUp / 数字 counter / 分割线 draw-in(原生 JS)
    • 折叠面板用 <details><summary> 原生 HTML;响应式,移动端断点 768px
    • 字号系统:标签/元数据层 11-13px,正文内容层 14-16px,统计大数字 20px(详见 AI蒸馏任务.md 字号系统表)
    • 详细视觉规格见 AI蒸馏任务.md 的"技术要求"章节
    • 生成完毕后立即写入文件

⚠️ 关键契约:

  • 最终 Skill 不是单个 .skill.md 文件
  • 最终 Skill 是一个可安装的文件夹
  • 文件夹中至少必须有 SKILL.md

Skill 第三章(内容层)结构要求:

  • 3.1 标题公式 TOP5
  • 3.2 开头模板 TOP3
  • 3.3 正文公式(含叙事框架库 + 段落功能标签 + 转折词库)← 扩展
  • 3.4 情感节奏公式(含情感弧线 + 峰值制造法 + 张力公式 + 留存钩子)← 新增
  • 3.5 语言DNA(含高频用语 + 力量短语 + 句式节奏 + 人称策略 + 签名句式 + 对话感)← 新增
  • 3.6 CTA 策略
  • 3.7 视觉规则
  • 3.8 标签策略
  • 3.9 发布节奏

⚠️ 3.3-3.5 数据来源分支:有 Whisper 逐字稿时从逐字稿提取,无逐字稿时从笔记正文提取。所有博主均生成完整结构,不跳过章节。

  • 小红书和抖音均适用以上顺序,不得颠倒
Phase 4: 质量检查

运行校验时,最终产物应按以下口径验收:

  • {博主名}_蒸馏报告.html
  • {博主名}_创作指南.skill/SKILL.md

模式 B 时,将第二项替换为:

  • {用户名}_创作基因.skill/SKILL.md

如果最终产物缺失、为空、或 AI 仍输出成单个 .skill.md 文件,都视为不合格。


TikHub API 调用协议

使用 HTTP REST API,Bearer Token 认证:

from scripts.utils.tikhub_client import TikHubClient

client = TikHubClient()  # 自动从环境变量/配置文件读取 Token
data = client.search_notes("博主名")
可用端点
方法用途关键参数
search_users(keyword)搜索用户(精准匹配博主)keyword
search_notes(keyword)搜索笔记keyword, page, sort
fetch_user_info(user_id)获取用户主页信息user_id
fetch_user_notes(user_id)获取用户笔记列表user_id, cursor
fetch_note_detail(note_id)获取笔记详情+评论note_id
TikHub 使用注意
  • Token 需在 https://user.tikhub.io 注册获取并充值
  • 权限不足(403):Token 的 scope 未勾选全部 xiaohongshu 相关端点。解决方法:登录 TikHub 控制台 → API 权限,一键勾选全部小红书端点
  • 余额不足(402):账户余额耗尽。解决方法:登录 TikHub 控制台充值
  • 所有端点均失败:最常见原因是权限未全部开通或余额不足。请优先检查这两项
  • 429 限速:客户端内置 RPS 自适应限速(自动检测账户套餐),一般无需手动处理
  • 请求间隔由客户端自动管理(基于账户 RPS 限制 × 0.7 安全系数)
  • 密钥存储:用户输入的 Token 会自动保存到 ~/.xiaohongshu/tikhub_config.json,下次运行自动读取,无需重复输入

文件结构

blogger-distiller/
├── SKILL.md                  # 你现在看的这个文件
├── run.py                    # 一键运行入口(串联 Phase 0→4)
├── install.py                # 自动安装脚本
├── scripts/
│   ├── check_env.py          # Phase 0: 环境自动准备(TikHub Token 检查)
│   ├── crawl_blogger.py      # Phase 1: 数据采集(TikHub API)
│   ├── analyze.py            # Phase 2: 数据分析 + 认知层粗提取
│   ├── deep_analyze.py       # Phase 3: 数据底稿 + AI 蒸馏任务
│   ├── verify.py             # Phase 4: 数据校验模块
│   └── utils/
│       ├── tikhub_client.py  # TikHub REST API 客户端(限速+多端点降级)
│       ├── endpoint_router.py # 端点池路由 + 自动降级引擎
│       ├── endpoints.json    # 端点池配置(4组×7类 = 28 个端点)
│       ├── adapters.py       # 响应数据归一化适配器
│       ├── common.py         # 共用工具函数
│       └── quality.py        # 数据质量检查工具
└── references/
    └── 张咋啦_创作指南.md

使用方式

自然语言触发(推荐)

直接对 AI 说:

拆解博主 <目标博主名>

AI 必须先执行 Phase 0.5 前置交互,再继续后面的流程。

一键运行
cd blogger-distiller/
python run.py "<博主名>"

运行后必须先完成:

  1. 模式 A / B 选择
  2. 数量 30 / 50 / 80 选择

然后再进入采集、分析、蒸馏。

手动分步执行
cd blogger-distiller/

# Phase 0: 环境自动准备(检查 Python + python-docx + TikHub Token)
python scripts/check_env.py

# Phase 1: 采集博主数据
python scripts/crawl_blogger.py "<博主名>" -o ./data --max-notes 50

# Phase 2: 数据分析
python scripts/analyze.py ./data/<博主名>_notes_details.json -o ./data

# Phase 3 Step A: 生成数据底稿和 AI 蒸馏任务
python scripts/deep_analyze.py ./data/<博主名>_analysis.json "<博主名>" \
  -o ./output --details ./data/<博主名>_notes_details.json --mode A

注意:

  • crawl_blogger.py 和 analyze.py 不要自行改写,直接调用现有脚本。
  • deep_analyze.py 只负责生成数据底稿和 AI 蒸馏任务;最终 HTML 和 Skill 文件夹由宿主 AI 继续完成。

多平台兼容性

平台本机运行HTTP APIPython文件读写测试状态
CodeBuddy (WorkBuddy)✅✅✅✅✅ 已验证
Claude Code✅✅✅✅✅ 已验证
OpenClaw (本地)✅✅✅✅待测试
OpenClaw (云端)✅✅✅✅待测试(不再需要桌面环境)
Codex✅✅✅✅✅ 已验证
核心原则
  1. 一份 SKILL.md 兼容 WorkBuddy / Claude Code / OpenClaw / Codex
  2. 工具函数提取到 utils/common.py 共用
  3. 使用标准库(urllib)避免外部依赖
  4. Token 三级加载(环境变量 → 配置文件 → 交互输入),无需桌面环境

错误处理规则

遇到以下报错时,不要直接告知用户"采集失败",按对应步骤处理后重试:

ケース A:エラーに [需要更新] が含まれている

発生条件:

  • 検索結果にユーザーは表示されるものの、ニックネームがすべて空欄(アダプターが古くなっています)
  • すべてのエンドポイントが 404 を返す(エンドポイント設定が古くなっています)

対処手順:

  1. skill ディレクトリで git pull origin main を実行します
  2. 成功した場合(更新があった、または Already up to date)→ Phase 1 から再度収集を開始します
  3. 失敗した場合(git 以外でインストールされている)→ ユーザーに次のように伝えます:请重新运行 python install.py 更新 skill 文件后重试
ケース B:エラーに 余额不足 または 请充值 が含まれている(429)

対処手順:

  1. https://user.tikhub.io にログインし、アカウント残高が反映されているか確認するようユーザーに伝えます
  2. 残高が正常に表示されているのにエラーが続く場合 → Token を再生成して再試行するようユーザーに伝えます
  3. 残高が実際に 0 の場合 → チャージしてから再試行するようユーザーに案内します
ケース C:ブロガーは検索で見つかるものの、ユーザー情報がすべて 422 になる

対処手順:

  1. まず git pull origin main を実行して、コードが最新であることを確認します
  2. 検索で見つかった sec_uid が正しいことを確認します(正しいブロガーが見つかっているか確認します)
  3. sec_uid が正しいのに 422 になる場合 → TikHub で Douyin 関連エンドポイントの権限が有効になっているか確認するようユーザーに伝えます
ケース D:出力に 找不到 ffmpeg 警告が含まれている

発生条件:動画の文字起こし(--transcript)が有効になっていますが、ffmpeg ツールが準備できていません。

対処手順:

  1. ユーザーに次のように伝えます:「動画の音声抽出ツールの準備ができていません。環境設定をもう一度行う必要があるので、こちらでお手伝いします。」
  2. 次を実行します:python3 scripts/check_env.py
  3. check_env.py が ffmpeg のインストールを案内します(「はい」または「いいえ」と答えるだけです)
  4. インストール完了後、Phase 1 から再度収集を開始します

参考ドキュメント

  • references/张咋啦_创作指南.md — 制作ガイド形式の成果物の構成を参考にできます。現在の HTML/Skill フォルダーの契約と矛盾する場合は、本ファイルと操作マニュアルを優先します

発展的な使い方(蒸留完了後に任意で実行)

蒸留完了後、以下の高度な分析は必要に応じて実行できます。トリガーワードを伝えるだけで実行できます:

使い方トリガーワード説明
🎨 カバーのビジュアルスタイル分析「カバーを分析」カバーの色彩、構図、文字のスタイルを分析し、改善案を提示します(2つのプラットフォームに対応、追加 API 不要)
📈 キーワードトレンドの洞察「キーワードトレンド」Douyin:Index API による完全なトレンド+プロフィール;小紅書:トレンド検索との照合+関連キーワードの方向性
🔄 既存の蒸留結果をアップグレード「自分の skill をアップグレード」既存の蒸留結果に新しい観点を追加します。再収集は不要です

コメント