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")