youtube-research について
youtube-research は、YouTube クリエイター向けに注目動画を探し、内容を分析して実用的なレポートを作るリサーチスキルです。チャンネルデータ、トピックキーワード、動画分析から、タイトルの型やフック、構成を整理します。
主な機能
- 01チャンネル動画と再生数の取得
- 02ニッチおよび関連トピックの突出動画検索
- 03トピックとの関連性による動画選定
- 04フック、構成、視聴維持、CTA の分析
- 05リサーチレポートの作成
活用シーン
- 01チャンネルで参考にする好成績トピックの発見
- 02ニッチと関連視聴者向け動画の比較
- 03タイトルとフックの型の抽出
- 04YouTube コンテンツ調査レポートの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bradautomates/ head-of-content --skill youtube-researchインストール後、Claude Code で/youtube-researchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/channel-analysis-schema.mdscripts/find_outliers.pyget_channel_videos.py詳細
YouTube 調査
高い成果を上げている YouTube の外れ値動画を調査し、人気コンテンツを AI で分析して、実行可能なレポートを作成します。
前提条件
TUBELAB_API_KEY環境変数。キーは https://tubelab.net/settings/api から取得しますGEMINI_API_KEY環境変数(動画分析用)- Python パッケージ
google-genaiとrequests
ワークフロー
ステップ 1:実行フォルダーを作成する
mkdir -p youtube-research/$(date +%Y-%m-%d_%H%M%S)
ステップ 2:チャンネル ID を取得する
.claude/context/youtube-channel.md を読み、チャンネル ID を取得します。
ステップ 3:チャンネル動画を取得する
python scripts/get_channel_videos.py CHANNEL_ID --format summary
チャンネルの動画タイトルと視聴回数を含む JSON が返されます。
ステップ 4:チャンネルを分析する
チャンネルのデータを分析し、以下を抽出します:
- keywords:チャンネルの直接的なニッチ分野を表す検索語句を 4 つ
- adjacent-keywords:同じ視聴者が見るトピックを表す検索語句を 4 つ
- audience:反論、変化、利害関係を含む視聴者プロフィールを 2〜3 件
- formulas:再利用可能なタイトルのテンプレート
スキーマ全体と出力例については、references/channel-analysis-schema.md を参照してください。
ステップ 5:外れ値を検索する
両方のキーワードセットを使って外れ値を検索します:
python .claude/skills/youtube-research/scripts/find_outliers.py \
--keywords "keyword1" "keyword2" "keyword3" "keyword4" \
--adjacent-keywords "adjacent1" "adjacent2" "adjacent3" "adjacent4" \
--output-dir youtube-research/{run-folder} \
--top 5
次の 2 つの検索が実行されます:
- 直接的なニッチ分野:5K 回以上の視聴数をしきい値としてキーワードを検索
- 隣接する視聴者層:10K 回以上の視聴数をしきい値として adjacent-keywords を検索
出力ファイル:
outliers.json- 動画分析用に正規化されたすべての外れ値report.md- 基本的な Markdown レポートthumbnails/*.jpg- 動画のサムネイルtranscripts/*.txt- 動画のトランスクリプト
ステップ 6:分析対象の関連動画を絞り込む
outliers.json と .claude/context/youtube-channel.md に記載されたユーザーのニッチ分野を読みます。
重要:ユーザーのニッチ分野に最も関連する動画を最大 3 本選択します。次の基準で絞り込みます:
- タイトルの関連性:タイトルにユーザーのニッチ分野/トピックに関するキーワードが含まれている
- トランスクリプトの関連性:トランスクリプトがある場合、関連トピックに言及しているか確認する
- 直接的なニッチ分野を優先:隣接するキーワードの検索結果よりも、直接的なキーワードの検索結果から動画を選ぶ
ユーザーのコンテンツスタイルから明らかに外れる動画は除外します(例:チュートリアルを作成するユーザーの場合、エンターテインメントや Vlog の動画)。
絞り込んだ動画を {RUN_FOLDER}/filtered-outliers.json に書き込みます:
{
"outliers": [/* max 3 relevant videos */],
"filter_reason": "Selected based on relevance to [user's niche]"
}
ステップ 7:人気動画を AI で分析する
python3 .claude/skills/video-content-analyzer/scripts/analyze_videos.py \
--input {RUN_FOLDER}/filtered-outliers.json \
--output {RUN_FOLDER}/video-analysis.json \
--platform youtube \
--max-videos 3
各動画から以下を抽出します:
- フックの手法と再現可能な公式
- コンテンツの構成とセクション
- 視聴維持のテクニック
- CTA 戦略
出力スキーマ全体とフック/フォーマットの種類については、video-content-analyzer スキルを参照してください。
ステップ 8:最終レポートを作成する
{RUN_FOLDER}/outliers.json と {RUN_FOLDER}/video-analysis.json を読み、{RUN_FOLDER}/report.md を作成します。
レポートの構成:
# YouTube Research Report
Generated: {date}
## Top Performing Hooks
Ranked by engagement. Use these formulas for your content.
### Hook 1: {technique} - {channelTitle}
- **Video**: "{title}"
- **Opening**: "{opening_line}"
- **Why it works**: {attention_grab}
- **Replicable Formula**: {replicable_formula}
- **Views**: {viewCount} | **zScore**: {zScore}
- [Watch Video]({url})
[Repeat for each analyzed video]
## Content Structure Patterns
| Video | Format | Pacing | Key Retention Techniques |
|-------|--------|--------|--------------------------|
| {title} | {format} | {pacing} | {techniques} |
## CTA Strategies
| Video | CTA Type | CTA Text | Placement |
|-------|----------|----------|-----------|
| {title} | {type} | "{cta_text}" | {placement} |
## All Outliers
### Direct Niche
| Rank | Channel | Title | Views | zScore |
|------|---------|-------|-------|--------|
[List direct niche outliers]
### Adjacent Audience
| Rank | Channel | Title | Views | zScore |
|------|---------|-------|-------|--------|
[List adjacent outliers]
## Actionable Takeaways
[Synthesize patterns into 4-6 specific recommendations based on video analysis]
実行可能なインサイトを重視してください。再現可能な公式を含む「成果の高いフック」セクションを目立つように配置してください。
クイックリファレンス
パイプライン全体:
RUN_FOLDER="youtube-research/$(date +%Y-%m-%d_%H%M%S)" && mkdir -p "$RUN_FOLDER" && \
python .claude/skills/youtube-research/scripts/find_outliers.py \
--keywords "k1" "k2" "k3" "k4" \
--adjacent-keywords "a1" "a2" "a3" "a4" \
--output-dir "$RUN_FOLDER" --top 5
続いて、ニッチ分野との関連性に基づいて外れ値を絞り込み(最大 3 本)、動画分析を実行してレポートを作成します。
スクリプトリファレンス
get_channel_videos.py
python .claude/skills/youtube-research/scripts/get_channel_videos.py CHANNEL_ID [--format json|summary]
| 引数 | 説明 |
|---|---|
CHANNEL_ID | YouTube チャンネル ID(24 文字) |
--format | json(全データ)または summary(分析用) |
find_outliers.py
python .claude/skills/youtube-research/scripts/find_outliers.py --keywords K1 K2 K3 K4 --adjacent-keywords A1 A2 A3 A4 --output-dir DIR [options]
| 引数 | 説明 |
|---|---|
--keywords | 直接的なニッチ分野のキーワード(推奨:4 つ) |
--adjacent-keywords | 隣接トピックのキーワード(推奨:4 つ) |
--output-dir | 出力ディレクトリ(必須) |
--top | カテゴリーごとの動画数(デフォルト:5) |
--days | 検索対象の日数(デフォルト:30) |
--json | 生の JSON データも保存 |
出力:outliers.json、report.md、thumbnails/、transcripts/
スコアリングアルゴリズム
動画の順位は zScore × recency_boost で決まります。
- zScore:動画がチャンネルの平均をどの程度上回っているか
- recency_boost:今日の動画は 1.0、1 日ごとに 5% 低下(最小 0.3×)