Download Files with Ruby
FEB
17
2010
This weekend, I remembered an old podcast I used to listen to that I wanted to hear again. It wasn't available on iTunes anymore, so I did a Google search for it. I found the show's Web site, and saw that they had a complete archive of all four seasons of the podcast (20 episodes per season). The problem was, each episode was on it's own page, with a separate page to access the download link. I started to manually try to download each episode, but that got old REALLY quickly. Why not write a simple script to do the work for me?
Here's the Ruby script I whipped up in about 15 minutes:
require 'net/http'
1.upto(4) do |season|
1.upto(20) do |episode|
episode = '%02d' % episode
puts "Downloading Season ##{season}, Episode ##{episode}"
Net::HTTP.start("website.com") do |http|
resp = http.get("/episode_archive/s#{season}ep#{episode}.mp3")
open("s#{season}ep#{episode}.mp3", "w") do |file|
file.write(resp.body)
end
end
puts "Episode downloaded!"
puts
end
end
puts "All files downloaded!!"
An explanation of what's going on here:
Lines #3-4: There are 4 seasons and 20 episodes per season, so iterate through them.
Line #5: We need to left pad the episode numbers, because that's how the files are named.
Line #7: Connect to the host.
Line #8: Get the episode (named like "s1ep05.mp3").
Lines #9-11: Save the file using the same name.
Nashville Rails Meetup Presentation - "Rails Page Caching"
FEB
19
2010
Here is the presentation I gave at the February 2010 Nashville Ruby on Rails Meetup.
Tagged: rails, ruby on rails, caching
Popular Posts
Search
Tags
actionmailer activerecord ajax apache apple barcamp caching capistrano centos code golf css db delete eager loading ebay email attachment erb flash ftp fun generators get haml helpers ie sucks javascript jquery lightbox lost merb net ftp paperclip passenger php plexus post presentation rails rails machine railsconf redesign rest rjs routes rss ruby ruby on rails safari script sinatra symfony text replacement tips tutorial twitter xhtml
Projects
© 2010 Travis Roberts. All rights reserved.