2013-05-07[n年前へ]
■Youtube動画をMP3ファイルとして保存するRuby+Waitrコードを書いてみよう!
Youtube動画をmp3ファイルとして保存するRubyスクリプトを、(ブラウザ操作用ライブラリである)Waitrを使って書いてみました。Youtube 動画URLからMP3ファイルを生成するWEBサイトYouTube mp3へのアクセス・作業を、Ruby/Watirで自動化するコードです。
まず、下記コードを、たとえばyoutube2mp3.rbという名前で保存します(ちなみに、下記コードはFirefoxを操作するコード例です)。
require 'rubygems' require 'watir-webdriver' # sudo gem install hoge profile = Selenium::WebDriver::Firefox::Profile.new profile['browser.download.dir']="hoge" # 保存先 profile['browser.download.folderList']=2 profile['browser.helperApps.neverAsk.saveToDisk']="audio/mpeg" def url2mp3( url, b ) b.text_field( :id => 'youtube-url' ).set url b.button( :id => 'submit' ).click Watir::Wait.until(60,2) do b.text.include? "successfully" end url = b.links.select{ |link| /get/=~link.href } url[0].click if url.length == 1 sleep 20 # wait for "file save" end b = Watir::Browser.new :firefox, :profile=>profile b.goto 'http://www.youtube-mp3.org/' b.wait open( ARGV[0] ) do |file| file.readlines.each { |url| url2mp3( url.strip, b ) } end b.closeその上で、MP3ファイルとして保存したいYoutubeリンクを(各行に動画URLとなっている)テキストファイルとして保存します。つまり、(中身が)こんな具合になっているテキストファイルを作ります。
http://www.youtube.com/watch?v=s_lCJsJPUeY http://www.youtube.com/watch?v=4YhEAn0XPzcこのファイルが、たとえば、list.txtという名前にしたのであれば、あとは
ruby youtube2mp3.rb list.txtと(Rubyスクリプトを)実行すると、Youtube動画の音声部分が、MP3ファイルとして自分のPCに保存されていきます。
「使うのに手間が掛かって面倒だ」と思うWEBサイト・作業があれば、こんな風に(あなたを楽にする)自動化スクリプトを書いてみるのはいかがでしょうか。