放送終了してたアニメをバッファリング無しで快適に見たくなったので、スクリプトを書いた。あんま真似しないでください。
use LWP::UserAgent;
use URI::Escape qw/uri_unescape/;
my $list_url = $ARGV[0] or die;
my $url_list;
my $ua = LWP::UserAgent->new( show_progress => 1 );
{
my $res = $ua->get($list_url);
die $res->status_line if $res->is_error;
@$url_list = $res->decoded_content
=~ m!class="page_item".+?href="(.+?)"!smg;
@$url_list = reverse @$url_list;
}
{
for my $content_url (@$url_list) {
my ($title) = $content_url =~ m!([^/]+?)/$!;
my $res = $ua->get($content_url);
die $res->status_line if $res->is_error;
my ($embed_url) = $res->decoded_content
=~ m!(http://auengine\.com/embed\.php\?file=[a-zA-Z]+.+?)"!;
$res = $ua->get($embed_url);
die $res->status_line if $res->is_error;
my ($mp4_url) = $res->decoded_content
=~ m!(http://s[0-9]+\.auengine\.com%2Fvideos%2F.+?)'!sm;
$mp4_url = uri_unescape($mp4_url);
$ua->get($mp4_url, ':content_file' => "$title.mp4");
}
}
こんな感じで実行する。
$ perl get_list.pl http://eyeonanime.com/sasami-san-ganbaranai/
ってことで、全話DL完了するのを待ちつつ、パスタつくるお!