Rubyでニコニコ動画のダウンローダ
ニコニコ動画にアクセスするnicovideoパッケージをgemでインストールすると、sample/nv_download.rb というファイルも入手できます。それを読んで勉強。で、nv_download.rbをもとにしてnico.rbを書きました。nv_download.rbの劣化コピーですみません。でも、自分で書き写して直すと理解が深まるので、おゆるしください。
require 'nicovideo' require 'yaml' require 'iconv' def puts(s) Kernel.puts Iconv.conv('cp932', 'UTF-8', s) end account = YAML.load_file('nico.yaml') mail, password = account['mail'], account['password'] nicovideo = Nicovideo.new(mail, password) video_id_list = ARGV if ARGV.size == 0 video_id_list = [ 'sm2222901', 'sm1846043' ] end video_id_list.each do |video_id| nicovideo.watch(video_id) do |video_page| puts video_page.id + ' : ' + video_page.title File.open("#{video_id}.flv", "wb") do |file| file.write video_page.flv end end sleep 3 end
実行結果です。
C:\work> gem help (略) C:\work> gem help list (略) C:\work> gem list nicovideo --remote *** REMOTE GEMS *** nicovideo (0.1.4, 0.1.3, 0.1.2, 0.1.1, 0.1.0, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1) utils for nicovideo C:\work> gem install nicovideo Successfully installed nicovideo-0.1.4 Installing ri documentation for nicovideo-0.1.4... Installing RDoc documentation for nicovideo-0.1.4... C:\work> type nico.yaml (まえもってnico.yamlは作っておく) mail: yourmail@example.com password: xxxxxxxx C:\work> ruby nico.rb (引数省略すると数学ガールをダウンロード) sm2222901 : 「数学ガール」に絵をつけてみた‐ニコニコ動画(夏) sm1846043 : 【初音ミク】 数学ガール‐ニコニコ動画(夏) C:\work> dir /b *.flv sm1846043.flv sm2222901.flv C:\work> ruby nico.rb smXXXXXXX (引数を与えるとその動画をダウンロード) (略)