ScavioScavio
プロダクト料金ドキュメント
サインイン始める
ブログ
youtubecontent-researchapicreator-tools

APIでYouTubeの外れ値動画を見つける方法

YouTube検索結果を再生数つきで取得し、中央値を出して5倍以上の動画を抽出。そのまま動くPythonとJS、正直な限界も解説。

June 2, 2026
6 min read

APIでYouTubeの外れ値動画はどう見つける?

キーワードで動画をまとめて取得し、その再生数の中央値を出し、再生数が中央値の5倍以上になる動画を抽出します。この比率が外れ値スコアで、ScavioのYouTube検索のようなAPIなら再生数・高評価・コメント数をJSONで返してくれるので、ブラウザを一切触る必要がありません。最近Redditのある投稿者がまさにこれをやる「外れ値ファインダー」をオープンソース化し、同じサブレディットのデータサイエンティストは、外部から測れるのはインプレッションの減衰ではなく再生数ベースの外れ値だけだと示しました。

外れ値動画とは何か?

外れ値とは、その比較対象グループの平均的な成績を大きく上回る動画です。比較対象グループとは、あるチャンネルの最近の投稿か、あるニッチの検索上位結果のどちらかです。式はシンプルです。

outlier_score = video_views / median_views_of_peer_set

平均ではなく中央値を使ってください。たった1本のバズが平均を押し上げ、ほかのブレイクをすべて覆い隠してしまいますが、中央値は「ふつう」がどのくらいかに固定されたままです。スコア1.0はちょうど平均。スコア5倍以上は分解する価値のある強い外れ値で、そのテーマ・タイトル・サムネ形式が抜きん出たのには理由があります。約2倍未満はノイズです。多くの投稿者が5倍以上の層を調べるのは、そこに再現できるパターンが隠れていることが多いからです。

Python: ニッチを取得し、中央値を計算し、外れ値を抽出する

以下はScavioのYouTube検索を呼び、再生数を取り、5倍以上のものをすべて出力します。キーを入れればそのまま動きます。

Python
import requests
import statistics

API_KEY = "sk_live_..."
NICHE = "home espresso setup"
THRESHOLD = 5.0

resp = requests.post(
    "https://api.scavio.dev/api/v1/youtube/search",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"search": NICHE},
)
resp.raise_for_status()
videos = resp.json()["videos"]

views = [v["view_count"] for v in videos if v.get("view_count")]
median = statistics.median(views)

for v in videos:
    vc = v.get("view_count") or 0
    score = vc / median if median else 0
    if score >= THRESHOLD:
        print(f"{score:.1f}x  {vc:>10,}  {v['title']}")

フィールド名は実際のレスポンスの形に依存するので、view_countやvideosが合わなければまず1件を出力して確認してください。1回の呼び出しは1クレジット($0.005)なので、10個のニッチを走査しても5セントです。

JavaScript: fetchで同じ呼び出し

JavaScript
const resp = await fetch("https://api.scavio.dev/api/v1/youtube/search", {
  method: "POST",
  headers: {
    "Authorization": "Bearer sk_live_...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ search: "home espresso setup" }),
});
const { videos } = await resp.json();
const views = videos.map((v) => v.view_count).filter(Boolean).sort((a, b) => a - b);
const median = views[Math.floor(views.length / 2)];
const outliers = videos.filter((v) => (v.view_count || 0) / median >= 5);
console.log(outliers);

正直なトレードオフ: これは発見のためのデータで、チャンネル分析ではない

Scavioが返すのは、公開の再生数・高評価・コメント数つきのランク付き検索結果です。発見や、複数ニッチを高速に横断スキャンするのにまさに向いていて、1回1クレジットです。返ってこないのは動画ごとの非公開の時系列、つまりインプレッション数、クリック率、平均視聴時間、視聴維持カーブです。これらはログインの向こう側にあります。だから再生数ベースの外れ値は「その動画が伸びた」ことは教えてくれますが、サムネがクリックを勝ち取ったのか、テーマが視聴を引き留めたのかまでは教えてくれません。

検索結果を超えた動画ごとのメタデータが必要なら、POST https://api.scavio.dev/api/v1/youtube/metadataと組み合わせて特定の動画をより詳しく取得できます。ただし自分のチャンネルのインプレッションやCTRの減衰には、YouTube Studioと公式のYouTube Data APIが完全に勝ります。インプレッション減衰を測ったRedditのデータサイエンティストがStudioのエクスポートで作業していたのは、まさにこの理由からです。Scavioは公開パフォーマンスを外から見る望遠鏡、Studioは自分のファネルを内から見る視点です。

なぜ公開検索のスクレイピングよりAPIが優れているのか

YouTubeの検索結果は公開かつインデックス済みなので、構造化APIならプロキシのローテーションもCAPTCHA突破もヘッドレスブラウザの世話も要らず、きれいなJSONを返してくれます。問い合わせれば再生数とタイトルが返ってきます。落とし穴は上のトレードオフと同じで、これは公開された発見用データです。チャンネルの非公開指標への裏口ではなく、どんなAPIも他人のインプレッションやCTRは渡してくれません。分析ダッシュボードではなく、調査用の望遠鏡として扱ってください。

判断のルール

多くのニッチをスキャンして伸びるテーマを探し、公開された外れ値から勝てるタイトルや形式を逆算したいなら、1回数セントで使えるScavioのような検索データAPIを使ってください。動画ごとに深掘りしたいときは/youtube/metadataと組み合わせます。問いが自分のインプレッション・CTR・維持率に関わった瞬間に、YouTube Studioか公式Data APIへ切り替えてください。外れ値探しは発見、チャンネル最適化は分析であり、1つのツールが両方のふりをすべきではありません。

続きを読む

exasearch-api

Exa Searchが高い理由と、2026年の安い代替策

7 min read
reddit-apilead-generation

Redditで、すでにある自社プロダクトの需要を掘り当てる

7 min read
ScavioScavio

AIエージェント向けリアルタイム検索API。Googleだけでなく、あらゆるプラットフォームを検索します。

製品

  • 機能
  • 料金
  • ダッシュボード
  • アフィリエイト

開発者

  • ドキュメント
  • APIリファレンス
  • クイックスタート
  • MCP統合
  • Python SDK

代替製品

  • Tavilyの代替
  • SerpAPIの代替
  • Firecrawlの代替
  • Exaの代替

ツール

  • JSONフォーマッター
  • cURLからコードへ
  • トークンカウンター
  • すべてのツール

© 2026 Scavio. 全著作権所有。

Featured on TAAFT
利用規約プライバシーポリシー