2009年06月12日
YouTubeのキャプションをダウンロードする方法
「動画ファイルと一緒に字幕ファイルもローカルに保存しておきたい」
「他言語字幕を和訳してみたい」
こんなことをお考えのあなたに、非常にアナログな方法ではありますがYouTubeの字幕ファイル(Closed Caption)のダウンロード方法をご紹介します。(# 本当は自分用の備忘録だったりして)
※パラメータの記述に誤りがあったのでエントリを修正しました。(2010/04/18)
■字幕データはXMLファイル
YouTubeの字幕ファイル(Closed Caption)はGoogle Videoと同様にGoogleのサーバにXMLファイルとして保存されおり、まずはそのURLを生成する必要があります。
XMLファイルのURLは下記のようになってます。
動画URL:
http://www.youtube.com/watch?v=[video_id]
言語設定URL:
http://video.google.com/timedtext?type=list&v=[video_id]
字幕URL:
http://video.google.com/timedtext?hl=[lang_code]&lang=[lang_code]&name=[name]&v=[video_id]
※パラメータ「hl」「lang」「name」は、言語設定URLの内容を参照して対象言語の値を代入します。
※パラメータ「hl」は無くても問題なさそうです。
例1)
動画URL:
http://www.youtube.com/watch?v=p7tZi5C7x04
まず、この動画の言語設定を確認します。
上記の一般式に[video_id]を代入した言語設定URL
http://video.google.com/timedtext?type=list&v=p7tZi5C7x04
これをブラウザで開くと↓が表示されます。
<transcript_list docid="-6360391592767142066">
<track id="0" name="" lang_code="en" lang_original="English" lang_translated="English" lang_default="true"/>
<track id="1" name="" lang_code="ja" lang_original="日本語" lang_translated="Japanese"/>
</transcript_list>
このXMLファイルから、英語と日本語の字幕があることがわかります。
ここで注目するパラメータは[name]と[lang_code]です。
英語の場合 … name="", lang_code="en"
日本語の場合 … name="", lang_code="ja"
これらの値を動画URLの一般式に代入すると下記のようになります。
英語 http://video.google.com/timedtext?hl=en&lang=en&name=&v=p7tZi5C7x04
日本語 http://video.google.com/timedtext?hl=ja&lang=ja&name=&v=p7tZi5C7x04
URLをブラウザで開くとXMLファイルが表示されますね。
字幕XMLファイル(英語版)
字幕XMLファイル(日本語版)
例2)
動画URL:
http://www.youtube.com/watch?v=XraeBDMm2PM
同じように言語設定を確認します。以下のURLをブラウザで開きます。
言語設定URL:
http://video.google.com/timedtext?type=list&v=XraeBDMm2PM
<transcript_list docid="6824816026201807091">
<track id="2" name="French (fr)" lang_code="fr" lang_original="Franc,ais" lang_translated="French"/>
<track id="0" name="German (de)" lang_code="de" lang_original="Deutsch" lang_translated="German"/>
<track id="3" name="Italian (it)" lang_code="it" lang_original="Italiano" lang_translated="Italian"/>
<track id="4" name="Japanese" lang_code="ja" lang_original="日本語" lang_translated="Japanese"/>
<track id="1" name="Spanish (es)" lang_code="es" lang_original="Espan~ol" lang_translated="Spanish"/>
</transcript_list>
この動画にはフランス語、ドイツ語、イタリア語、日本語、スペイン語の5種類がありますね。
上記の一般式にこれらのパラメータを代入して字幕URLを生成します。
フランス語 http://video.google.com/timedtext?hl=fr&lang=fr&name=French (fr)&v=XraeBDMm2PM
ドイツ語 http://video.google.com/timedtext?hl=de&lang=de&name=German (de)&v=XraeBDMm2PM
イタリア語 http://video.google.com/timedtext?hl=it&lang=it&name=Italian (it)&v=XraeBDMm2PM
日本語 http://video.google.com/timedtext?hl=ja&lang=ja&name=Japanese&v=XraeBDMm2PM
スペイン語 http://video.google.com/timedtext?hl=es&lang=es&name=Spanish (es)&v=XraeBDMm2PM
各言語のXMLファイルが参照できたと思います。
■Subrip形式に変換してダウンロード
でも、このXMLファイルは汎用性がなかったりするのでダウンロードしてもあまり実用性がありません。そこで、動画再生ソフトや字幕編集ソフトで利用できる標準的な形式に変換してダウンロードします。
▽Google2SRT
http://sourceforge.net/projects/google2srt
このアプリケーションを使うとSubrip(拡張子.srt)形式に変換してダウンロードすることが出来るので、各種プレーヤーで読み込んだり、字幕作成の定番アプリ『Subtitle Workshop』で編集出来きるようになります。
1) run.batを起動するとカタルーニャ語で表示されちゃってるので、とりあえず英語に変更
2) "Google subtitles"に動画URL貼り付ける
3) Readボタンを押すと下フレームに関連付けされてる言語が表示されるので、それを確認してからGoボタンを押してsrtファイルを保存する
※『http://www.youtube.com/watch?v=XraeBDMm2PM』のような複数言語に対応した動画だとうまく読み込めませんでした。その場合、先にXMLファイルを手動でダウンロードして、このアプリでxml⇒srt変換してあげれば良さそうです。
# この備忘録を残しておこうと思ったのは、↓の記事を読んだのが理由だったりします。6月14日までの期間限定公開らしいので欲しい方は今のうちに字幕もろとも保存しておきましょー。
エキサイトニュース
YouTubeで1時間30分を超える長編ドキュメンタリーが公開される プロデューサーはリュックベッソン
http://www.excite.co.jp/News/column/20090611/Trendgyao_203889.html
by exitarium at 22:54