▼ [Perl] ニコニコ動画Perlインターフェイス (WWW::NicoVideo) 公開
2007/11/28 1:04
ニコニコ動画の情報を取得する WWW::NicoVideo を作成した。RSSを作成するために最低限必要な部分しか作っておらず、非公開APIについても未対応。
- CPAN
- http://search.cpan.org/dist/WWW-NicoVideo/
- いじり中Subversionリポジトリ
- http://svn.coderepos.org/share/lang/perl/WWW-NicoVideo/
- いじり中ソースコードブラウザ
- http://coderepos.org/share/browser/lang/perl/WWW-NicoVideo/
使い方は 添付のサンプル を参照… では不親切なので、Feed に変換するプログラム:
use utf8;
use strict;
use warnings;
use Getopt::Std;
use Encode;
use Encode::Guess "euc-jp";
use XML::Feed;
use WWW::NicoVideo;
MAIN: {
my %opts;
getopts('m:p:t:k:f:o:', \%opts);
my $mail = $opts{m} || die "mail required";
my $passwd = $opts{p} || die "passwd required";
my $outfile = $opts{o};
my $format = $opts{f} || "Atom";
my $key = defined $opts{k}? decode("Guess", $opts{k}): "律子ソロ";
my $type = $opts{t} || "tag";
my $method = {tag => "getEntriesByTagNames",
"search" => "getEntriesByKeywords"}->{$type} or
die "invalid type: $type";
my $outfh;
if(defined $outfile) {
open $outfh, ">:utf8", $outfile;
} else {
$outfh = \*STDOUT;
binmode STDOUT, ":utf8";
}
my $nv = new WWW::NicoVideo();
$nv->mail($mail);
$nv->passwd($passwd);
$nv->login or die "login failed";
my $feed = new XML::Feed($format);
$feed->title("@{[ucfirst $type]}: $key - ニコニコ動画");
$feed->link("http://www.nicovideo.jp/");
foreach my $e ($nv->$method(key => $key, sort => "f", order => "d")) {
my $ent = new XML::Feed::Entry($format);
$ent->title($e->title);
$ent->link($e->url);
$ent->content($e->desc);
$feed->add_entry($ent);
}
print $outfh $feed->as_xml;
}
使用例: perl ritsuko-feed.pl -m your-mail@example.org -p your-passwd -k "最東みんくP" -o minkhouse.atom
ritsuko.org始めました
▼ コメント(0件)
