Skip to content

Instantly share code, notes, and snippets.

@atnan
Created December 2, 2008 07:19
Show Gist options
  • Save atnan/31040 to your computer and use it in GitHub Desktop.
Save atnan/31040 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
unless (urls = DATA.read.strip).empty?
puts urls
exit
end
require 'rubygems'
require 'hpricot'
require 'open-uri'
rubyconf_url = 'http://rubyconf2008.confreaks.com'
document = Hpricot::parse(open(rubyconf_url))
video_pages = document.search('td.program a').collect { |link| link.attributes['href'] }
File.open(__FILE__, File::WRONLY) do |file|
file.truncate(DATA.pos)
file.seek(DATA.pos)
video_pages.uniq.each do |video_page|
document = Hpricot::parse(open("#{rubyconf_url}/#{video_page}"))
document.search('.formatlist a').each do |format|
format_url = format.attributes['href']
file.write("#{rubyconf_url}/#{format_url}\n")
end
end
end
__END__
http://rubyconf2008.confreaks.com/videos/matzs-keynote-large.mp4
http://rubyconf2008.confreaks.com/videos/matzs-keynote-small.mp4
http://rubyconf2008.confreaks.com/videos/monkeybars-easy-cross-platform-guis-large.mp4
http://rubyconf2008.confreaks.com/videos/monkeybars-easy-cross-platform-guis-small.mp4
http://rubyconf2008.confreaks.com/videos/future-of-rubyvm-large.mp4
http://rubyconf2008.confreaks.com/videos/future-of-rubyvm-small.mp4
http://rubyconf2008.confreaks.com/videos/using-git-in-ruby-applications-large.mp4
http://rubyconf2008.confreaks.com/videos/using-git-in-ruby-applications-small.mp4
http://rubyconf2008.confreaks.com/videos/desktop-development-with-glimmer-large.mp4
http://rubyconf2008.confreaks.com/videos/desktop-development-with-glimmer-small.mp4
http://rubyconf2008.confreaks.com/videos/rubinius-large.mp4
http://rubyconf2008.confreaks.com/videos/rubinius-small.mp4
http://rubyconf2008.confreaks.com/videos/ruby-for-embedded-applications-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-for-embedded-applications-small.mp4
http://rubyconf2008.confreaks.com/videos/building-distributed-applications-large.mp4
http://rubyconf2008.confreaks.com/videos/building-distributed-applications-small.mp4
http://rubyconf2008.confreaks.com/videos/jruby-what-why-howtry-it-now-large.mp4
http://rubyconf2008.confreaks.com/videos/jruby-what-why-howtry-it-now-small.mp4
http://rubyconf2008.confreaks.com/videos/recovering-from-enterprise-large.mp4
http://rubyconf2008.confreaks.com/videos/recovering-from-enterprise-small.mp4
http://rubyconf2008.confreaks.com/videos/ruby-in-the-clouds-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-in-the-clouds-small.mp4
http://rubyconf2008.confreaks.com/videos/what-does-my-ruby-do-large.mp4
http://rubyconf2008.confreaks.com/videos/what-does-my-ruby-do-small.mp4
http://rubyconf2008.confreaks.com/videos/rush-a-shell-that-will-yield-to-you-large.mp4
http://rubyconf2008.confreaks.com/videos/rush-a-shell-that-will-yield-to-you-small.mp4
http://rubyconf2008.confreaks.com/videos/unfactoring-from-patterns-large.mp4
http://rubyconf2008.confreaks.com/videos/unfactoring-from-patterns-small.mp4
http://rubyconf2008.confreaks.com/videos/macruby-ruby-for-your-mac-large.mp4
http://rubyconf2008.confreaks.com/videos/macruby-ruby-for-your-mac-small.mp4
http://rubyconf2008.confreaks.com/videos/peer-aware-desktop-application-development-large.mp4
http://rubyconf2008.confreaks.com/videos/peer-aware-desktop-application-development-small.mp4
http://rubyconf2008.confreaks.com/videos/better-hacking-with-training-wheels-large.mp4
http://rubyconf2008.confreaks.com/videos/better-hacking-with-training-wheels-small.mp4
http://rubyconf2008.confreaks.com/videos/ironruby-large.mp4
http://rubyconf2008.confreaks.com/videos/ironruby-small.mp4
http://rubyconf2008.confreaks.com/videos/neverblock-trivial-non-blocking-io-large.mp4
http://rubyconf2008.confreaks.com/videos/neverblock-trivial-non-blocking-io-small.mp4
http://rubyconf2008.confreaks.com/videos/testing-heresies-large.mp4
http://rubyconf2008.confreaks.com/videos/testing-heresies-small.mp4
http://rubyconf2008.confreaks.com/videos/ruby-persistence-in-maglev-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-persistence-in-maglev-small.mp4
http://rubyconf2008.confreaks.com/videos/waves-a-resource-oriented-framework-large.mp4
http://rubyconf2008.confreaks.com/videos/waves-a-resource-oriented-framework-small.mp4
http://rubyconf2008.confreaks.com/videos/aristotle-and-the-art-of-software-development-large.mp4
http://rubyconf2008.confreaks.com/videos/aristotle-and-the-art-of-software-development-small.mp4
http://rubyconf2008.confreaks.com/videos/patterns-in-distributed-processing-large.mp4
http://rubyconf2008.confreaks.com/videos/patterns-in-distributed-processing-small.mp4
http://rubyconf2008.confreaks.com/videos/writing-my-own-web-framework-large.mp4
http://rubyconf2008.confreaks.com/videos/writing-my-own-web-framework-small.mp4
http://rubyconf2008.confreaks.com/videos/fear-of-programming-normal.mp4
http://rubyconf2008.confreaks.com/videos/ruby-arduino-development-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-arduino-development-small.mp4
http://rubyconf2008.confreaks.com/videos/ramaze-the-underrated-web-framework-large.mp4
http://rubyconf2008.confreaks.com/videos/ramaze-the-underrated-web-framework-small.mp4
http://rubyconf2008.confreaks.com/videos/coding-for-failure-large.mp4
http://rubyconf2008.confreaks.com/videos/coding-for-failure-small.mp4
http://rubyconf2008.confreaks.com/videos/better-ruby-through-functional-programming-2-large.mp4
http://rubyconf2008.confreaks.com/videos/better-ruby-through-functional-programming-2-small.mp4
http://rubyconf2008.confreaks.com/videos/lightweight-web-services-large.mp4
http://rubyconf2008.confreaks.com/videos/lightweight-web-services-small.mp4
http://rubyconf2008.confreaks.com/videos/what-all-rubyist-should-know-about-threads-large.mp4
http://rubyconf2008.confreaks.com/videos/what-all-rubyist-should-know-about-threads-small.mp4
http://rubyconf2008.confreaks.com/videos/how-i-learned-to-love-javascript-large.mp4
http://rubyconf2008.confreaks.com/videos/how-i-learned-to-love-javascript-small.mp4
http://rubyconf2008.confreaks.com/videos/effective-and-creative-coding-large.mp4
http://rubyconf2008.confreaks.com/videos/effective-and-creative-coding-small.mp4
http://rubyconf2008.confreaks.com/videos/using-metrics-to-take-a-look-at-your-code-large.mp4
http://rubyconf2008.confreaks.com/videos/using-metrics-to-take-a-look-at-your-code-small.mp4
http://rubyconf2008.confreaks.com/videos/crate-packaging-your-ruby-application-large.mp4
http://rubyconf2008.confreaks.com/videos/crate-packaging-your-ruby-application-small.mp4
http://rubyconf2008.confreaks.com/videos/hacking-with-ruby2ruby-large.mp4
http://rubyconf2008.confreaks.com/videos/hacking-with-ruby2ruby-small.mp4
http://rubyconf2008.confreaks.com/videos/ruby-heavy-lifting-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-heavy-lifting-small.mp4
http://rubyconf2008.confreaks.com/videos/writing-code-that-doesnt-suck-large.mp4
http://rubyconf2008.confreaks.com/videos/writing-code-that-doesnt-suck-small.mp4
http://rubyconf2008.confreaks.com/videos/components-are-not-a-dirty-word-large.mp4
http://rubyconf2008.confreaks.com/videos/components-are-not-a-dirty-word-small.mp4
http://rubyconf2008.confreaks.com/videos/the-fall-and-rise-of-dynamic-languages-large.mp4
http://rubyconf2008.confreaks.com/videos/the-fall-and-rise-of-dynamic-languages-small.mp4
http://rubyconf2008.confreaks.com/videos/how-ruby-can-be-fast-large.mp4
http://rubyconf2008.confreaks.com/videos/how-ruby-can-be-fast-small.mp4
http://rubyconf2008.confreaks.com/videos/ruby-kata-and-sparring-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-kata-and-sparring-small.mp4
http://rubyconf2008.confreaks.com/videos/organizing-a-regional-conference-large.mp4
http://rubyconf2008.confreaks.com/videos/organizing-a-regional-conference-small.mp4
http://rubyconf2008.confreaks.com/videos/os-x-application-development-with-hotcocoa-large.mp4
http://rubyconf2008.confreaks.com/videos/os-x-application-development-with-hotcocoa-small.mp4
http://rubyconf2008.confreaks.com/videos/keynote-large.mp4
http://rubyconf2008.confreaks.com/videos/keynote-small.mp4
http://rubyconf2008.confreaks.com/videos/questions-and-answers-normal.mp4
http://rubyconf2008.confreaks.com/videos/advanced-dsls-in-ruby-large.mp4
http://rubyconf2008.confreaks.com/videos/advanced-dsls-in-ruby-small.mp4
http://rubyconf2008.confreaks.com/videos/a-wonderful-awful-idea-ruby-in-the-browser-large.mp4
http://rubyconf2008.confreaks.com/videos/a-wonderful-awful-idea-ruby-in-the-browser-small.mp4
http://rubyconf2008.confreaks.com/videos/summer-of-code-rails-thread-safety-large.mp4
http://rubyconf2008.confreaks.com/videos/summer-of-code-rails-thread-safety-small.mp4
http://rubyconf2008.confreaks.com/videos/summer-of-code-docbox-large.mp4
http://rubyconf2008.confreaks.com/videos/summer-of-code-docbox-small.mp4
http://rubyconf2008.confreaks.com/videos/tap-not-a-talk-about-replacing-rake-large.mp4
http://rubyconf2008.confreaks.com/videos/tap-not-a-talk-about-replacing-rake-small.mp4
http://rubyconf2008.confreaks.com/videos/making-your-code-crappier-large.mp4
http://rubyconf2008.confreaks.com/videos/making-your-code-crappier-small.mp4
http://rubyconf2008.confreaks.com/videos/ruby-19-what-to-expect-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-19-what-to-expect-small.mp4
http://rubyconf2008.confreaks.com/videos/ruby-mendicant-project-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-mendicant-project-small.mp4
http://rubyconf2008.confreaks.com/videos/the-ruby-code-review-a-play-in-three-acts-large.mp4
http://rubyconf2008.confreaks.com/videos/the-ruby-code-review-a-play-in-three-acts-small.mp4
http://rubyconf2008.confreaks.com/videos/genetic-programming-meets-tdd-large.mp4
http://rubyconf2008.confreaks.com/videos/genetic-programming-meets-tdd-small.mp4
http://rubyconf2008.confreaks.com/videos/seattlerb-rocks-large.mp4
http://rubyconf2008.confreaks.com/videos/seattlerb-rocks-small.mp4
http://rubyconf2008.confreaks.com/videos/introducing-red-sun-ruby-to-flash-large.mp4
http://rubyconf2008.confreaks.com/videos/introducing-red-sun-ruby-to-flash-small.mp4
http://rubyconf2008.confreaks.com/videos/two-turntables-and-a-git-repo-large.mp4
http://rubyconf2008.confreaks.com/videos/two-turntables-and-a-git-repo-small.mp4
http://rubyconf2008.confreaks.com/videos/tcl-for-rubyists-large.mp4
http://rubyconf2008.confreaks.com/videos/tcl-for-rubyists-small.mp4
http://rubyconf2008.confreaks.com/videos/dramatis-actors-for-ruby-large.mp4
http://rubyconf2008.confreaks.com/videos/dramatis-actors-for-ruby-small.mp4
http://rubyconf2008.confreaks.com/videos/a-puppet-story-systems-building-systems-large.mp4
http://rubyconf2008.confreaks.com/videos/a-puppet-story-systems-building-systems-small.mp4
http://rubyconf2008.confreaks.com/videos/testing-my-leet-codez-large.mp4
http://rubyconf2008.confreaks.com/videos/testing-my-leet-codez-small.mp4
http://rubyconf2008.confreaks.com/videos/why-dont-you-come-to-rubykaigi-2009-large.mp4
http://rubyconf2008.confreaks.com/videos/why-dont-you-come-to-rubykaigi-2009-small.mp4
http://rubyconf2008.confreaks.com/videos/duby-large.mp4
http://rubyconf2008.confreaks.com/videos/duby-small.mp4
http://rubyconf2008.confreaks.com/videos/japanese-rubyists-you-have-not-met-yet-large.mp4
http://rubyconf2008.confreaks.com/videos/japanese-rubyists-you-have-not-met-yet-small.mp4
http://rubyconf2008.confreaks.com/videos/evil-code-large.mp4
http://rubyconf2008.confreaks.com/videos/evil-code-small.mp4
http://rubyconf2008.confreaks.com/videos/rspec-and-cucumber-large.mp4
http://rubyconf2008.confreaks.com/videos/rspec-and-cucumber-small.mp4
http://rubyconf2008.confreaks.com/videos/the-nature-of-truth-large.mp4
http://rubyconf2008.confreaks.com/videos/the-nature-of-truth-small.mp4
http://rubyconf2008.confreaks.com/videos/stupidrb-large.mp4
http://rubyconf2008.confreaks.com/videos/stupidrb-small.mp4
http://rubyconf2008.confreaks.com/videos/test-stack-large.mp4
http://rubyconf2008.confreaks.com/videos/test-stack-small.mp4
http://rubyconf2008.confreaks.com/videos/ruby-macros-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-macros-small.mp4
http://rubyconf2008.confreaks.com/videos/adrenaline-driven-development-large.mp4
http://rubyconf2008.confreaks.com/videos/adrenaline-driven-development-small.mp4
http://rubyconf2008.confreaks.com/videos/glimmers-dsl-engine-large.mp4
http://rubyconf2008.confreaks.com/videos/glimmers-dsl-engine-small.mp4
http://rubyconf2008.confreaks.com/videos/limelight-large.mp4
http://rubyconf2008.confreaks.com/videos/limelight-small.mp4
http://rubyconf2008.confreaks.com/videos/ironruby-demonstration-large.mp4
http://rubyconf2008.confreaks.com/videos/ironruby-demonstration-small.mp4
http://rubyconf2008.confreaks.com/videos/quartz-composer-and-cruisecontrol-status-large.mp4
http://rubyconf2008.confreaks.com/videos/quartz-composer-and-cruisecontrol-status-small.mp4
http://rubyconf2008.confreaks.com/videos/silver-bullet-large.mp4
http://rubyconf2008.confreaks.com/videos/silver-bullet-small.mp4
http://rubyconf2008.confreaks.com/videos/forth-large.mp4
http://rubyconf2008.confreaks.com/videos/forth-small.mp4
http://rubyconf2008.confreaks.com/videos/terminalapp-large.mp4
http://rubyconf2008.confreaks.com/videos/terminalapp-small.mp4
http://rubyconf2008.confreaks.com/videos/dust-large.mp4
http://rubyconf2008.confreaks.com/videos/dust-small.mp4
http://rubyconf2008.confreaks.com/videos/yellowpagescom-now-atandt-interactive-large.mp4
http://rubyconf2008.confreaks.com/videos/yellowpagescom-now-atandt-interactive-small.mp4
http://rubyconf2008.confreaks.com/videos/addressible-uri-large.mp4
http://rubyconf2008.confreaks.com/videos/addressible-uri-small.mp4
http://rubyconf2008.confreaks.com/videos/ruby-for-artists-jotbot-large.mp4
http://rubyconf2008.confreaks.com/videos/ruby-for-artists-jotbot-small.mp4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment