SnowLeopardでもRubyでEvernoteに写真をアップロードする

以前書いた フォトストリームに追加された写真をEvernoteにアップロードする の設定ですが、正直わからない人の方が多いよなぁと思っていたので…

昨日の東ラ研の二次会で、@SayobsさんのPCに設定させてもらいました。

iPhoneで撮った写真が全自動でリサイズ・撮影日・位置情報付きでEvernoteに入るように@ksworksさんに設定してもらった!  快適すぎる!

— Ray Matayoshi さん (@Sayobs) 2月 20, 2012

そしたら微妙に反応を頂いたのと、Snow Leopard環境だとどうなるのか?が個人的に気になったので追試してみました。

ひとまずSnow Leopard環境だとフォトォトストリームは動かないので、全自動でEvernoteまでアップロードはできません(^_^;)

ただ、例えばPictShareなどでDropboxに写真を上げるところまでは手動で実行して、それ以降のリサイズとか位置情報設定したノートをEvernoteに上げるところまでを以前のスクリプトを使って…
という、微妙なところで妥協できそうな所はあります。

環境構築

Lionでの環境構築は、以前の記事でも書きましたが、念のため再掲します。

Terminal.appを起動して、以下のようにコマンドを入力します。

$ cd /usr/local/share
$ sudo -s
Password: ********
% curl http://evernote.s3.amazonaws.com/api/evernote-api-1.19.zip > evernote-api-1.19.zip
% unzip evernote-api-1.19.zip
% cd /usr/lib/
% mkdir site_ruby # 既にsite_rubyがあれば作成する必要なし
% cd site_ruby/
% cp -rp /usr/local/share/evernote-api-1.19/ruby/lib/* .
% exit

実際の実行イメージはこんな感じになります( ´ ▽ ` )ノ

Evernote API周りの準備が出来たら、PictNote.rbで使用する gem ファイルのインストールを行います。

続けてTerminal.appで…

$ gem install mime-types
$ gem install exifr

ここまでの手順は、LionでもSnow Leopardでも変わりません。

次に通知関係でGrowlNotifyを使っているので、Growl公式ページのDownloadページでGrowlNotify.pkg(growlnotify-1.3.zip)をDLしてインストールします。

これでPictNote.rbが動作する環境が構築できました( ´ ▽ ` )ノ

Automatorの設定

Automator側の設定も前回とほぼそのままで行けます。
# 画像はLionのAutomatorですが、SnowLeopardもほぼ同じになるはずです

実は昨日、最後の「引数でファイルを渡す」設定を見落としていて、上手く動かず悩んでいたり…(^_^;)

ここでSnowLeopardの場合は、最初に dummy 設定しているフォルダを任意のフォルダに設定します。

Lionの場合は別途フォトストリームのフォルダを選択するために(AutomatorからLibruaryが見れないので)dummyにしていました。
ですが、最初に書いたように、フォトストリームが使えないのであれば、その設定する必要が無いんですよね…

実際に処理を行うRubyのスクリプトは↓からダウンロード or コピペしてもらって…

いくつか設定をお好みに合わせて変更してください。

# タイトル設定時の時刻情報フォーマット (strftime)
$NoteTitleFormat = '%Y-%m-%d(%a) %H:%M:%S %Z'

# ノート情報登録成功時に通知をするか?
$NotifySuccessed = true

# ノート情報登録成功時に元ファイルを削除するか?
$RemoveFileSuccessed = false

# EVERNOTE保存先ノートブック名(デフォルトで良ければコメントアウト)
$ENStoreNotebookName = 'testnotebook'

# EVERNOTE保存時設定タグ名(設定不要ならコメントアウト)
$ENStoreTagName = [ 'testtag1', 'testtag2' ] # 設定したいタグ名を設定(複数可)

# EVERNOTE USERNAME
$EvernoteUsername = 'username'

# EVERNOTE PASSWORD
$EvernotePassword = 'password'

この辺りの設定を編集後、Automatorの「シェルスクリプトを実行」の中身に入れてください。

その他にも…

おそらく、iPhoneアプリでPictShareとか使うのであれば、そこでそのままEvernoteにアップロードしてしまえばいい、という話もあるのですが(^_^;)
微妙な付加価値的には、写真の位置情報をノートの位置情報に設定出来るという点になるのかなと…
# たしか、PictShareではこれは出来なかった気がするので

後は、iPhoneを使っていない方でAndroidで撮った写真をiPhotoに同期するの方法とかを使う場合など…
フォルダアクションからEvernoteにアップロード出来るのが少しだけ利点になるかも。

僕個人ではやってみたら面白いかもしれないというところが一番のモチベーションなのですがw

その他、今回は「PictShareなどでDropboxに写真を上げる」としたのですが、「iPhotoのライブラリで写真が登録されるフォルダを探しだしてそこにフォルダアクションをしかける」なども可能性としてはあるのかなと…

ただ、iPhotoライブラリの中身ってバージョンによりけりで色々変わったりするので、なかなか「コレで行ける」と言う方法がないんですけど…

たぶん、この記事だけを見て設定出来る方は少ないかなと思うので、もし勉強会などでお会いする機会があれば、直接サポートはしますのでお気軽に声を掛けてください( ´ ▽ ` )ノ