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::YouTubeentry->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 %]