cl.pocari.org - YouTube でタグによる RSS フィードを取得するには YouTube から直接 RSS が取れるのか。
で、実際にPlaggerで取ってみたら entry->icon がなくて悲しかったので Filter を。
[追記] Rev.849 で Aggregator::Simple が Media RSS から thumbnail を取ってこられるようになったので、以下の Filter::YouTube は不要になりました。
package Plagger::Plugin::Filter::YouTube; use strict; use warnings; use base qw( Plagger::Plugin ); our $VERSION = 0.01; sub register { my($self, $context) = @_; $context->register_hook( $self, 'update.entry.fixup' => \&filter, ); } sub filter { my($self, $context, $args) = @_; my $entry = $args->{entry}; my $icon = {}; if( $entry->body =~ m!(<img.*?>)! ){ my $img = $1; if( $img =~ m!src="(http://[\w-]*static\d+(.[\w-]+)?\.youtube.com/[^">]+/[12].jpg)"! ){ $icon->{url} = $1; } $icon->{width} = $1 if $img =~ m!width="(\d+)"!; $icon->{height} = $1 if $img =~ m!height="(\d+)"!; } if( $entry->body =~ m!<p>(.*?)</p>!xms ){ my $title = $1; $title =~ tr/\r\n\t//d; $icon->{title} = $title; } if( $entry->body =~ m!<a href="(.*?)"! ){ $icon->{link} = $1; } $entry->icon( $icon ); } 1;
CustomFeed::YouTube よりも手っ取り早い?
- module: Subscription::Config config: feed: - url: http://www.youtube.com/rss/tag/monkey.rss - module: Filter::YouTube
entry->icon->link の URL が、author の URL になってるのが微妙かも。
ついでに、Hatena-TubeをPlaggerで - 酒日記 はてな支店 の video.tmpl もアップデートしておく。
enclosure の URL で youtube.com/v/***** の形式もサポート。
[% FOREACH e = entries %] [% FOREACH enc = e.enclosures %] [% JAVASCRIPT %] var url = stash.get('enc').url; var vId; if(url.match(/video_id=/)){ vId = stash.get('enc').url.match(/video_id=([^&]+)/)[1]; } else if(url.match("/v/")){ vId = stash.get('enc').url.match("/v/(.*)")[1]; vId = vId.replace('\.swf', ''); } stash.set('vId', vId); stash.set('vTitle', stash.get('e').title.replace("'", "\\'")); [% END %] <div class="video"> <div class="video_thumbnail" style="background-image: url([% e.icon.url %]);"> <div class="video_foreground"> <a class="link_thumbnail" href="javascript:(TB_clicked('[% vTitle %]','[% vId %]'))" title="[% e.title %]"> </a> </div> </div> <h3><a class="thickbox" href="javascript:(TB_clicked('[% vTitle %]','[% vId %]'))" title="[% e.title %]"> [% e.title %] </a></h3> </div> [% END %] [% END %]