Tony Wang4 分で読めます2026年のYouTubeスクレイピング方法(API・Python)
2026年にYouTubeをスクレイピングする3つの方法 — 自作Python、既製ツール、または動画・検索・コメント・トランスクリプトを扱う構造化API — と、法律の基礎知識を解説します。
2026年にYouTubeをスクレイピングする最速の方法は、YouTubeのJavaScript中心のページを自分で解析するのではなく、正規化されたJSON(動画メタデータ、検索結果、コメント、トランスクリプト)を返す構造化されたYouTube APIを呼び出すことです。自作のスクレイパーを構築することも、公式のData API(そのクォータ付き)を使うこともできますが、構造化されたスクレイピングAPIなら、実際に欲しいフィールドを少ない手間で得られることが多いのです。このガイドでは、これら3つのアプローチすべてについて、それぞれ何が返るのか、どこで壊れるのか、そして法律の基礎を解説します。
YouTubeのスクレイピングは合法ですか?
公開されたYouTubeデータ(公開動画のメタデータ、検索結果、公開コメント、キャプション)のスクレイピングは、一般的にリスクの低い公開ウェブのスクレイピングです。ただしYouTubeの利用規約は自動アクセスを制限しているため、個人データやゲートされたものは避けるべきです。公開された非個人データを使い、レート制限を守り、YouTubeの利用規約を確認してください。詳しくはウェブスクレイピングは合法かを参照してください。これは法的助言ではありません。
選択肢1: Pythonで自作する(そしてなぜ壊れるのか)
自作の道は実質3つあり、それぞれに落とし穴があります。
- 公式のYouTube Data API v3は認められた経路ですが、1日10,000単位のクォータで動作します。しかも1回の
search.list呼び出しで100単位を消費するため、数回の深い検索で1日分が数分で尽きてしまいます。コメントは1日あたり3,000~10,000件前後で頭打ちになり、Data APIはトランスクリプトをまったく返しません。 - ヘッドレスブラウザやYouTubeの内部
/youtubei/v1/エンドポイントでは、フロントエンドが見ているものを取得できますが、埋め込まれたクライアントJSONは予告なく変化し、ボット検出に引っかかります。 - トランスクリプトライブラリ(例:
youtube-transcript-api)は、キャプションを得るための手軽な手段です。
from youtube_transcript_api import YouTubeTranscriptApi
segments = YouTubeTranscriptApi.get_transcript("dQw4w9WgXcQ", languages=["en"])
text = " ".join(s["text"] for s in segments)
print(text[:500])
このひとつの呼び出しは、非公開のキャプションエンドポイントが変わるか、動画にキャプションがないか、IPがレート制限されるまでは動作します。しかも得られるのはトランスクリプトだけで、通常あわせて必要になるメタデータ・コメント・検索は得られません。本当のコストは、クォータに縛られたData API(メタデータ)、ブラウザ(検索)、トランスクリプトライブラリ(キャプション)を1本の信頼できるパイプラインに縫い合わせること、そしてそれを生かし続けるためのプロキシ・リトライ・監視です。
選択肢2: 既製ツール
ノーコードの抽出ツールはCSV/JSONをエクスポートでき、単発の取得には十分ですが、予測可能なフィールドを持つ製品内パイプラインには不便です。
選択肢3: 構造化されたYouTube API
繰り返しのワークフローには、YouTubeスクレイピングAPIを使えば、1つのキーから正規化されたJSONが返ります。ブラウザも不要、Data APIのクォータも不要です。動画を検索する場合(qを使い、任意でsort_by・upload_date・durationフィルタを指定します):
curl "https://api.crawlora.net/api/v1/youtube/search?q=langchain&sort_by=view_count" \
-H "x-api-key: $CRAWLORA_API_KEY"
続いて、idを指定して動画のメタデータ・コメント・トランスクリプトをPythonで取得します。
import requests
vid = "dQw4w9WgXcQ"
h = {"x-api-key": "YOUR_API_KEY"}
video = requests.get(f"https://api.crawlora.net/api/v1/youtube/video/{vid}", headers=h).json()["data"]
comments = requests.get(f"https://api.crawlora.net/api/v1/youtube/comments/{vid}", headers=h).json()["data"]["comments"]
transcript = requests.get(f"https://api.crawlora.net/api/v1/youtube/transcript/{vid}", headers=h).json()["data"]["segments"]
print(video["title"], "—", len(comments), "comments,", len(transcript), "transcript segments")
コメントはcontinuation_tokenでページ送りされ、トランスクリプトエンドポイントはjson・text・srt・vttを返せます(さらに別言語への翻訳も可能)。予算を気にすべきクォータ単位はありません。動画のレスポンスはそのまま保存できる正規化されたJSONです(フィールドは例示です。ドキュメントを確認してください):
{
"code": 200,
"msg": "OK",
"data": {
"id": "dQw4w9WgXcQ",
"title": "Example video",
"channel": "Example Channel",
"view_count": 1840000,
"like_count": 92000,
"published": "2026-01-12"
}
}
収集できるもの
公開ページで公開されている範囲で、エンドポイント別に整理します。
- 動画 — id、タイトル、説明、チャンネル、視聴数/高評価数/コメント数、再生時間、公開日、キャプション。
/youtube/video/{id}経由。 - 検索 — 動画・チャンネル・プレイリストを
sort_by・upload_date・durationフィルタで。continuation_tokenでページ送り。 - コメント — 動画ごとのトップレベルコメントと返信。
continuation_tokenでページ送り。 - トランスクリプト — タイムスタンプ付きのキャプションセグメントを
json・text・srt・vttで。任意で翻訳も可能。 - チャンネル — クリエイター調査のためのチャンネル動画・プレイリスト・ショート。
制限とよくある課題
- Data APIのクォータが公式経路の上限になります(1日10,000単位、
search.listは1回100単位)。だからこそ大量の検索・コメント収集はここから外れていくのです。構造化スクレイパーには予算を気にすべきクォータ単位がありません。 - トランスクリプトは保証されません — すべての動画にキャプションがあるわけではなく、自動キャプションは品質にばらつきがあり、対応言語も異なります。
langを指定し、取得漏れに対処してください。 - コメントはページ送りされます — 1回の呼び出しですべてのコメントが得られると期待せず、
continuation_tokenをたどってください。 - 自作のもろさ — 埋め込みのクライアントJSONと内部の
/youtubei/v1/エンドポイントは予告なく変化し、ボット検出に引っかかります。構造化APIはそれを1つのキーの背後で吸収します。 - ゲートされたコンテンツ — 年齢制限や地域制限のある動画は利用できない場合があります。収集するのは公開された非個人データのみにしてください。
どこで使われるか
- クリエイターインテリジェンス — チャンネル・動画・コメントを調査。YouTubeクリエイターインテリジェンスを参照。
- トランスクリプト抽出 — 要約やRAGのためにキャプションを取得。YouTubeトランスクリプト抽出を参照。
- AIエージェントのコンテキスト — 構造化された動画データとトランスクリプトをエージェントに投入。
出典
収集を始める
まずは無料でお試しください: 任意の公開URLを無料ウェブスクレイパーで実行するか、アンチボットチェッカーでサイトがボットをブロックするか確認できます。登録は不要です。
プレイグラウンドでエンドポイントを試し、APIドキュメントでスキーマを確認し、料金を確認してください。ソーシャルスタックの残りについてはTikTokのスクレイピング方法とRedditのスクレイピング方法、Twitter/Xのスクレイピング方法も、そしてウェブスクレイピングAPIの選び方もあわせてご覧ください。
よくある質問
ブロックされずにYouTubeをスクレイピングできますか?
構造化APIなら、プロキシのルーティングとブラウザ実行はエンドポイントの背後で処理されます。自作のスクレイパーでは、変化し続けるクライアントJSON、内部の /youtubei/v1/ エンドポイント、そしてボット検出を自分で管理しなければなりません。
YouTubeのトランスクリプトを取得できますか?
はい。トランスクリプトエンドポイントは、キャプションが存在する動画idについて、タイムスタンプ付きのキャプションセグメントを json、text、srt、vtt で返します。別言語への翻訳も任意で可能です。公式のYouTube Data APIはトランスクリプトをまったく返さないため、チームはスクレイパーや youtube-transcript-api のようなライブラリを使うのです。
YouTubeのコメントをスクレイピングできますか?
はい。コメントエンドポイントは、動画のトップレベルコメントと返信を continuation_token でページ送りして返します。公式のData APIもコメントを返せますが、1日10,000単位のクォータにより1日あたりおよそ3,000~10,000件に制限されます。
公式のYouTube Data APIはなぜこれほど制限されているのですか?
1日10,000単位のクォータで動作し、1回の search.list 呼び出しで100単位を消費するため、深い検索やコメント収集は1日分をすぐに使い切ります — しかもトランスクリプトを返しません。このクォータこそ、チームが大量のYouTube収集をスクレイパーに移す主な理由です。
これは公式のYouTube Data APIですか?
いいえ。公開されたYouTubeデータを抽出するものであり、YouTubeの公式Data API v3およびそのクォータ単位とは独立しています。
どのYouTubeデータを収集できますか?
公開動画のメタデータとキャプション、検索(並べ替えと日付フィルタ付きの動画/チャンネル/プレイリスト)、コメントと返信、トランスクリプト、そしてチャンネルの動画/プレイリスト/ショートです。
どのくらいの頻度で更新できますか?
プランと責任ある利用の範囲内で、スケジュールされたスナップショットを実行してください。