Black Friday · 30% off

Get 30% off
ブログに戻る
連携

How to Get YouTube Transcripts in Python

Two ways to pull YouTube transcripts in Python: the open-source youtube-transcript-api library, and a hosted REST API. Working code for both, and where the self-hosted approach breaks in production.

00:07:00 · SEP 26, 2026 · 更新 OCT 09, 2026

簡単な回答

手早くローカルスクリプトを書くならyoutube-transcript-apiをインストール、デプロイ後にIPブロックやPoTokenの問題に悩まされたくないならホスト型REST APIを呼び出しましょう。どちらも動くコード付きで以下に説明します。
01

オープンソースライブラリをインストール

youtube-transcript-apiはYouTube自身の字幕データを直接取得する、よくメンテナンスされたPythonパッケージです - APIキーもYouTube Data APIのクォータも不要です。

pip install youtube-transcript-api

動画IDで文字起こしを取得:

from youtube_transcript_api import YouTubeTranscriptApi

api = YouTubeTranscriptApi()
transcript = api.fetch("dQw4w9WgXcQ", languages=["en"])

for snippet in transcript:
    print(snippet.text, snippet.start, snippet.duration)
02

デプロイすると壊れる場所

ノートPC上では問題なく動きます。クラウドサーバーにデプロイすると、実際によく知られた失敗にぶつかることがあります - IPブロック、PoTokenRequired、そして見た目通りとは限らない「文字起こし無効」エラーです。正確な原因と対処法は完全な診断チェックリストをご覧ください。

03

APIキーを取得する(セルフホストしたくない場合)

ダッシュボードから無料キーを取得 - 100無料クレジット、カード不要。

pip install requests
04

Pythonからホスト型APIを呼び出す

プロキシプールもIPブロック対応のメンテナンスも不要 - 単なるHTTPリクエストです:

import requests

response = requests.get(
    "https://getyoutubetranscript.com/api/v1/transcript",
    params={"v": "dQw4w9WgXcQ"},
    headers={"Authorization": "Bearer sk_live_..."},
)
result = response.json()

print(result["data"]["transcript"])
print(result["data"]["word_count"])

失敗したリクエストはライブラリ固有の例外を投げる代わりにエラーオブジェクトを返すので、すべてのエンドポイントで同じエラーハンドリングが使えます。

{ "success": false, "code": "...", "message": "..." }
05

複数の動画を取得する

動画IDのリストをループする方法は同じです - プランの分あたりリクエスト数の上限にだけ注意してください。バックオフとリトライのロジックはレート制限ガイドを参照してください。

どちらの方法も同じ情報を返します - 違いはインフラの維持を誰が行うかです。料金の詳細を見る(100無料クレジット、カード不要)、または各エンドポイントについてAPIドキュメントをお読みください。

Python版YouTube文字起こしFAQ

Q01

どちらの方法を使うべきですか?

手早いローカルスクリプトやプロトタイプにはyoutube-transcript-api。本番環境にデプロイし、プロキシ/IPブロックの回避策を自分で維持したくないならホスト型API。

Q02

ホスト型APIにyoutube-transcript-apiライブラリは必要ですか?

いいえ - ただのREST APIです。requests、httpx、curlなど任意のHTTPクライアントで呼び出せます。Python固有の依存関係は不要です。

Q03

全文だけでなく行ごとのタイムスタンプは取得できますか?

はい。トランスクリプトのリクエストに timestamps=true を追加すると、レスポンスに segments も含まれます。字幕の各行ごとに {start, duration, text} が1つずつ入り、時間は秒単位です。オープンソースのライブラリも同様にスニペットごとのタイミングを返します。

Q04

動画に文字起こしがない場合はどうなりますか?

どちらの方法も空文字列ではなく特定のエラーを返します - 各エラーコードの意味は診断チェックリストをご覧ください。

関連記事

Featured on aitoolfame.comFeatured on Aura++Featured on DeepLaunch.ioFeatured on Dofollow.ToolsFeatured on EasyDoFollowFeatured on EarlyHuntFeatured on Findly.toolsFeatured on FoundrListGood AI ToolsFeatured on IndieHuntFeatured on LaunchBuffFeatured on launched.toolsFeatured on Launch Llama ToolsFeatured on LemonLaunchLiftOff launch badgeMy Launch StashGetYouTubeTranscript on Nick LaunchesOpenHunts Club MemberFeatured on saasfame.comShinyLaunchFeatured on ShowMeBestAIFeatured on toolfame.comListed on Turbo0Featured on Twelve ToolsHuzzler Embed BadgeFeatured on CodeHypeGetYouTubeTranscript on Better LaunchDokeyAIFeatured on WayfindioFeatured on LaunchZoneFeatured on NoonlaunchFeatured on WhatsthebigdataSurfaced on CodeTrendyFeatured on ScrollLaunchFeatured on ufind.bestFeatured on ShipBoostProduct WingWe Like ToolsAppa ListAcid ToolsPower Up ToolsToshi ListAIGC 160Appsy ToolsHunt for ToolsBeam ToolsTool Find DirTool SignalSaaS Tools DirSoftware BoltProduct List DirStack DirectorySaaS FieldSaaS WheelSaaS RootsStartup BenchmarksUnite ListTrustinerBest Tool VaultSolver ToolsAsh ListSmart Kit HubAI X CollectionAI Tech ViralMillion Dot HomepageThat App ShowLaunch ScrollMy Start ToolsLatest AI UpdatesSuper AI BoomTools Under RadarThe Key ToolsTool JourneyTools List HQThe App ToolsThe Mega ToolsSource DirTool CosmosTop Trend ToolsTiny Tool HubTool PrismStartup AIdeasFeatured on WonderLaunchFeatured on ShipycornFeatured on ToolsClawListed on ProofStoriesFeatured on ToolListedLaunched on Launch Streak