hirax.net::inside out::2013年05月07日

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2013年4月 を読む << 2013年5月 を読む >> 2013年6月 を読む

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サイト・作業があれば、こんな風に(あなたを楽にする)自動化スクリプトを書いてみるのはいかがでしょうか。