ニコニコ動画 swf、mp4、flvをダウンロードする for Windows

Windowsで昨日のスクリプトを動かすまでの手順です。Rubyのインストールから、ファイルの取得まで。
需要があるようなので、これを機にRubyユーザを増やしてしまおう計画。

1.ActiveScriptRubyをインストールする

http://arton.hp.infoseek.co.jp/indexj.html
ActiveScriptRuby 1.8.6をインストールします。

2.nicovideo gemを導入する

ruby consoleを開いて以下を実行してください。

> gem install nicovideo

[Yn]と出てきたらエンター押して進めましょう。「Select whick gem to install for your platform」と聞かれたら、1の hpricot 0.6 (mswin32)を選んでください。
ときどき失敗するようですが、めげずにチャレンジ。

3.nicodownをダウンロードする

昨日のスクリプトWindowsでも動くように改造して置いておきました。
http://matou.sakura.ne.jp/downloads/nicodown/nicodown001.zip
ダウンロードして解凍してください。

4.ニコニコ動画のアカウントを設定

解凍したファイルに含まれる、conf.txtを編集してください。メモ帳で編集すればOKです。

5.nicodown.rbを実行

ここまでの環境が無事整えば、nicodown.rbをダブルクリックで素敵なダウンロードライフが満喫できます。
実行。

plz input video_id(smXXXXXX):sm2539712

結果。

[sm2539712] H264テスト アイドルマスター.mp4

複数の動画を一気にダウロードしたい場合は、ruby consoleからnicodownに引数を与えて実行してください。

>nicodown.rb sm2553704 nm2536146 sm2540481
[sm2553704] 魔理沙は大変なものを盗んでいきました(h.264版).mp4
[nm2536146] 日刊VOCALOIDランキング 2008年3月6日.swf
[sm2540481] 【鏡音リン・レン】ジェミニ【オリジナル】.flv

Windows向けソース

ソースがないと寂しいので貼っておきます。コピペで保存する場合はUTF8で保存してください。ダウンロードした方が確実です。(nicodown001.zip
変更点。

  • アカウント情報をconf.txtから取得するように変更
  • タイトルをsjisに変換して出力
  • 引数がないとき、入力を促すように変更
#!/usr/bin/ruby -Ku

# nicodown.rb

require 'kconv'
require 'rubygems'
require 'nicovideo'

module Nicovideo
  class VideoPage
    def type
      @params ||= get_params
      pattern = %r!^http://.*\.nicovideo\.jp/smile\?(.*?)=.*$!
      CGI.unescape(@params['url']) =~ pattern
      case $1
      when 'm'
        return 'mp4'
      when 's'
        return 'swf'
      else
        return 'flv'
      end
    end
  end
end

conf = YAML.load_file('conf.txt')
nv = Nicovideo.new(conf['mail'], conf['password'])

if ARGV.size == 0
  print "plz input video_id(smXXXXXX):"
  ARGV << gets.chomp
end

ARGV.each do |video_id|
  nv.watch(video_id) do |v|
    File.open("[#{v.id}] #{v.title.sub(/.*$/, '').tosjis}.#{v.type}", "wb"){|f| f.write(v.flv) }
  end
end