Mitaka Hackathon@Apr.15で制作したプログラムです。
Capybaraでブラウザを立ち上げずにターミナルからサイトにアクセスしているのがポイント。
# -*- coding: utf-8 -*- require 'capybara' require 'capybara/dsl' require 'capybara-webkit' include Capybara include Capybara::DSL require 'mechanize' require 'nokogiri' Capybara.default_driver = :webkit puts "(c) Produced by Kenichiro,Shohei, Ryo 2012 Apr.15 " puts "youtubeから動画を検索してURLを返します。" puts "検索したい語を入力してください。:" line = gets agent = Mechanize.new agent.get("http://www.youtube.com/") agent.page.form_with(:action => "/results"){ |form| form.field_with(:name =>"search_query").value = line.toutf8() form.click_button } output = {} agent.page.links_with(:href => /\/watch\?v\=/ , :class => "yt-uix-tile-link" ).each do |link| movieurl = link.href movieurl = movieurl.split("watch?v=").last movieurl = movieurl.split("&feature").first output[link.text] = movieurl end #puts output fout = File.open("title.txt","w") fout.write(output) #for i in 0..2 output.each_with_index do |(movie_title, movie_URL), i| break if i > 3 puts movie_title,movie_URL visit 'http://www.youtube-mp3.org/' within("#submit-form") do #fill_in 'youtube-url', :with => 'http://www.youtube.com/watch?v=OnhY3Lx8Cao' fill_in 'youtube-url', :with => 'http://www.youtube.com/watch?v='+movie_URL end click_button 'Convert Video' sleep 5 click_link 'Download' current_url #`curl #{current_url} -o sample.mp3` `curl \"#{current_url}\" -o \"#{movie_title}.mp3\"` end