[Keyboard Maestro] 自動でウェブカメラで写真を撮る

Mac の起動時や、スリープから復帰時、一定時間ごとにウェブカメラで写真を撮れる Pictary というアプリがある。

Pictary
http://pictary.net/

これと同じようなことが Keyboard Maestro で実行できないか考えてみた。Keyboard Maestro でできれば、たとえばスリープからの復帰時に写真を撮ったり、一定時間ごとに植物を撮影して成長記録を作ったりできる。

やりたいことは、トリガーが実行されると、ウェブカメラで写真が撮れ、月ごとのフォルダに、現在の日付と時刻がファイル名になった画像が保存されることだ。すなわち、今が 2016 年 12 月 20 日の 13 時 20 分 40 秒だとすると、201612 というフォルダに Snap-20161220_132040.jpg というファイルに保存されることだ。また、一連の作業はバックグラウンドで実行され、邪魔なウィンドウなどが出ないようにしたい。

ウェブカメラでの撮影には ImageSnap というアプリを使う。コマンドラインで imagesnap ファイル名.jpg と実行すれば撮影ができるのだ。

ImageSnap: Capture images from iSight and other sources from the command line
http://iharder.sourceforge.net/current/macosx/imagesnap/

コマンドの実行にはバッチファイルを作成する。バッチならばいちいちターミナルを開かなくていいからね。バッチファイルは .command という拡張子のファイルだ。あらかじめテキストエディタなどで snap.command とでも名前を付けて空のファイルを作っておこう。

バッチファイルを実行には実行権限を付与する必要があるそのためには chmod u+x snap.command というコマンドを実行する必要がある。snap.command の実行前に、この作業も必要だ。

Macでバッチ(command)ファイルを作る方法 – Qiita
http://qiita.com/TatsuyaOGth/items/f15bfa9aeb68d8ecfc67

以上を踏まえて、大まかな Keyboard Maestro の流れとしては、以下のようになる。

(1)画像を保存したい場所に月別フォルダを作成する。すでに作成済みなら作成しない。その際、フォルダ名の決定には変数を使う。

(2)バッチファイル内に、ImageSnap で撮影を実行するコマンドを記述する。

(3)2のファイルに実行権限を付与する。

(4)3のファイルを実行する。

具体的には以下のようなアクションを組む(ファイルのパスは★で囲って、各自の環境に合わせて入力してください)。

CapturFiles-20161212_085041

※ 上記スクリーンショットでは、バッチファイルに書き込むテキストとして「〜%YYYMMdd_hhmmss%.jpg」となっているけど、24時間表示にするには「〜%YYYMMdd_HHmmss%.jpg」としよう。