欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

批量下载railscasts上视频的ruby脚本

程序员文章站 2022-03-15 16:24:14
...

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的个数就好了。

相关标签: 脚本 Ruby .net