Youtubeの動画を一発で落とす方法
前回、CDTubeからYoutube動画を一発で落とすプログラムを作ったのだけども、Youtubeから直接好きな動画をいっぺんに落とせないかと思い調べてみた。
いままではYoutubeで動画を検索、気に入った動画があったらGetFLVというソフトを使ってダウンロードをしていた。これだと作業がとても面倒。検索、表示、右クリック、保存先を指定、ダウンロード開始というのを繰り返さないといけない。
そこでYoutubeの自分のアカウントにあるお気に入り動画リストをプログラムから取得できないかと調べてみた。YoutubeのAPIを使えばどうもできるらしいということがわかり、Rubyで使えるモジュールないかなぁと探してみると・・・あった(笑)。その名もYoutube.rb。
require 'youtube'
require 'nkf'youtube = YouTube::Client.new(ここに自分の開発IDをセット)
favorites = youtube.favorite_videos(ここに自分のYoutubeIDをセット)
opt = "-s -xm0"
favorites.each do |favvideo|
filetitle = NKF.nkf(opt,favvideo.title).gsub("\"","")
filetitle = filetitle.gsub(" ","")
filetitle = filetitle.gsub("\\","")
filetitle = filetitle.gsub("/","")
#ここらへんでファイル名に使えない文字を削除。こういう処理って文字列配列で
#普通はきれいに書くんだよね・・・いや、おもいつきで書いたらこうなったとい
#うことで・・・だれか治して。きっとまだ足りない。puts "Title: #{filetitle}"
puts "url: #{favvideo.url}"
saveyoutube(favvideo.embed_url,filetitle)
#この関数を呼び出すとファイルをダウンロードして保存してくれるのだけど、これ非公開(笑)
end
これ、最高にイイ!
Youtubeでほしい動画を見つけたらとりあえずどんどんYoutubeのお気に入りに追加をしていく。どんどんどんどんしていく。どうしようかなぁとか迷わずに気になった動画はどんどんお気に入りに追加してしまう。どんどんしていったら、あとでこのプログラムを一発走らせるだけで、お気に入りに登録した動画を次々と自動的にダウンロードすることができてしまうのだ。
どうかな?