Flickr の API を使ってブログ用のタグを取得

| コメント(818) | トラックバック(0)

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 でコードを載せるのめんどくさい...

トラックバック(0)

トラックバックURL: http://www.sevendays.com/mt/mt-tb.cgi/493

このブログ記事について

このページは、notoが2009年9月21日 20:34に書いたブログ記事です。

ひとつ前のブログ記事は「調布飛行場から神津島へ (6): ふりかえり」です。

次のブログ記事は「MTOS-4.261 へのアップグレード」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.261