~/social/youtube-transcript-scraper

YouTube Subtitle & Transcript Scraper — JSON・SRT・VTT・LLM対応

動画、Shorts、再生リスト、チャンネルからYouTubeの字幕・文字起こしを、JSON、SRT、VTT、プレーンテキスト、またはクリーンなLLM対応テキストとして抽出します。100以上の言語、豊富なメタデータに対応、APIキー不要——抽出に失敗した場合は課金されません。

メディア TypeScriptInnerTube グローバル
proooxy/youtube-transcript-scraper — スペック
カテゴリsocial / メディア
言語TypeScript
スタックTypeScript, InnerTube
マーケットグローバル
出力クリーンでRAG対応のJSON

主な機能

1つの入力で動画、Shorts、youtu.beリンク、再生リスト、チャンネルに対応 — 1回の実行で混在指定可能

5種類の出力フォーマット — JSON(タイムスタンプ付き)、SRT、VTT、プレーンテキスト、LLM対応([Music]、[Applause]、話者ラベルを除去)

優先順位付きの言語リストによる100以上の言語対応と、切り替え可能な自動字幕フォールバック

豊富なメタデータ — タイトル、チャンネル、説明文、公開日、再生回数、サムネイル、長さ、対応言語

maxVideos上限と1〜10の同時実行数で再生リスト・チャンネル全体を一括処理

レジデンシャルプロキシ対応とオプションのCookie指定で、ボットチェックによるブロックを軽減

多層的な抽出処理 — InnerTubeクライアント間で最大9段階のフォールバックを備え、最終手段としてyt-dlpのPOトークンを使用

サーキットブレーカーとアイテム単位のエラーハンドリングにより、大規模バッチも処理を継続

活用例

  • 音声動画からRAGやファインチューニング用データセットを構築するAI/MLチーム(LLM対応テキスト出力)
  • 文字起こしをブログ記事、番組概要、SNSキャプションへ再利用するコンテンツチーム
  • インデックス登録やキーワード調査のために検索可能な動画テキストを抽出するSEOマーケター
  • 標準的なSRT/VTT字幕ファイルを必要とする編集者・パブリッシャー
  • チャンネルや再生リスト全体から文字起こしを一括収集する研究者
  • YouTube APIキーなしで構造化されたタイムスタンプ付き字幕を必要とする開発者

入力パラメータ

パラメータ必須説明
urlsarray任意YouTubeのURLまたは裸のID — 動画、Shorts、youtu.beリンク、再生リスト、チャンネル。実行時に必須。
outputFormatstring任意文字起こしのフォーマット:json、srt、vtt、text、llmのいずれか(デフォルト:json)。
languagesarray任意優先順に指定する字幕言語(ISO 639-1コード、デフォルト:en)。
includeAutoGeneratedboolean任意手動字幕がない場合に自動生成字幕へフォールバック(デフォルト:true)。
maxVideosnumber任意1回の実行で処理する動画数の上限(再生リスト/チャンネル向け、デフォルト:0=無制限)。
maxConcurrencynumber任意並列処理する動画数、1〜10(デフォルト:3)。
proxyConfigurationobject任意プロキシ設定。デフォルトはUSに固定されたApify Residential。
youtubeCookiesstring任意ボットチェックによるブロックを軽減するオプションのYouTube Cookie(CookieヘッダーまたはCookies.txt)。

Output Example

 1{
 2  "videoId": "dQw4w9WgXcQ",
 3  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
 4  "title": "Rick Astley - Never Gonna Give You Up (Official Video)",
 5  "channelName": "Rick Astley",
 6  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
 7  "publishDate": "2009-10-25",
 8  "viewCount": 1761003712,
 9  "availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419"],
10  "language": "en",
11  "isAutoGenerated": false,
12  "duration": 213,
13  "wordCount": 487,
14  "segmentCount": 61,
15  "text": "We're no strangers to love, you know the rules and so do I...",
16  "segments": [{ "text": "We're no strangers to love", "start": 18.64, "end": 21.88 }],
17  "error": null
18}

Pricing

イベント課金制:正常に抽出された文字起こし1件につき1回課金されます——失敗した動画には一切課金されません。チャンネルや再生リストをまるごと渡しても、実際に取得できた字幕分だけの支払いで済みます。

Tips

  • RAGやファインチューニングにはoutputFormat: llmを使いましょう。 非音声の注記が除去され、エンベディングにはクリーンな文章が渡ります。
  • レジデンシャルプロキシは有効にしておきましょう。 YouTubeはデータセンターIPを積極的にブロックします。このアクターがデフォルトでUSレジデンシャルを使うのはそのためです。
  • 大規模なジョブではmaxConcurrencyを1〜3から始め、徐々に上げていきましょう——大きなチャンネルのスクレイピングで同時実行数を上げすぎると、レート制限のリスクが高まります。

よくある質問

YouTube APIキーやログインは必要ですか?
いいえ。このアクターは字幕を直接抽出します——YouTube Data APIキーもログインも不要です。一部の動画で「ボットではないことを確認するためログインしてください」というブロックを軽減するために、オプションでCookieを指定できます。
対応している言語と字幕タイプは?
100以上の言語に対応しています。優先順位付きのISO 639-1コードのリストを指定してください(デフォルト:en)。このアクターは手動作成された字幕を優先し、includeAutoGeneratedを無効にしない限り自動生成字幕にフォールバックします。
抽出に失敗した動画にも課金されますか?
いいえ。課金は「文字起こし抽出成功」という単一のイベント単位で行われ、文字起こしが正常に保存された場合にのみ発生します。失敗した動画は出力にerrorフィールド付きで表示されますが、課金対象にはなりません。
RAG向けのクリーンなLLM対応テキストを取得できますか?
はい。outputFormatを「llm」に設定すると、[Music]/[Applause]の注記や話者ラベルが除去され、エンベディングやファインチューニングに最適なクリーンな文章が生成されます。

~/social の関連ツール

YouTube Subtitle & Transcript Scraper — JSON・SRT・VTT・LLM対応を実行、またはカスタム開発を依頼

数分でApify上での抽出を開始できます。または、あなたの取得元とスキーマに合わせたオーダーメイドのスクレイパーとRAGパイプラインの構築を依頼できます。

Apifyで実行 カスタムデータを依頼