Flickr > flickcurl-コマンドラインでFlickr

コマンドラインからFlickrに写真をアップロードしたくて、いろいろと試したがこいつがよさそう。
Flickcurl: C library for the Flickr API
C言語で書かれたFlickrの写真を操作するライブラリ。ライブラリといいながら、コマンドラインユーティリティが同梱されている。これが便利。

見出し


依存関係の解決

libcurl 7.10.0 or newer
$ sudo apt install libcurl3
libxml2 2.6.8 or newer
$ sudo apt install libxml2 libxml2-dev

さくらインターネットにインストールするなら、入っているっぽい
$ /usr/local/bin/curl
$ ls /usr/local/include/libxml2/libxml

Flickcurlをダウンロード&インストール

$ wget http://download.dajobe.org/flickcurl/flickcurl-1.26.tar.gz
$ tar xf flickcurl-1.26.tar.gz
$ cd flickcurl-1.26
$ ./configure
$ make
$ sudo make install
 

さくらインターネットの場合はこちら

$ wget http://download.dajobe.org/flickcurl/flickcurl-1.26.tar.gz
$ tar xf flickcurl-1.26.tar.gz
$ cd flickcurl-1.26
$ ./configure --prefix=/home/UserName
$ make
$ make install
 


マニュアルにしたがって、個人設定を行う。


1. The App Garden | Flickrに行って、 API Key と Secret を作成する。

2. ~/.flickcurl.conf を作成し、 API Key と Secret を記述する。
[flickr]
oauth_client_key=<YOUR API Key>
oauth_client_secret=<YOUR API Secret>
 

3. Key / Secret に対応した、request token, request token secret, Authentication URL を取得する。
$ flickcurl oauth-create
 

4. 得られた Authentication URL をブラウザで開いて、 [OK, I'LL AUTHORIZE IT]をクリックすると、9文字の暗証番号(NNN-NNN-NNN)が得られる。

5. 3.と4.の情報でもって、Access Token, Access Token Secretを取得する
$ flickcurl oauth-verify <request token> <request token secret> NNN-NNN-NNN

6. ~/.flickcurl.confに、Access Token, Access Token Secretが自動的に追記される。
$ cat ~/.flickcurl.conf
[flickr]
oauth_token=12345678901234567-abcdef0123456789
oauth_token_secret=abcdef9876543210
oauth_client_key=0123456789abcdef0123456789abcdef
oauth_client_secret=fedcba9876543210
 

これで設定完了。
.flickcurl.conf は違うPCに置いても使える。

使い方

写真をアップロード

$ flickcurl upload IMG_2581.JPG title "干し柿" public
flickcurl: Uploading file IMG_2581.jpg
flickcurl: Photo upload status
  Photo ID: NNNNNNNNNNN
 

アップロードした写真のURLを取得 flickrdf

$ flickrdf http://www.flickr.com/photos/USER/NNNNNNNNNNN/
 
注意:httpsだとダメ出しされる。
#生画像urlだけでいい人は以下
$ flickrdf http://www.flickr.com/photos/USER/NNNNNNNNNNN/ | grep '"Medium"' | grep -o 'https://.*jpg'
 

アップロード済みの写真を別の写真と入れ替える

$ flickcurl replace dsc_4439.jpg NNNNNNNNNNN              
flickcurl: Photo replace status
  Secret: 75c7aeb85b
  Original Secret: 6bcc3317a4
 

複数ファイルを一度にアップロードできるラッパーを作った

Flickr/flickr-upload.scm
Gaucheでさらに便利なプログラムを書いた(;・`д・́)
最終更新:2017年12月13日 21:51