YouTubeの字幕はダウンロードできます。方法は少なくとも5通りあり、それぞれ得意な場面が異なります。講義1本をすぐ書き出したいのか、数百本をまとめて処理したいのかで選ぶべき方法は変わります。以下の5つの方法で、その両方に対応できます。
選ぶ前に、比較の観点を整理しておきます。 速度 (どれだけ早くテキストが手に入るか)、 精度と句読点 (自動生成の字幕か、投稿者が用意した字幕か)、 まとめて処理できるか (1本ずつか、数百本か)、 無料で使えるか 、そして 手軽さ (設定不要か、Pythonが必要か)の5点です。
方法1: YouTube標準の文字起こし機能
もっとも簡単なのは、YouTubeにもとから備わっている機能を使うことです。拡張機能もアカウントもインストールも不要で、パソコンのブラウザでYouTubeを開くだけで済みます。
手順1 — 動画を開いて説明欄を展開する
パソコンのブラウザでYouTubeの動画ページを開きます。タイトル下の説明欄をクリックして展開します。
手順2 — 「文字起こしを表示」を選ぶ
説明欄の下部にある文字起こしを表示をクリックします。画面の右側(レイアウトによっては動画の下)にパネルが開き、各行に時間が付いた状態で全文が表示されます。
手順3 — タイムスタンプを切り替えてコピーする
時間表示のないテキストが欲しい場合は、文字起こしパネル右上の三点メニューからタイムスタンプ表示を切り替えるを選びます。あとはパネル内を全選択(Ctrl+A / Cmd+A)してコピーし、文書に貼り付けます。
長所:
- インストール不要
- 常に無料
- 字幕のあるYouTube動画ならどれでも使える
短所:
- 手作業のコピーになるため、複数本では時間がかかる
- そのままではファイル(TXT・SRTなど)として書き出せない
- YouTubeのモバイルアプリでは地域によって使えない
方法2: 文字起こしをコピーして整形する
方法1の応用で、できるだけ速く、使えるテキストとして文書に取り込むことに絞った進め方です。
手順1 — 文字起こしパネルを開く
方法1と同じ手順でパネルを開きます。
手順2 — 全選択してコピーする
パネル内をクリックし、Ctrl+A(Windows)または Cmd+A(Mac)で全選択して、Ctrl+C / Cmd+C でコピーします。Googleドキュメント、Notion、任意のテキストエディタにそのまま貼り付けられます。
手順3 — タイムスタンプを取り除く
時間表示を残したままコピーした場合は、検索と置換で
\d+:\d+\s*
のような正規表現を使って削除します。短い動画なら手作業で消しても構いません。
なお、自動生成の字幕には句読点が入りません。行の区切りは文の切れ目ではなく、話者が息を継いだ位置です。読める形の文章が必要な場合は、AIツールに通すか、次の方法3で紹介する拡張機能を使ってください。
方法3: ブラウザ拡張機能
Chrome拡張機能を使うと、字幕の取得がワンクリックで済み、さらにMarkdownでの書き出し、AI要約、単語カードの生成まで行えます。
Glasp(無料)
Glaspはハイライトの共有と知識の蓄積を目的としたツールで、YouTubeの文字起こし機能を備えています。 Glaspを入れた状態でYouTube動画を開き、Glaspのアイコンから Copy Transcript または Export を選びます。取得した文字起こしはGlasp内のライブラリに保存したり、ハイライトを他のユーザーと共有したりできます。個人利用は無料で、無料プランには1日あたりのハイライト数の上限があります。
YouTube AI Notes(無料)
YouTube AI Notesは、YouTube動画を学習用の教材に変えることに特化したChrome拡張機能です。ワンクリックで文字起こしを取得し、Markdown、Notionのページ、Anki用の単語カードとして書き出せます。テキストそのものだけでなく、構造化された要点や単語カードまで欲しい場合は、動画からノートを自動生成することもできます。無料プランで文字起こしの書き出しと基本的なAIノートが使え、有料プランでは単語カードのデッキが無制限になり、AnkiとNotionへの書き出しが解放されます。
Chromeに追加 — 無料そのほかの拡張機能
Tactiq は Google Meet や YouTube の再生中にリアルタイムで文字起こしを取得し、Notion や Google ドキュメントに書き出します。 NoteGPT は文字起こしと並べてAI要約を生成し、複数の書き出し形式に対応しています。 Eightify は全文の文字起こしではなく、短いAI要約に重点を置いていますが、文字起こしの表示にも対応しています。いずれも利用量の上限付きで無料プランがあります。
方法4: オンラインツール
拡張機能を入れたくない場合は、YouTubeのURLを貼り付けるだけで字幕をファイルとしてダウンロードできるウェブサービスがあります。
使い方
ツールの入力欄にYouTubeのURLを貼り付け、字幕が複数ある場合は言語を選び、TXT・SRT(時間つき)・VTTなど好みの形式でダウンロードします。
代表的なサービス
DownSub は広く知られた無料ツールで、多くのYouTube動画と複数の字幕形式に対応しています。 Tactiq のウェブ版 や NoteGPT.io は、同様の機能にAI要約を加えたものです。
プライバシーについて
第三者のツールにYouTubeのURLを貼り付けると、そのURL(場合によっては動画のメタデータも)がサービス側のサーバーに送信されます。機密性のある動画や限定公開の動画では、手元で完結する方法1・2・5を使ってください。
長所:
- インストール不要
- ブラウザがあればどの端末からでも使える
- 一部のツールはまとめてのダウンロードに対応
短所:
- URLが第三者のサーバーに送信される
- 無料プランには回数制限や広告がある
- サービスが提供され続けるかに依存する
方法5: プログラムから取得する(youtube-transcript-api)
大量の動画を調査する場合や、データ処理・CIワークフローに組み込む場合は、
youtube-transcript-api
というPythonライブラリがもっとも柔軟です。APIキーなしで、YouTubeの字幕エンドポイントから直接取得します。
インストール
pip install youtube-transcript-api
基本的な使い方
from youtube_transcript_api import YouTubeTranscriptApi
video_id = "dQw4w9WgXcQ" # 取得したい動画のIDに置き換える
transcript = YouTubeTranscriptApi.get_transcript(video_id)
for entry in transcript:
print(f"{entry['start']:.1f}s {entry['text']}")
返ってくるリストの各要素には、字幕の行にあたる
text
、先頭からの秒数を表す
start
、表示時間を表す
duration
が入っています。
text
をすべて連結すれば、ただの文字列としての文字起こしが得られます。
この方法が向く場面
数本を超える動画を扱うとき、文字起こしを大きなデータ処理に組み込みたいとき、タイムスタンプの扱いを細かく制御したいときに向いています。ヘッドレス環境やサーバー上で確実に動く唯一の方法でもあります。
利用規約について: YouTubeのデータを自動で大量に取得する行為は、YouTubeの利用規約に抵触する可能性があります。商用または大規模な用途では、OAuthとGoogle Cloudのプロジェクトが必要になる公式の YouTube Data API v3 の captions エンドポイント の利用を検討してください。