リハビリその2

ニコニコ動画で動画のタグを取得するコードを書いてみた。
ニコニコAPIなんてものがあったんですね。

#!/usr/bin/env/perl
use strict;
use warnings;

use LWP::UserAgent;
use Getopt::Long;
use XML::XPath;

binmode STDOUT, ":utf8";

my %opt;
GetOptions(\%opt, 'mail=s', 'password=s');

unless (defined $opt{mail} && $opt{password}) {
    die "$0 --mail=mail_address --password=password [video_id|uri]\n";
}

$ARGV[0] =~ m/(sm\d+)$/ or die "$0 [video_id|uri]\n";
my $video_id = $1;

my $ua = LWP::UserAgent->new(keep_alive => 4);
$ua->cookie_jar({});

$ua->post("http://www.nicovideo.jp/login",
          [
              mail => $opt{mail},
              password => $opt{password},
          ]);

$ua->get("http://www.nicovideo.jp/watch/$video_id");
my $res = $ua->get("http://www.nicovideo.jp/api/getthumbinfo/$video_id");

my $xp = XML::XPath->new(xml => $res->decoded_content() );

my $nodeset = $xp->find('//tags/tag');

foreach my $node ($nodeset->get_nodelist) {
    foreach my $child ($node->getChildNodes) {
        print $child->getValue, "\n";
    }
}


実行

 perl niconico.pl --mail='メールアドレス' --password='パスワード' sm10291047
ゲーム
P(ピー)
実況プレイ
実況プレイ動画高速マリオ
覚えゲー
疑惑の判定
無言プレイ