せかいろぐ

ほぼ自分用備忘録

ニコニコ動画のAPIを叩いてマイリストをコピーする(Perl)

Perlでマイリストをコピーしてみます。

コチラもどうぞ
PerlでニコニコAPIを叩いてマイリストの動画をすべて保存 - せかいろぐ


コピー先マイリストを編集できるアカウントでログインしてください。
コピー元マイリストは、公開されているものであれば他人のものでもイケます。

コード

use utf8;
use strict;
use LWP::UserAgent;
use XML::Simple;

# コピー元マイリストID (http://www.nicovideo.jp/mylist/******)
my $mylist_src = 0;
# コピー先マイリストID (http://www.nicovideo.jp/mylist/******)
my $mylist_dest = 0;
# ログイン情報
my $login_info = {
	mail_tel => 'your@mail.addr',
	password => 'your_passwd'
};

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

# ログイン
$ua->post("https://secure.nicovideo.jp/secure/login?site=niconico", $login_info);

# コピー元マイリスト情報取得
my $mylist = XMLin($ua->get("http://www.nicovideo.jp/mylist/${mylist_src}?rss=2.0")->content);

foreach(@{$mylist->{channel}->{item}}){
	# APIを叩くのに必要な情報を抜き出し
	my $url = $_->{link};
	$url =~ s/watch/mylist_add\/video/;
	$ua->get($url)->content =~ /item_id" value="([^"]+).+NicoAPI.token = "([^"]+)/s;
	
	# コピー先マイリストに登録
	$ua->post("http://www.nicovideo.jp/api/mylist/add", {
		group_id => $mylist_dest,
		item_type => 0,
		item_id => $1,
		description => '',
		token => $2
	});
}