批量下载railscasts上视频的ruby脚本
程序员文章站
2022-03-15 15:52:43
...
Railscasts 上面的视频已经出到117集了,很早就想把它们下载下来,但是一直苦于网速太慢。现在网络有了点儿改进,趁机写个ruby脚本把所有视频全部搞定。基本想法就是解析它的RSS,找到视频的地址,然后下载,简单得很。
require 'net/http' require 'rss/2.0' content = '' open('http://feeds.feedburner.com/railscasts') { |s| content = s.read } rss = RSS::Parser.parse(content, false) casts = rss.channel.items.map { |item| item.enclosure.url.sub(/http:\/\/media\.railscasts\.com/, '') } Net::HTTP.start('media.railscasts.com') do |http| casts.each do |cast| puts "start downloading #{cast}" response = http.get(cast) File.open("d:/video/railscasts/#{cast.sub(/\/videos\//, '')}", 'wb') { |file| file.write(response.body) } puts "finish downloading #{cast}" end end
当然了,我这个只是简单的把所有视频都下载下来,因为我之前也没有单独下载过。如果以后想只下载新发布的视频,只要稍微修改一下脚本,控制一下cast的个数就好了。