2013年1月23日水曜日

perlでPicasaの写真をダウンロード

perlでPicasaウェブアルバム上の写真を取りたくなった。
CPANでモジュールを探してみたところ、ちゃんとありました。
http://search.cpan.org/~hanenkamp/Net-Google-PicasaWeb-0.11/

cpanでインストールして早速試してみる。

アルバムごとにディレクトリを作って、その下に写真をダウンロードするスクリプト。


use Net::Google::PicasaWeb;

my $service = Net::Google::PicasaWeb->new;

$service->login('YOUR USER ID','YOUR PASSWORD');

my @albums = $service->list_albums(user_id => 'YOUR USER ID');

foreach my $album (@albums) {
  print "Album ID: ", $album->entry_id, "\n";

  mkdir $album->entry_id;

  my @photos = $album->list_media_entries;
  foreach my $photo (@photos) {
    my $media_info = $photo->photo;

    my $main_photo = $media_info->content;
    print "Image URL: ", $main_photo->url, "\n";

    my $photo_data = $main_photo->fetch;
    $main_photo->fetch( file => $album->entry_id . "/" . $media_info->title );
  }
}



アルバム名の方が分かりやすいけど、日本語を使いたくなかったのでアルバムIDを使っただけなので、アルバム名の方がよければ
$album->title
を使ってください。

list_albumsで指定するuser_idは自分にアクセス権があれば他のユーザ名でもいけるらしい。試してないけど。

0 件のコメント: