...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

ニコニコからH.264動画などをダウンロード

http://d.hatena.ne.jp/hayori/20080307/1204852916 を使わせてもらったらファイル名が文字化けしたのでsjisに変換するように書き換えた.

#!/usr/bin/ruby -Ku

# nicodown.rb

require 'rubygems'
require 'nicovideo'
require 'kconv'
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

nv = Nicovideo.new('メールアドレス', 'パスワード')

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

初めて実用的なrubyコードを読み,初めて編集したけど,なんていうかrubygems便利すぎる.

gem install nicovideo

追記

ソースの文字コードはutf8にしませう.