animate_tv.yaml
AnimateTVのネットラジオ一覧をRSSに出力&指定の番組をダウンロード
EntryFullText用のyaml
custom_feed_handle: http://www\.animate\.tv/pv/index\.php\?m=r custom_feed_follow_link: http://(?:www\.animate\.tv|shop\.frontierworks\.jp)/digital/web_radio/detail_.*? handle: http://(?:www\.animate\.tv|shop\.frontierworks\.jp)/digital/web_radio/detail_.*? extract: <title>(.+?)</.+?(<img src="img/[^>]+?\.jpg.+?>).+?main_title2.*?>(.+?)</.+?main_txt2.*?>(.+?)</.+?main_txt1.*?>(.+?)</td.+?<a href="(http://[^>]+?\.asx)" extract_capture: title img number day body link extract_xpath: ximg: //img[@width="240" and @height="180"][1] extract_after_hook: | $data->{title} =~ s/^.*?\-Web.+?\-//; $data->{title} =~ s/\s*\-$//; $data->{number} =~ s/<\/*.+?>//g; $data->{day} =~ s/<\/*.+?>//g; $data->{img} = $data->{ximg} if defined $data->{ximg}; $data->{body} =~ s/<\/*(?:table|tbody|tr|td|div).*?>//g; $data->{body} = "<b>".$data->{number}."</b> ".$data->{day}."<br>".$data->{body}."<p>".$data->{img}."</p><p><a href='".$data->{link}."'>[Play]</a></p>";
泥くさいなぁ。yamlをutf8nで保存しても日本語がうまく処理されてないっぽいし。(だからasciiだけにした)
これと、改造したmplayer.pmでフィルターで特定の番組を-dumpstreamするconfig.yaml。RSS自体は全番組取得する。
plugins: - module: Subscription::Config config: feed: - url: http://www.animate.tv/pv/index.php?m=r - module: Filter::EntryFullText - module: Filter::FindEnclosures rule: # - expression: $args->{entry}->title =~ /ネギ/ || $args->{entry}->title =~ /ARIA/i || $args->{entry}->title =~ /おとボク/ # 長いので修正した。 - expression: $args->{entry}->title =~ /(ネギまほ|おとボク|ARIA)/ - module: Filter::FetchEnclosure::Mplayer config: dir: /path/to/dump sub_dir_name: pod dumpstream: 1 set_title: title encode: cp932 type: asf - module: Publish::Feed config: dir: /path/to/publish format: RSS filename: animate.xml
mplayer.pmの改造は、ファイル名と文字コードを指定できるようにしたのと、-dumpstreamをできるようにしただけです。
ネギまほ*1の、放送ごとの写真がうまく取り込めない。
元ネタは未踏ユースに採択されましたなid:hakobe932さんのPlagger+ネトラジ+Podcastから。
mpalyerの-dumpstreamはPlagger はじめた。から。
mplayer.pmはここから取得、リンクしていいのかな?
使用上の注意
木曜・金曜の夜は避けてくださいね。早朝の実行などでサーバーを大事にしましょう。
Filter::FindEnclosuresに適切にフィルターを使わないと、全番組をdumpしようとするので注意。くれぐれもサーバーには優しく。
Filterの正規表現を修正したけど、テストしてない。
*1:keyword:カンださん☆アイぽんのネギまほラジおを参照されたい