Flickr2pics: Flickrからlivedoor PICSに画像をコピーするスクリプト
livedoor PICSですが、あまり使われていないそうなので(笑)、Flickrの画像をダウンロードしてきてlivedoor PICSにアップロードするスクリプトを作ってみました。50MBとはいえ貴重なネットワークストレージ、有意義に使いましょう。多分ある時点でlivedoor Blog並に(2GBくらいに)一気に増量されるのではないかと勝手に思っています。
Flickrの画像情報を取り出すのにFlickr Servicesを、livedoor PICSにアップロードするのにlivedoor PICS WebServiceをそれぞれ使っています。「2.0」ぽいですね。Webでサービスしてもよいのですが、トラフィックが洒落にならんのとBrute force attackをされるとかなわんので止めておきます。
スクリプトを動作させるには以下のPerlモジュールがインストールされている必要があります。
- Cal Henderson / Flickr-API-0.07 - search.cpan.org
- Christian Glahn / XML-LibXML-1.58 - search.cpan.org
- Tatsuhiko Miyagawa / XML-Atom-0.16 - search.cpan.org
スクリプトの冒頭の変数$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を複数追加するのが面倒な感じがした。
このエントリーのトラックバックURL: http://as-is.net/mt/mt-tb.cgi/357
Comments (0)