flickr の set を指定して、対応したサムネイルとリンク先のタグを一括取得する Perl スクリプトを書いてみた。要 Flicr::API モジュール。
set の URL が http://www.flickr.com/photos/tokiharu/sets/72157621918366482/ であれば、72157621918366482 が photoset_id にあたる。
flickr.pl というスクリプトであれば、
./flickr.pl <photoset_id>
で取得できる。
スクリプトの最初の $key, $user_id は自分のものに置き換えてどうぞ。
リンク先画像のサイズを変えるときは $thumb の URL 中の sizes/l のあたりを変更。同様に $thumb の URL を変えるとサムネイルのサイズも変えられるはず。
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use Flickr::API;
# config
our $key = '**your_api_key**';
# cf. http://www.flickr.com/photos/**your_user_id**/
our $user_id = '**your_user_id**';
my $photoset_id = shift || die "no photoset_id";
my $api = new Flickr::API({'key' => $key,});
my $response = $api->execute_method('flickr.photosets.getPhotos', {
'api_key' => $key,
'photoset_id' => $photoset_id,
});
if (! $response->{success}) {
die "$response->{error_code}: $response->{error_message}";
}
my $tree = $response->{tree};
my @photoset = @{$tree->{children}->[1]->{children}};
# print Dumper(@photoset);
for my $photo (@photoset) {
if ($photo->{type} eq 'element') {
my $attr = $photo->{attributes};
my $thumb
= "http://farm$attr->{farm}.static.flickr.com/"
. "$attr->{server}/"
. "$attr->{id}_$attr->{secret}.jpg";
my $link
= "http://www.flickr.com/photos/$user_id/"
. "$attr->{id}/sizes/l/"
. "in/set-$photoset_id/";
print <<EOT;
<a href="$link"><img src="$thumb"></a>
EOT
}
}
うー、素の MT3 でコードを載せるのめんどくさい...
