Aice5 in Wonder RADIO
PlaggerでEFTで楽々ゲット、とか思ってたけど、JavaScriptで切り替わる画像とかが面倒。ので普通にスクリプトを書いてしまった。
ファイル名からフォルダを作って、画像とasfをダウンロード。
こうしてまたスクリプトが増えてしまった。気軽に書けすぎするのって欠点なのかも。
use strict; use warnings; use LWP::Simple; my $url = 'http://www.starchild.co.jp/artist/aice5/radio/'; my $asx = 'aice_radio.asx'; my $html = 'radio.html'; my $asf = get($url.$asx); $asf ? print "Fetched: $asx\n" : die "Fail to fetch: $asx\n"; my $media = ( $asf =~ m!((?:http|mms)://.*?\.(?:wmv|wsx|wma|asf))!g )[0]; $media ? print "Found: $media\n" : die "Can't find any asf in asx.\n"; my $filename = ( $media =~ m|/([^/]+?)$|g )[0]; my $dirname = ( $filename =~ m|^(.+)_|g )[0]; mkdir $dirname unless -d $dirname; chdir $dirname; my $res = get($url.$html); $res ? print "Fetched: $url$html\n" : die "Fail to fetch: $url$html\n"; print "GET images... "; while ($res =~ /radio_text([1-9])\.gif/g) { my $img = "radio_photo$1.jpg"; (-f $img) ? next : getstore($url.$img, $img); print "$img "; sleep 1; } print "\n"; (-f $filename) ? print "Already exists $filename\n" : system('mplayer', '-dumpstream', $media, '-dumpfile', $filename);
asfがasxファイルの最初に書かれているものだけしか取ってこない。サーバーが忙しいときは切り替えたいけど、どうしたらよいものか。