YouTube の字幕を Mac にダウンロードする方法:SRT で保存、またはテキスト化
まず確認:その動画の字幕はどの種類?
ダウンロードできるのは字幕トラック、つまりプレーヤーの字幕(CC)ボタンでオン・オフできる字幕です。映像に焼き込まれた字幕(オフにできないもの)は画面の一部なので、どのツールでも文字としては取り出せません。
YouTube の字幕トラックには 3 種類あります。
- 手動字幕:投稿者やボランティアがアップロードしたもの。いちばん正確で、複数の言語がある動画もあります。
- 自動生成:音声認識で作られた、元の言語の字幕。ほとんどの動画にはこれしかありません。句読点が少なく、区切りが不自然なこともよくあります。yt-dlp や Vidnip では、言語コードの末尾が
-origになります(例:en-orig)。 - 自動翻訳:元の字幕をほかの言語に機械翻訳したもの。ほぼどの言語でもありますが、品質はまちまちで、制限もいちばん厳しいです(後述)。
4 つの方法を一覧で
| 方法 | 費用 | 得られるもの | 向いている人 |
|---|---|---|---|
| YouTube の「文字起こしを表示」 | 無料 | ページ上のテキスト(自分で選択してコピー) | 1 本の動画から数行だけ引用したい |
| yt-dlp | 無料 | SRT ファイル。再生リストもまとめて | ターミナルに慣れている |
| オンラインのサイト・ブラウザ拡張機能 | 多くは無料(広告あり) | SRT または TXT | たまに使うだけ |
| Vidnip | 字幕だけなら無料枠を消費しない | SRT、またはタイムスタンプなしの TXT を 2 クリックで | よく使う、ターミナルは使いたくない |
1. YouTube の「文字起こしを表示」:無料、コピーのみ
- ブラウザで動画を開き、説明欄の「...もっと見る」をクリックして説明を広げます。
- 下にある「文字起こし」の欄で、「文字起こしを表示」をクリックします。
- 動画の横に文字起こしが開き、再生に合わせてスクロールします。どの行をクリックしても、その時点に移動できます。テキストは選択してコピーします。
ボタン名は YouTube の表示言語によって変わります。英語では Show transcript、簡体字中国語では「内容转文字」です。
不便な点:字幕のない動画にはこの欄がありません。1 本ずつしか扱えず、SRT ファイルは得られません。長い動画は、選択するだけでもスクロールが大変です。
2. yt-dlp:無料、コマンド 1 行で SRT に
yt-dlp はオープンソースのコマンドライン型ダウンローダーです。字幕形式の変換に使う ffmpeg と一緒に、Homebrew で入れます。
brew install yt-dlp ffmpeg
# その動画にある字幕を確認:
# 「Available subtitles」の下が手動字幕、「Available automatic captions」の下が自動字幕
yt-dlp --list-subs "動画のURL"
# 手動字幕だけを SRT で保存(動画は保存しない)
# 動画にない言語は自動でスキップされます
yt-dlp --skip-download --write-subs --sub-langs "ja,en" --convert-subs srt "動画のURL"
# 自動生成の字幕しかない場合:元の言語のトラック(コードが -orig で終わるもの)を取得
yt-dlp --skip-download --write-auto-subs --sub-langs ".*-orig" --convert-subs srt "動画のURL"
--skip-download は動画を保存しない指定、--sub-langs は言語コードをカンマ区切りで指定します(パターンも使えます。.*-orig は「元の言語の自動字幕すべて」)。--convert-subs srt は、YouTube が配信する VTT を SRT に変換します。ファイルはターミナルの現在のフォルダに「タイトル [動画ID].言語コード.srt」という名前で保存されます。URL を再生リストのものにすれば、リスト内のすべての動画の字幕を取得できます。
--sleep-subtitles 5 を付け、拒否されたら数分待ってください。元の言語のトラックは、通常は影響を受けません。3. Vidnip:2 クリックで SRT かテキストに
ターミナルを使いたくなければ、Vidnip なら同じことがメニュー項目 2 つで済みます。
- 動画ページの URL をコピーし、Vidnip 上部のアドレス欄に貼り付けて Return キーを押すか、「検出」をクリックします。YouTube の場合、通常 10〜20 秒かかります。
- 「検出した動画」の下に動画のカードが表示されます。カード右側の字幕ボタン(吹き出しのアイコン)をクリックすると、その動画のすべての字幕トラックが表示されます。「手動字幕」「自動生成」と、「自動翻訳」のサブメニュー(よく使う言語が先頭、それ以外は「すべて…」の中)です。欲しい言語にチェックを入れます。チェックしなくても、設定 → 字幕 の「優先言語」に従って 1 つ選ばれます。
- 同じメニューのいちばん下で、「字幕のみ(.srt)」か「文字起こしのみ(.txt)」を選びます。カードを右クリックして「字幕のみダウンロード」を選ぶこともできます(右クリックの項目は .srt のみ)。
ダウンロード一覧に「字幕」タグの付いた行が追加され、「字幕を取得中…」と表示されます。たいていすぐに終わります。ファイルはダウンロードフォルダ(初期設定は「ダウンロード」。ウインドウ下部で変更できます)に、「タイトル [字幕].言語コード.srt」という名前で保存されます(例:… [字幕].en-orig.srt)。言語ごとに 1 ファイルです。アプリを英語表示にしている場合は [Subtitles] になります。
- 無料枠を消費しません。字幕だけのダウンロードは「最初の 3 本無料」に数えられず、無料枠を使い切ったあとも使えます。
- 日本語が欲しいのに、字幕が英語だけ:初期状態では元の言語の自動字幕が選ばれます。「自動翻訳」で Japanese にチェックを入れるか、設定 → 字幕 で「自動翻訳字幕を許可」をオンにします。
- 複数の言語を一度に:Vidnip はリクエストの間隔を空け、取れなかった言語をもう 1 回だけ取りにいきます。それでも足りない言語は行の下に表示されるので、数分後にもう一度ダウンロードしてください。
- あとから言語を追加する:同じ動画の字幕をもう一度ダウンロードすると「この字幕はダウンロード済みです」と表示されます。「もう一度ダウンロード」を選んでください。
- 今のところ 1 本ずつ:再生リスト全体の字幕だけが欲しい場合は、上の yt-dlp のコマンドを使ってください。
オンラインのダウンロードサイトやブラウザ拡張機能でも字幕は保存できます。たまに使うぶんには問題ありませんが、サイトの多くは広告やリダイレクトが多く、拡張機能はアクセスしたすべてのサイトの読み取りを求めることがよくあります。インストール前に権限を確認してください。YouTube の制限を受けるのも同じです。
SRT をテキストにする
SRT ファイルでは、字幕ごとに番号と開始・終了時刻が付いています。
12
00:01:05,200 --> 00:01:08,900
今日は字幕を
保存する方法を紹介します
Vidnip の「文字起こしのみ(.txt)」は、これを Mac 上で変換します。番号とタイムスタンプを除き、<i> などのスタイルタグを取り、自動字幕で流れるように繰り返される行をまとめ、UTF-8 で 1 行ずつ書き出します。残るのは .txt だけです。
手元に SRT ファイルがある場合は、macOS に入っているツールを使って、ターミナルの 1 行で変換できます。
tr -d '\r' < "字幕.srt" | sed -E -e '/-->/d' -e '/^[0-9]+$/d' -e 's/<[^>]*>//g' -e '/^[[:space:]]*$/d' | uniq > "文字起こし.txt"
順に、Windows の改行コードを除く、タイムスタンプを削除、番号を削除、タグを除去、空行を削除し、最後に uniq で隣り合う重複行をまとめます(自動字幕は流れるように表示されるため、同じ文が 2〜3 回出てきます)。副作用が 1 つあり、数字だけの台詞の行(年号だけを読み上げた行など)も、番号と一緒に消えます。
テキストにしたあとの使い方
- AI で要約:TXT を AI アシスタントに貼り付けて、要点や要約を頼みます。TXT はタイムスタンプがないぶん短く済みます。「どこで○○の話をしている?」と聞きたいときは SRT を渡せば、何分ごろかまで答えられます。
- 発言を探す:テキストを ⌘F で検索するほうが、シークバーを行き来するよりずっと速いです。
- メモや原稿に:必要な部分を引用し、出典を明記しましょう。
- 語学学習:同じ動画の字幕を 2 つの言語で保存し、見比べながら読めます。
うまくいかないとき
- 字幕メニューに「この動画には字幕がありません」としか出ない:字幕トラックがありません。字幕が映像に焼き込まれている可能性があり、どのツールでもダウンロードできません。
- 欲しい言語が「自動翻訳」にしかない:取得はできますが、制限がいちばん厳しいです。先に元の言語の字幕を取り、翻訳は数分後にしてください。
- 429 と表示される:YouTube が一時的にリクエストを制限しています。数分待ち、一度に頼む言語を減らし、同じ回線から何度も繰り返さないでください。
- ログインが必要な動画(メンバー限定、年齢制限):Vidnip の 設定 → YouTube でログインし(サブアカウント推奨)、もう一度検出してください。
よくある質問
YouTube の字幕を SRT ファイルでダウンロードするには?
方法は 3 つあります。無料の yt-dlp に --skip-download --write-subs --convert-subs srt を付けて実行する(自動字幕しかない場合は --write-subs を --write-auto-subs に替える)、Vidnip で動画を検出して字幕メニューから「字幕のみ(.srt)」を選ぶ、またはオンラインのダウンロードサイトを使う方法です。YouTube の「文字起こしを表示」はテキストのコピーだけで、SRT ファイルは得られません。
字幕のダウンロードは有料ですか?Vidnip の無料枠を使いますか?
yt-dlp と YouTube の「文字起こしを表示」は無料です。Vidnip の「字幕のみ」と「文字起こしのみ」も無料枠を消費せず、最初の 3 本の無料ダウンロードを使い切ったあとも使えます。
SRT と TXT の違いは?
SRT は字幕ごとに番号と開始・終了時刻が付いていて、プレーヤーで読み込めるほか、いつ話された言葉かがわかります。TXT はタイムスタンプのない文字だけで、読む、検索する、AI に渡すのに向いています。Vidnip の TXT は、自動字幕で繰り返される行もまとめます。
動画に日本語字幕がなくても、日本語で保存できますか?
YouTube がその動画に自動翻訳を提供していれば可能です。Vidnip では字幕メニューの「自動翻訳」で Japanese にチェックを入れ、yt-dlp では --write-auto-subs --sub-langs ja を使います。機械翻訳なので品質はまちまちで、YouTube の制限もいちばん厳しいため、取れなかったら数分後に再試行してください。
一部の言語が取れないのはなぜ?429 とは?
429 は YouTube が一時的にリクエストを制限しているという意味で、自動翻訳の字幕で起きやすいです。数分待ってから足りない言語をもう一度ダウンロードし、一度に頼む言語を減らしてください。yt-dlp で再生リストを扱うときは --sleep-subtitles 5 を付けると間隔が空きます。元の言語のトラックは、通常は影響を受けません。
映像に焼き込まれた字幕はダウンロードできますか?
できません。画面の一部なので字幕ファイルが存在せず、文字認識や音声認識で作り直すしかありません。見分け方:プレーヤーの字幕(CC)ボタンでオフにできるなら、ダウンロードできる字幕トラックです。
ダウンロードした字幕はどこに保存されますか?
Vidnip ではダウンロードフォルダ(初期設定は「ダウンロード」)に「タイトル [字幕].言語コード.srt」という名前で保存されます。たとえば en-orig は英語の元の自動字幕です。言語ごとに 1 ファイルです。yt-dlp は初期設定では、ターミナルの現在のフォルダに保存します。
字幕も文字起こしも 2 クリックで
Vidnip で動画を検出すると、字幕メニューのいちばん下に「字幕のみ(.srt)」と「文字起こしのみ(.txt)」があります。字幕だけのダウンロードは無料枠を消費しません。
Vidnip for Mac をダウンロード