CPANモジュール「Flickr::Upload」を使う

画像のSNS(?)Flickrでは、WindowsとMac用のアップロードツールは公開され ていますがLinux用は公開されていません。
が、nDikiさんのサイトによるとCPANモジュールが公開されているらしいの で、インストールします。

nDikiさんのサイトにあるとおり、dh-make-perlという、 CPANモジュールをCPANのサイトからひっぱってきてdebパッケージにしてくれるツールを使います。

まずSynapticで

  • dh-make-perl
  • liburi-perl(XML::Parser::Lite::Treeが依存)
  • libsoap-lite-perl(XML::Parser::Lite::Treeが依存)

をインストールします。
後はdh-make-perlを使って

  • XML::Parser::Lite::Treeのdebパッケージ作成およびインストール。
    (XML::Parser::Lite::TreeはSynapticではインストールできないようです)
    $ sudo dh-make-perl --build --cpan XML::Parser::Lite::Tree
    $ sudo dpkg -i libxml-parser-lite-tree-perl_0.03-1_all.deb
  • さらにFlickr::Apiもdebパッケージ化してインストール。
    $ sudo dh-make-perl --build --cpan Flickr::Api
    $ sudo dpkg -i libflickr-api-perl_0.07-1_all.deb
  • これでようやくFlickr::Uploadのdebパッケージが作成可能に。
    $ sudo dh-make-perl --build --cpan Flickr::Upload
    $ sudo dpkg -i libflickr-upload-perl_1.22-1_all.deb

さっそく動かしてみると...

$ flickr_upload
Usage:
flickr_upload [--auth] --auth_token <auth_token> [--title <title>]
[--description description] [--public <0|1>] [--friend <0|1>] [--family
<0|1>] [--tag <tag>] <photos...>

Options:
(略)
--auth_token <auth_token>
Authentication token. Required.

ですって。トークンてなんだ?

どうも、最初に--authオプションでトークンを作る必要があるみたいです。
で、まずはトークン作成に必要なAPI keyをflickr のサイトから取ってきます。

flickr_keygen.jpg

[Describe the application are you planning to build:]にはCPAN module Flickr::Uploadと書いておきました。

次にここに行くと今作ったキーの設定ができます。

flickr_keyconf.jpg

[Not configured]をクリックして(画面では[Edit configuration]になってます)、[Application Title]と[Application Description]を書きます。これら2つは必須です。

flickr_keyconf2.jpg

これでトークンを作成することができます。
コマンドラインから

$ flickr_upload --auth --key [API key] --secret [Shared Secret]
1. Enter the following URL into your browser

http://flickr.com/services/auth?api_sig=****&frob=****&perms=write&api_key=****

2. Follow the instructions on the web page
3. Hit <Enter> when finished.

ここで、Webブラウザで上記のURLにアクセスします。

flickr_upload1.jpg

[OK,I'LL ALLOW IT]をクリックして、

flickr_upload2.jpg

が出たらコマンドラインでEnterを押す。

You authentication token for this application is
******-*************

めでたくトークンを作成できました。
これで、

$ flickr_upload --auth_token **** --key **** --secret **** test.jpg
Uploading test.jpg...
Waiting for upload results (ctrl-C if you don't care)...
test.jpg is at http://www.flickr.com/tools/uploader_edit.gne?ids=****

アップロード成功♪

いちいちトークン等指定するのが面倒な場合、$HOME/.flickrrcに

auth_token=****
key=****
secret=****

と書けば入力を省略できます。
他のオプションも指定可能です。
パーミッションを600にするのを忘れないようにしましょう。

トークンのしくみについてはま ちゅダイアリーさんに詳しく説明が書かれています。