mcpField
D
douyin-comment

douyin-comment

github.com/redfox-dataマーケティング・グロース45063 回インストール1 日前に更新
リポジトリ

douyin-comment について

douyin-commentは、Douyinの投稿に付いたトップレベルコメントを分析するスキルです。投稿リンクまたはvideoIdからコメントをページ単位で取得し、4つの観点で要約して、インタラクティブなHTMLレポートを作成できます。

主な機能

  1. 01Douyin投稿コメントの取得
  2. 02コメントのページ別閲覧
  3. 034観点のコメント分析
  4. 04固定コメントの識別
  5. 05インタラクティブなHTMLレポート作成

活用シーン

  1. 01Douyin投稿への反応の把握
  2. 02投稿コメントのページ別確認
  3. 03コメント分析のHTMLレポート化

インストール

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

$npx skills add https://github.com/redfox-data/redfox-community --skill douyin-comment

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

同梱ファイル

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

README.en.md
README.md
assets/
report_template.html
scripts/
backfill_html.py
douyin_comment_search.py

詳細

抖音コメント分析

📝 概要

抖音の動画リンクを入力すると、トップレベルのコメントデータを取得できます。1ページあたり20件で、ページ送りに対応しています。会話内に現在のページの全コメントとAIによる要約分析を表示すると同時に、現在のページのデータと要約を含むインタラクティブなHTMLレポートを生成します。

✨ 機能

機能モジュール機能の説明主な価値
コメント取得動画リンクを貼り付けるだけでコメントを取得動画のコメント欄の最新データを取得
ページ送り1ページあたり20件、ページ送りに対応大量のコメントをページごとに閲覧
AI要約4つの観点から感情を分析(肯定的/否定的/ニーズ/競合)コメントの評判全体をすばやく把握
固定表示マーク固定コメントを特別に表示重要なコメントをひと目で識別
HTMLレポートダークテーマのインタラクティブレポート分析結果をオフラインで保存/共有

🔑 認証

  • API Key の取得:红狐hub にアクセスしてください
  • 設定方法1:~/.openclaw/openclaw.json に { "env": { "REDFOX_API_KEY": "ak_xxxx..." } } を記述します
  • 設定方法2:ターミナルで export REDFOX_API_KEY="ak_xxxx..." を実行します

🔄 ワークフロー

Step 1:ユーザーの意図を理解し、videoIdを抽出する

⚠️ 重要なルール:ユーザーの入力から必ず videoId を抽出してください。

  • ユーザーが videoId(数字のみ)を直接入力する場合があります
  • ユーザーが動画リンク(例:https://www.douyin.com/video/7131700643076623629)を入力する場合は、リンクから videoId を抽出します
  • ユーザーが動画リンクを入力していない場合は、「抖音の動画リンクを入力してください」と尋ねます
  • 前のターンでユーザーが動画のデータを照会しており、今回の入力が曖昧(例:「次のページ」「コメント分析」)な場合は、前のターンの videoId を引き継ぎます
Step 2:コメント取得スクリプトを呼び出す(HTMLを自動生成)

⚠️ 呼び出し1回につきリクエストするのは1ページ分のデータのみ(APIリクエスト1回)です。複数ページを取得するために、独断で複数回呼び出してはいけません。

スクリプトは呼び出しのたびにHTMLレポートを自動生成します({{PLACEHOLDER}} のプレースホルダーを含み、分析データは未入力です)。ターミナルの表示とHTMLは同じAPI呼び出しを基にしており、データの一貫性が保たれます。

python3 ~/.agents/skills/douyin-comment-search/scripts/douyin_comment_search.py "<videoId>" [--offset <offset>]

パラメーターの説明:

パラメーター説明デフォルト値
videoId抖音の動画ID(必須)—
--offsetオフセット。1ページあたり20件0
--output-dirHTMLの出力先ディレクトリ~/Downloads/QoderReports

offset とページ番号の対応関係:

ページoffset
1ページ目0
2ページ目20
3ページ目40
...offset = (page - 1) × 20

スクリプトは次のJSONを返します:

フィールド説明
video_id動画ID
current_page現在のページ番号
total_fetched今回取得したコメント数
has_next次のページがあるか(true/false)
commentsコメント一覧
html_path生成したHTMLレポートのパス(プレースホルダーを含み、後から入力)

各コメントのフィールド:

フィールド説明
comment_idコメントID
contentコメント内容
like_countいいね数
reply_count返信数
create_timeコメント日時
ip_locationIPの所在地
user_nameユーザーのニックネーム
user_avatarユーザーのアバターURL
user_idユーザーID(プロフィールページのリンク生成に使用)
user_urlユーザーのプロフィールページへのリンク
is_top固定コメントかどうか(true/false)

注意: この時点のHTMLレポートにはコメントの生データのみが含まれます。分析用のプレースホルダー({{PLACEHOLDER}})は、ユーザーの確認後に入力します。

Step 3:会話内にコメントデータとAI要約を表示する

⚠️ 1回の操作につきAPI呼び出しは1回のみで、1ページ分のデータを取得します。会話内の表示とHTMLレポートは同じページのデータを基にします。

A1. 照会範囲を伝える

📊 動画「{videoId}」からコメントを N 件取得しました({page}ページ目)。詳細は以下のとおりです:

A2. コメントテーブルを表示する(現在のページの全コメントを表示)
| # | 评论人 | 评论内容 | 👍 | 💬 | 时间 | IP |
|---|--------|---------|----|----|------|-----|
| 1 | ![avatar](头像URL)[昵称](主页链接) | 评论内容... | 1223 | 213 | 02-12 15:30 | 广东 |
| 2 | ![avatar](头像URL)[昵称](主页链接) | 评论内容... | 856 | 45 | 02-12 14:20 | 北京 |
| ... | ... | ... | ... | ... | ... | ... |

書式ルール:

  • コメント投稿者の列は ![avatar](头像URL)[昵称](user_url) のMarkdown形式を使用し、画像サイズを設定する必要はありません
  • コメント内容が40文字を超える場合は切り詰めて ... を追加します
  • 日時は MM-DD HH:MM の形式に整えます
  • 固定コメントはニックネームの後ろに 📌 マークを付けます(コメント行全体を太字にします)
  • like_count/reply_count の数値が10000以上の場合は x.xw 形式を使用します
  • ⚠️ 1ページの上限は20件です。会話内にはすべて表示し、省略してはいけません
A3. AIによるコメント要約(⚠️ ページ送りを含む毎回の照会で必ず出力)

現在のページで取得したすべてのコメントを基に、4つの観点から感情を分析します。分析前に抖音のミーム文化(流行語、略語、スタンプの意味、話題の背景)を理解する必要があります。

📈 コメントの要約分析({total}件のコメントに基づく)

✅ 肯定的な評価({positive_ratio}%)
  • {要点1}
  • {要点2}
  • ...
⚠️ 否定的な評価({negative_ratio}%)
  • {要点1}
  • {要点2}
  • ...
💡 ユーザーのニーズ({demand_ratio}%)
  • {要点1}
  • {要点2}
  • ...
🔍 競合に関する評判({competitor_ratio}%)
  • {コメントで競合に言及されている場合のみ出力し、それ以外は「競合への言及なし」と出力}
  • {競合名}:{評判の要点}

分析要件:

  • 各要点には、代表的なコメント(キーワード/フレーズを抜粋)を引用する必要があります
  • 割合は、その種類に該当するコメント数の総コメント数に対する比率です
  • 肯定的/否定的/ニーズ/競合の4分類の割合の合計は、100%を超える場合があります(1つのコメントに複数種類の情報が含まれることがあります)
  • 抖音のミーム文化を必ず理解してください:流行語(例:「絶絶子」「yyds」「防御崩壊」「入典」)、スタンプの意味、略語(例:「xswl」「awsl」)、ミームの文脈上の意味を識別してください
A4. 翻页提示(⚠️ 紧接在 A3 之后,每次必须输出)
  • 若 has_next 为 true:

📄 当前第 {page} 页(共 {total_fetched} 条)。回复「下一页」继续查看。

  • 若 has_next 为 false:

📄 当前第 {page} 页,已无更多数据。

⚠️ A1~A4 必须在同一轮输出中连续完成,不可省略任何一步。

A4 输出完毕后,询问用户是否需要生成 HTML 可视化报告:

📊 是否需要生成 HTML 可视化报告?

若用户回复「是」「需要」「生成」「html」等确认词,则执行以下步骤(无需重新调用脚本,HTML 文件已在 Step 2 生成):

① 回填 AI 分析结果到 HTML

调用 backfill_html.py 将 AI 分析结果回填到 HTML 中的 {{PLACEHOLDER}} 占位符:

python3 ~/.agents/skills/douyin-comment-search/scripts/backfill_html.py "<html_path>" --analysis-json '{
  "positive_ratio": <正整数>,
  "negative_ratio": <正整数>,
  "demand_ratio": <正整数>,
  "competitor_ratio": <正整数>,
  "positive_summary": "<ul><li>要点1</li><li>要点2</li>...</ul>",
  "negative_summary": "<ul><li>要点1</li><li>要点2</li>...</ul>",
  "demand_summary": "<ul><li>要点1</li><li>要点2</li>...</ul>",
  "competitor_summary": "<ul><li>要点1</li><li>要点2</li>...</ul>"
}'

JSON 字段说明:

字段类型说明示例
positive_ratioint积极评价占比(纯数字,不含%)45
negative_ratioint负面评价占比30
demand_ratioint用户需求占比15
competitor_ratioint竞品对比占比15
positive_summarystring积极评价摘要(HTML 格式 <ul><li>...</li></ul>)见示例
negative_summarystring负面评价摘要同上
demand_summarystring用户需求摘要同上
competitor_summarystring竞品对比摘要同上

注意: JSON 字符串参数包含双引号,Bash 中使用单引号包裹,内部双引号需转义 \"。若内容含单引号则用 stdin 方式传入:echo '...' | python3 backfill_html.py "<html_path>"

② 打开 HTML 报告:

open "<html_path>"
Step 4:翻页处理(用户回复「下一页」等时)

当用户回复「下一页」「上一页」「第 N 页」时:

  1. 沿用 Step 1 中提取的 videoId
  2. 计算新的 offset:(page - 1) × 20
  3. 重新调用脚本(与 Step 2 一致,自动生成 HTML):python3 .../douyin_comment_search.py "<videoId>" --offset <offset>
  4. 完整执行 Step 3 的 A1~A4(每页独立展示 + AI 分析)
  5. A4 后询问用户是否需要生成当前页 HTML(同 Step 3 末尾流程,无需重新调用脚本)

翻页规则:

  • has_next 为 true → 当前页正好 20 条,存在下一页
  • has_next 为 false → 当前页不足 20 条,已是最后一页
Step 5:错误处理
错误类型处理方式
无 API Key提示配置 REDFOX_API_KEY,给出配置指引
作品链接无效提示「未找到该作品的评论,请检查作品链接是否正确」
接口返回错误显示错误码和错误信息
获取 0 条评论提示「该作品暂无评论」并建议检查作品是否存在或已删除
网络请求超时提示「网络请求超时,请稍后重试」

📋 依赖

# 脚本使用 urllib(Python 标准库),无需额外安装依赖

🎯 使用示例

示例 1:查看指定作品的评论

用户:查看抖音作品 7131700643076623629 的评论
助手:调用脚本(自动生成HTML) → 展示全部20条 + AI总结 → 询问是否需要HTML → 用户确认 → backfill → open

示例 2:通过链接查询

用户:https://www.douyin.com/video/7131700643076623629 这篇的评论怎么样
助手:提取 videoId → 调用脚本 → 展示分析 → 询问是否需要HTML

示例 3:翻页

用户:下一页
助手:调用脚本 offset=20 → 展示第2页 + AI分析 → 询问是否需要当前页HTML

コメント