« キサラギ | メイン | MRTGインストール on FreeBSD + CPU温度監視 »

ニコニコ動画をスクレイピング & FLV保存するPerlモジュールを作ってみた。

毎日楽しくニコニコ動画を見ていたら、ランキングデータをテキストデータで取得して自分ランキングを作りたくなりました。そんなときはPerlだなーとかりかり書いていたら、なんだかモジュールっぽいものになりました。折角だから晒してみます。ツッコミ歓迎。

WWW::NicoVideo [pod]

使い方

 use WWW::NicoVideo;
 my $n = new WWW::NicoVideo( 'mail', 'password');
 
 # ランキング情報を取得する
 my $data  = $n->ranking(
                 span => 'weekly',
                 type => 'mylist',
                 all => 1
             );
 
 # 任意のタグ一覧情報を取得する
 my $data = $n->tag(
         word => '孔明の罠',
         type => 'view',
         all => 0,
 );
 
 # 動画再生ページの情報を取得する
 my $data = $n->entry('sm23336');

使用例

以下のように書くと...

use WWW::NicoVideo;
my $n = new WWW::NicoVideo('mail', 'password');
my $data = $n->tag(
                word => 'エアーマンが倒せない',
                type => 'res_many',
                all => 1,
);
print Dumper( $data );

このような結果が得られます。

$VAR1 = [
  {
    'vid' => 'sm583230',
    'view' => '146324',
    'time' => '3分48秒',
    'thumb_url' => 'http://tn-skr.smilevideo.jp/smile?i=583230',
    'title' => '単位は落とせない',
    'short_comment' => '「エアーマンが倒せない」を、替え歌してみた。テストとかレポートに追われて焦っているので歌ってみま...',
    'res' => '38225'
  },
  {
    'vid' => 'sm416040',
    'view' => '497190',
    'time' => '3分48秒',
    'thumb_url' => 'http://tn-skr.smilevideo.jp/smile?i=416040',
    'title' => 'エアーマンが倒せないを歌ってみました(勝手にフルバージョン)',
    'short_comment' => 'せら様とのコラボはこちら→sm542936(追記:2007.7.1)てつくずおきばのせら様制作の「エアーマンが倒...',
    'res' => '34899'
  },
(以下略)

詳細はpodに書きましたが、ランキング情報をハッシュで取得することができます。


取得したデータを見ているだけで楽しいものです。ここで終えるはずだったのですが、なんとなくflvデータもダウンロードもできるようにしてみました。以下のような書き方ができます。

 my $data = $n->tag(
                word => '古畑任三郎',
                type => 'view',
                all => 1,
 );
 my @list = map { $_->{vid}  } @$data;
 $n->save_flv(
         \@list,
         path =>  '/tmp/',
         code => 'euc-jp',
 );

上記は、/tmp以下に「古畑任三郎」タグのFLVデータを全て保存します。

save_flvには「sm9999」のようなIDを渡して使います。複数ある場合は上記のように配列リファレンスで渡すこと。codeはファイル名の文字コード。OSXならutf8が吉。shift-jisも一応指定可能。残念ながらコメントは保存できません。コメントなしの元動画が保存されます。

運営側が少し仕様を変更しただけで動かなくなる可能性が高いですが、興味のある方はどうぞ。ちなみに負荷が心配なので、all => 1にしても3ページ目以降は取得しないようにしてあります。気になる人は中身を修正してください。

コメント (2)

Mitukasa:

ニコ動に赤の限界5の動画があったのですがまさか……?

ts:

みつさんこんにちはー。えーとはい。お察しのとおりですw (^_^;

コメントを投稿

About

2007年07月16日 08:20に投稿されたエントリーのページです。

ひとつ前の投稿は「キサラギ」です。

次の投稿は「MRTGインストール on FreeBSD + CPU温度監視」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。