要点
自分の動画であれば、YouTube Studioから字幕トラックを書き出せるが、得られるのはSubRipではなくSubViewer(.sbv)形式だ。この2つの形式は内容自体は同じなので、変換作業のほとんどは通し番号を振り、タイムスタンプの句読点を書き換えるだけの作業になる。動画が他人のものである場合、その字幕は他人の作業成果物であり、再利用できるかどうかはその動画のライセンスに関わる問題であって、どんなツールを使うかとは関係なく、先に決着をつけておくべき話だ。
依頼は、たいてい大したことのない話に聞こえる。誰かが動画から字幕をファイルとして取り出したい、それを使って動画を再編集したり、翻訳者に渡したり、同じ字幕を同じ動画に別の場所でつけたい、というものだ。文字は画面にそのまま表示されている。2分で終わる作業のはずだ。
実際、2分で終わることも多い。しかしその「2分で終わる」パターンが成立するのは、自分が置かれている2つの状況のうち片方だけであり、もう片方には、ダウンローダーや拡張機能、変換ツールがどれも代わりに答えてくれない問いが必ずついてくる。だからクリックを始める前に、自分がどちらの状況にいるのかをはっきりさせておく価値がある。
誰の動画なのかをまず確認する
この先のすべてがここにかかっている。動画が自分のチャンネルにあるなら、その字幕トラックは自分のものであり、YouTubeはそれを渡してくれる。あとはファイル形式を変換するだけの作業だ。動画が他人のものなら、その字幕は人が書いたものであろうとプラットフォームが自動生成したものであろうと他人の作業成果物であり、それを再利用する権利があるかどうかは、ツールがファイルを作ってくれるかどうかではなく、その動画にかけられているライセンスによって決まる。
この2つを混同してしまうのは、外から見ると技術的な手順が似ているからだ。どちらの場合も、最終的にはタイムスタンプ入りのテキストファイルを手にすることになる。しかし一方は自分が管理しているアカウントからの書き出しであり、もう一方は自分が作っていない素材のコピーだ。ファイルを作れるツールは、それを公開してよいかどうかについては何も教えてくれない。
触れておくべき中間ケースがある。クライアントの動画や、チームが別のアカウントでアップロードした動画を扱っている場合だ。誰かがそのチャンネルにログインできる限り、重要な意味では依然「自分の動画」だ。公開ページから抽出するのではなく、Studioから書き出すようにしよう。書き出しの方がきれいで、実際に動画に紐づいているトラックを確実に得られる。
自分の動画から字幕トラックを書き出す
YouTube Studioは字幕トラックを直接書き出せる。動画を開いて字幕欄を開き、紐づいているトラックをダウンロードするだけだ。再構築する必要はなく、推測している部分もない。プレーヤーが表示しているのと同じキュー、同じタイミングをそのまま受け取れる。
多くの人が驚くのは、戻ってくるファイルの形式だ。YouTube Studioが書き出すのはSubViewer形式で、拡張子は.sbvだ。これはエディタやプレーヤー、翻訳者のツールが想定している形式ではない。字幕を.srtとしてしか扱ったことがなければ、そのダウンロードは壊れているように見え、書き出しが失敗したのか、メニューの選択を間違えたのかと思ってしまう。どちらも間違いではない。SubViewerは、Studioが渡してくるものそのものだ。
SubViewerは実在する字幕形式で、必要な情報はすべて含まれている。ただSubRipより古く、対応しているソフトも少ないため、SRTなら問題なく読み込むソフトでも弾かれることがある。ダウンロードの手順をもっと詳しく知りたい場合、欲しいトラックが選ばれていないときの対処法も含めてYouTubeの字幕をSRTでダウンロードする方法を解説したガイドがある。
身につけておく価値のある習慣がひとつある。変換したあとも、元の.sbvファイルは残しておくことだ。プレーンテキストなので容量はほとんどかからないし、変換がうまくいかなかったり、設定を変えてやり直したくなったりしたときに、もう一度Studioから書き出す手間を省ける。
SubViewerからSubRipへ
2つの形式の差は、見た目より小さい。どちらもプレーンテキストで、どちらもキューのリストを保存している。キューとは開始時刻、終了時刻、その間に表示される文字のことだ。どちらにも、なくなって困るようなスタイル情報は含まれていない。
SubViewerはキューを、2つのタイムスタンプをカンマで区切ったタイミング行と、その下のテキストで書く。キューに番号は振らず、時間は2桁にゼロ埋めしない。SubRipが求める形は少し違っていて、キュー番号を単独の行に書き、続けてhh:mm:ss,mmmという形式(ミリ秒の前にカンマ)でタイミング行を書き、そのあとにテキスト、次のキューとの間には空行を入れる。
つまり、この変換は本質的に機械的な作業だ。連番を振り、タイムスタンプの句読点とゼロ埋めを調整し、空行を挿入する。タイミングと文字はそのまま引き継がれる。何かを解釈したり削ったりする工程はなく、再エンコードのような処理も発生しないので、品質が落ちる心配もない。同じ言葉が同じタイミングのまま、書き方だけを変えて残るだけだ。
ごく短い動画であれば手作業でもできるし、正規表現のワンライナーを書いた人もいるが、通常の長さの動画にはあまり向いた時間の使い方ではない。ブラウザで動くSBVからSRTへの変換ツールが書き換えを行い、そのままファイルを返してくれる。何を使うにせよ、結果を開いたら最初のキューと最後のキューを確認しよう。最初のキューは番号とタイムスタンプの形式が正しいことを、最後のキューは途中で切れていないことを確認できる。
動画が他人のものである場合
権利の問題は最初に片付けておこう。後から取り返しがつかないのはこの部分だからだ。自分がアップロードしていない動画の字幕は、その動画のコンテンツの一部だ。それを再利用すること——字幕を再公開する、自分の編集にのせる、翻訳を配布する——はライセンスの問題であり、その動画がどのようにライセンスされているか、そして自分が何をしようとしているかによって決まる。記事の中で一行を引用することと、字幕ファイルをそのまま他人の動画とセットで配布することは同じではない。個人的な参照や研究のためのメモも、公開する行為とはまた違った位置づけになる。これはその動画に固有の判断であり、ツールを使う前に済ませておくべきことだ。
その判断が実際に済んでいれば、テキストを抽出するのは簡単だ。SozAIのChrome拡張機能は、視聴中の動画のトランスクリプトをTXT、SRT、Markdownのいずれかで書き出せる。SRT版ではタイミングもそのまま保持されるので、SubViewerの変換工程を丸ごと省いて、最初から欲しかった形式を手に入れられる。これはいくつかある選択肢のひとつであり、ライセンスの問題を代わりに判断してくれるわけではない。
この2つの方法には、知っておく価値のある実質的な違いがある。Studioからの書き出しは、動画に紐づいた正規のトラックそのものだ。視聴ページから取得したものは、プレーヤーが表示しているトランスクリプトであり、内容は同じでも外側からアクセスしたものだ。自分の動画であれば書き出しを優先しよう。それ以外の場合は、そもそも書き出しという選択肢自体が使えない。
やり直さずに直す
字幕ファイルはプレーンテキストだ。これはこの形式のもっとも便利な点であり、もっとも忘れられがちな点でもある。あるキューに誤字があったり、タイミングが0.5秒ずれていたり、名前の表記が3種類混在していたりしたら、テキストエディタでファイルを開き、その行を直して保存すればいい。何かを再生成する必要はなく、変換をやり直す必要もない。ふつうの文章を編集するのと同じように、その行を編集するだけだ。
この点は、クリーンアップに対する取り組み方を変える。最初から完璧なファイルを出してくれるツールを探すのではなく、ファイル自体に一度は編集を入れるものだと考えて、その作業に慣れておくほうがいい。直す必要があるものの多くは、固有名詞、余分な改行、居座っているキューひとつなど、小さくて局所的なものだ。
構造上の問題は目で見て気づきにくい。ファイルは長く、プレーヤーを壊すエラーはたいてい地味なものだからだ。終了時刻が開始時刻より前になっているキュー、重なり合う2つのキュー、順序がずれた番号、変換の過程で生き残った不正な形式のタイムスタンプ、といったものだ。公開する前にSRTバリデーターにファイルを通しておけば、スクロールして目で探すより速くそれらを見つけられる。見つかったら、ファイルはまだ単なるテキストなので、テキストエディタで直せばいい。
自動字幕が与えてくれないもの
書き出したトラックが自動生成のものだった場合、完成した字幕ファイルを手にしたわけではない。手にしたのは素材だ。自動字幕には信頼できる句読点がついていないため、文がそのまま次の文に流れ込み、本来カンマや句点がやってくれるはずの区切りを読者自身が判断しなければならない。話者の切り替わりも表現されないため、話している人が2人以上いる時点で本当の問題になる。インタビューは区別のつかない一続きの流れになり、字幕を読んでいる視聴者にはどちらが何を言ったのか分からなくなる。
とはいえ、それが理由でファイルの変換がうまくいかなくなるわけではない。SubViewerからSubRipへの変換は、字幕が人の手で書かれたものかプラットフォームが自動生成したものかにかかわらず、まったく同じように機能する。変換が触れるのはタイムスタンプの番号と句読点だけだからだ。テキストの内容を直してくれるわけではないし、そもそもそういう役割のものではない。
つまり、自動字幕から作ったファイルは、公開するものに使う前に一度編集する必要がある。読み通して句読点を加え、使っている表記法で話者の切り替わりを示し、当然おかしくなっている名前や専門用語を修正する。短い動画ならこれは数分の作業だ。長いインタビューでは本当に手間のかかる作業になるので、最後になって気づくのではなく、あらかじめ計画に入れておくべきだ。
もうひとつ知っておくべきことがある。自動生成トラックの改行は、読みやすさのためではなくプレーヤーのタイミングに合わせて入っている。フレーズの途中でキューが分かれていることがあり、YouTube上でスクロールしながら見ている分には気にならないが、別の場所で動画に焼き込むと粗雑に見える。これを整え直すのも同じ編集作業の一部であり、たいていの人がここを飛ばしてしまい、あとになって気づく部分だ。

