YouTube の字幕ファイルを保存するスクリプトを作りました。自動字幕作成機能や字幕翻訳機能によって作成された字幕も、たぶん取得できると思います。需要があるかどうかはわかりませんが、とりあえず置いておきます。

ZIP で固めてあります。下記リンクを右クリックして保存後、解凍してください。

YouTube の字幕保存のスクリプト

(2011.07.31 追記。
スクリプトを一部修正してアップし直しました。自動作成された日本語字幕に対応したかもしれません。)

使い方
  1. ZIP を解凍すると、ytcaption.js というファイルがあると思うので、どこか適当なフォルダに放り込んでください。このフォルダに字幕ファイルを保存することになります。
  2. ytcaption.js をダブルクリック、ないし、右クリックから「開く」を選択すると、インプットボックスが表示されます。(Windows の WSH を利用して動作します)。
  3. インプットボックスに、字幕を取得しようとしている動画のページURLを入力します。OK をクリック。
  4. 字幕ファイル取得に成功すれば、終了のダイアログボックスが表示され、スクリプトのあるフォルダ内に、拡張子.xml の字幕ファイルが作成・保存されます。

  • デフォルトでは、日本語字幕の字幕ファイルを取得するようになっています。その他の言語の字幕を取得するように設定するには、スクリプトの最初にある、//setting のあたり、LangCode の値を変更します。
  • 日本語(ja)、英語(en)、韓国語(ko) など。
  • XMLファイルのファイル名は、YouTube の videoId値 + 言語 + 字幕種です。字幕種は、"tx" → 字幕ファイル、"at" → 自動字幕作成機能、です。
  • そのほか、使い方は、同梱の usage.txt を見てください。
YouTube の字幕XMLファイル→
Subrip形式の字幕ファイルへの変換。
  1. YouTube の字幕XMLファイルを、yt2srt.js ファイルのアイコン上へD&Dしてください。
  2. 変換に成功すると、終了のダイアログが出て、字幕XMLファイルと同一フォルダ内、同一ファイル名、拡張子が .srt のファイルが作成・保存されます。

日本語字幕を取得しているようにしている場合(LangCode="ja" の場合)、まず、YouTube 上に、その動画の日本語字幕ファイルがあれば、それを保存します。日本語字幕ファイルがない場合は、英語字幕ファイルを捜して、それがあれば、それを日本語に自動翻訳したものを取得します。英語字幕ファイルもない場合には、自動字幕作成機能により英語の字幕データを造り、これを日本語に自動翻訳したものを取得します。この機能も利用できな場合には、たぶん、code04 というエラーメッセージが出ると思います。


2011.03.26 追記。
YouTube の字幕ファイルを保存してくれるサイトを見つけました。
http://mo.dbidb.com/setting.html
です。
  1. 取得する字幕の言語を選択。
  2. ページ上部にある入力欄に、字幕を取得したい YouTube のページ URL を入力。
  3. 入力欄の右隣にある緑色下向き矢印のアイコンをクリック。
  4. 自動的に srt(subrip形式)に変換された字幕ファイルが、zip に固められてダウンロードされます。