YouTubeの字幕だけダウンロードするCGIを作って今月1日にブログにあげた。それまで一週間以上かけて少しずつスクリプトを組んで、ようやく稼動させることができたものだ。一応私の環境ではひととおりちゃんと動いてくれている(と思う)。機械翻訳系の字幕には対応していないわけだが、実際YouTubeで表示してみれば分かるけれど、機械翻訳は文章としてかなり破綻していてわざわざダウンロードするほどのものでもないように思う。
先月に、イエール大学がYouTube上に公開している講義動画の文学理論のシリーズをぼつぼつ見始めたのだが、私として、正直字幕なしで理解するのはややきついのであり、字幕のありがたさと、字幕を読み直すのに動画をシークして戻さねばならないなど併せて多少の不便さにも思いが至った。それで字幕をダウンロードしてくれるフリーソフトのGoogle2SRTというのを試したのだが、OSを64bitにしたせいなのか、起動すらしなかった。SRTを落とすだけなら他に方法があるような感じもしたが、SRTだけでなく文章としてまとめて読みたいという欲求もあり、自分でスクリプトを書くことにした。以前の法令データCGIを改良すれば、処理自体はわりと近いはずだし、簡単だろうと思ったらまあそれどころではなかったわけである。しかし何とか一定の完成を見てよかった。
以前RSS非対応サイトのデータをCGIで取得してRSSを勝手に作れないかと思案したときに、そういうサービスをすでにやっているLivedoorの利用規約がどうなってるか探したりして、法的なことを気にしていたが、考えてみればこの種のスクリプトのデータ取得のトリガーは利用者なのであって、その誰かが実行しなければCGI自体はなんらの意味も持ち得ない。いわば機械的ツールとしてサーバ上に設けられた特定目的のHTTPクライアントみたいなものだとみなしうると思う。しかも今回の処理ではサーバにデータのキャッシュすら残していないので、その場限りの「お使い&加工」サービスでしかない。Googleのように、普段から先取り的に巡回して蓄積した他サイトのデータに改変を加え、自サイト内で継続的に公開することで自己のコンテンツとしているのより、かなりましであろうと思われる。
無理の無い程度でスクリプトをメンテナンスorトリミング等しようとは思っているが、元々のソースデータの場所が変わった場合には、すぐに対応できない恐れがある。というのも定義データや字幕データの場所のアルゴリズムは自分でフラッシュを解析するなどして割り出したものでは全然なく(私はフラッシュのアクションスクリプト関連はよく分からないし、解析するにもなにか専用のアプリケーションが必要なのではないかと思う)、ネット上の情報を参考にして組み込んだに過ぎないので、自前ではGoogle(YouTube)側の仕様変更に対して即応出来ない。というわけでその場合には、対応まで時間が掛かるかもしれませんので悪しからず。
2011年6月アーカイブ
YouTube動画の字幕(CC)データをGoogleサーバからダウンロードするCGIです。
自動生成の字幕には対応していませんので、注意してください。
【使い方】
1.YouTubeの字幕(CC)付き動画のページURLかID(11字)をフォームに入力。
2.出力ファイル形式を、HTML、SRT、TXT、XML、の中から選択。
HTML:字幕の不要な改行を無視してつなげています(文末判定は不完全です)
SRT:動画ファイル用の一般的な字幕ファイル形式です
TXT:編集していない字幕文字列です(表示するエディタはその言語に対応している必要があります)
XML:元ソースです
3.YOUTUBEページで字幕が有効な言語を確かめて、上のプルダウンメニューにその言語があれば選択します。または、任意の言語タグを横の空欄に直接入力して指定することもできます(有効な言語タグはErrorページでリスト表示されますので、確認だけならxyzなど存在しないタグを指定してもいいです)。SRT:動画ファイル用の一般的な字幕ファイル形式です
TXT:編集していない字幕文字列です(表示するエディタはその言語に対応している必要があります)
XML:元ソースです
4.「ダウンロード」ボタンを押す。
5.出てきたダイアログボックスでファイルを開くか保存するか等を選択。
※外部サイト(検索サイトのキャッシュなど)からは動作しません。
追記(2014/04/25):
google側の仕様変更によるものではないと思うのですが、srt選択時、一回表示分の字幕で元データのxml上に改行が2ヶ所以上ある字幕において文字列が欠けるバグが出ていたので、直しました。日本語や中国語、韓国語など2バイト文字の字幕で発生しやすかったようです。
追記2(2015/11/24):
1時間以上の動画で出ていたSRTタイムスタンプのバグを修正しました。
追記3(2015/12/06):
短縮URL(https://youtu.be/~)に対応しました。
追記4(2016/03/02):
HTML出力で、元データの行末に句点等がある場合に改行するようにしました(一部言語のみ)。
追記5(2020/05/14):
TXT形式を追加しました。
最近のコメント
purplebaby≫英語の方言をいくつか追加しましたが、プルダウンにないものは右… (0811)
yuka≫いつもありがたく使用させていただいています。 お願いなのです… (0810)
上田和夫≫たいへん便利なものを作成・公開してくださり、ありがとうござい… (0506)
onory0917≫便利ですね‼︎‼︎ AppleのWWDCをダウンロードして … (1215)
kk≫これはどんな技術を用いて作成されたのでしょうか?興味がありま… (1123)
ob≫非常に助かりました! 字幕をgoogle翻訳にかけてじっくり… (0812)
AK≫ありがとうございます! 目的の動画コードの中にname=の部… (0614)
HiroshiTanaka≫大変、助かりました。 素晴らしいソフトで感謝しております。… (0517)
岡田行雄≫先生の楽しい英会話を楽しんで聞いております。 現在ケティさん… (0206)
とも≫ものすごく重宝しています! ありがとうございます‼︎… (0706)