YouTube 文字起こしと検索 は何をしますか?
動画は多くの研究エージェントが読めない主要な情報源です。このスキルは、あらゆる YouTube 動画、チャンネル、検索クエリをタイムスタンプ付きの引用可能なテキストに変換します。
すべては 1 つの REST API 経由で動作します。yt-dlp、ヘッドレスブラウザ、インストールが必要なバイナリは一切不要です。
セットアップ
API を使用するには環境変数にキーが必要です。FrontierAgent の .env に次の 1 行を追加します:
echo 'TRANSCRIPT_API_KEY=sk_your_key_here' >> .env
キーは https://transcriptapi.com で取得してください。無料枠では 100 クレジットが付与され、カード情報は不要です。FrontierAgent は起動時に .env を読み込み、シェルコマンドはそれを継承するため、以下のすべてのコマンド内で $TRANSCRIPT_API_KEY が解決されます。
変数が空の場合は処理を停止し、ユーザーに追加を促してください。キーを推測したり、値をユーザーに表示したりしないでください。
すべてのリクエストに必要なヘッダー
Authorization: Bearer $TRANSCRIPT_API_KEY と、実際の User-Agent が必要です。User-Agent が欠けているかデフォルトのままの場合、Cloudflare 403 エラー (コード 1010) が返されます。
文字起こしを取得する
消費クレジット: 1。video_url には完全な YouTube URL か、11 文字の動画 ID のみを指定します。
curl -sS -G "https://transcriptapi.com/api/v2/youtube/transcript" \
--data-urlencode "video_url=$VIDEO" \
--data-urlencode "format=text" \
--data-urlencode "send_metadata=true" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
-H "User-Agent: FrontierAgent/1.0"
タイムスタンプを引用するためにセグメントごとの start と duration の値が必要な場合は、代わりに format=json を指定してください。JSON の形式は次のとおりです: {"video_id": "...", "language": "en", "transcript": [{"text": "...", "start": 18.0, "duration": 3.5}]}。
動画またはチャンネルを検索する
消費クレジット: 1。type は video または channel、limit は 1 から 50 の間で指定します。
curl -sS -G "https://transcriptapi.com/api/v2/youtube/search" \
--data-urlencode "q=$QUERY" \
--data-urlencode "type=video" \
--data-urlencode "limit=20" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
-H "User-Agent: FrontierAgent/1.0"
チャンネルハンドルを解決する
無料、クレジット消費なし。@ハンドル、チャンネル URL、または UC... ID を受け付けます。
curl -sS -G "https://transcriptapi.com/api/v2/youtube/channel/resolve" \
--data-urlencode "input=@TED" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
-H "User-Agent: FrontierAgent/1.0"
他のチャンネルエンドポイントは同じ channel 値を直接受け付けるため、事前に解決する必要はほとんどありません。
ヘルパースクリプト
scripts/transcript.sh は文字起こし呼び出しをラップし、キーがない場合はエラーメッセージを表示します。
bash plugins/skills/youtube-transcripts/scripts/transcript.sh "https://www.youtube.com/watch?v=nm1TxQj9IsQ"
呼び出しが失敗した場合
| ステータス | 意味 | 対処方法 |
|---|---|---|
| 401 | キーが間違っているか存在しない | ユーザーに .env 内の TRANSCRIPT_API_KEY を確認するよう依頼する |
| 403 | Cloudflare がリクエストをブロックした | User-Agent ヘッダーが不足している。追加してリトライする |
| 404 | 動画にキャプションがない | その旨を明確に伝える。文字起こしを捏造しない |
| 422 | 動画IDまたはURLが不正 | ユーザーのリンクからIDを読み直す |
| 429 | クレジット不足、またはレート制限 | その旨を報告する。ループ内でリトライしない |
長い文字起こしはツールの出力予算を超える可能性があります。format=text を指定し、本文を > outputs/transcript.txt でファイルに書き出し、必要な部分だけを読み取ってください。
取得したデータの取り扱い
主張が含まれている場合は、言い換えるよりも文字起こしをそのまま引用してください。自動キャプションには認識エラーが含まれる可能性があるため、不自然な技術用語は疑い、それを基に議論を構築する前に動画のタイトルや説明と照合してください。