YouTube からデータをぶっこ抜く方法
たいていの動画アプロダサイトって、HTMLソースを表示すれば、http://****.wav ってURLが記述されてるんだけど、YouTubeはちょっと一工夫が必要なので、それを自動化するrubyスクリプトを書いてみました。自己責任で使ってくださいな。
DLしたファイルは、VLC media playerというツールで見ることができます。
require("open-uri") def get_id(url) if url =~ /v=(.*?)(?:&|$)/ return $1 end return "" end def get_link(url) id = url if url =~ /http:.*/ id = get_id(url) end url = "http://www.youtube.com/watch?v=#{id}" open(url){|f| html = f.read if html =~ /\/player2\.swf\?video_id=.*?&t=(.*?)"/ dl_url = "http://youtube.com/get_video.php?video_id=#{id}&t=#{$1}" return dl_url end } return "" end def get_file(url, file_name) if File.extname(file_name) != ".flv" file_name = file_name + ".flv" end dl_url = get_link(url) if dl_url == "" puts "--- not found this url #{url}" return end contents = open(dl_url){|f| f.read } f_out = open(file_name, "wb") f_out.write(contents) f_out.close() end #=============================================================================== # DLしたいYouTubeのURL #=============================================================================== url = "http://www.youtube.com/watch?v=yPu19jOcJF4"; get_file(url, "CNN Cuts Early to President Bush")