Jan 7, 2006

Flickr2pics: Flickrから livedoor PICSに画像をコピーするスクリプト

livedoor PICSですが、あまり使われていないそうなので(笑)、Flickrの画像をダウンロードしてきてlivedoor PICSにアップロードするスクリプトを作ってみました。50MBとはいえ貴重なネットワークストレージ、有意義に使いましょう。多分ある時点でlivedoor Blog並に(2GBくらいに)一気に増量されるのではないかと勝手に思っています。

http://ogawa.googlecode.com/svn/trunk/flickr2pics/

Flickrの画像情報を取り出すのにFlickr Servicesを、livedoor PICSにアップロードするのにlivedoor PICS WebServiceをそれぞれ使っています。「2.0」ぽいですね。Webでサービスしてもよいのですが、トラフィックが洒落にならんのとBrute force attackをされるとかなわんので止めておきます。

スクリプトを動作させるには以下のPerlモジュールがインストールされている必要があります。

スクリプトの冒頭の変数$FLICKR_USERNAME, $PICS_USERNAME, $PICS_PASSWORDを自分の環境に合わせて修正した後、コマンドラインから起動すれば動作するはずです。

注意事項

このスクリプトはflickr.people.getPublicPhotosを使って$FLICKR_USERNAMEで指定されたユーザのPublic Photoのリストを取得し、それぞれの画像に対してflickr.photos.getInfoで詳細情報を取得しています。したがって以下のような制限・留意点があります。

  • Publicでない画像はコピーできない。
    →我慢してください。
  • $FLICKR_USERNAMEに他人のユーザ名を指定してももちろんコピーできてしまう。
    →絶対にやめましょう、特にこのスクリプトを使ってやるのは。
  • 場合によってはカップ麺が作れるくらい時間がかかる。
    →文句はFlickrにどうぞ。念のため、今のところPICS APIがやたら速いせいで確かにFlickrの遅さが目立ちますが、PICSユーザがそこそこ増えればPICS APIもビジーになってどうせ気にならなくなるはずと予想しておきます。

また、PICSに反映される情報は今のところタイトルと画像ファイルだけです。Flickr2picsでは、Flickr APIを用いて画像に付加されたDescriptionやTagsなどの情報も取得していますが、PICSのAtomPPのインタフェースにそれらを追加する機能がないので反映しようがないためです。リバースエンジニアリングすれば見つかるかもしれません。これができると本当は面白いのですけれどね。

2006-01-12追記:
ひょっとしてdc:subjectでいいのかもと思った。後で試してみよう。

試してみたけど、×だった。XML::Atomでdc:subjectを複数追加するのが面倒な感じがした。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com