動機
Mac で画面を収録する方法によると、
macOS Mojave では、キーボードの「shift + command (⌘) + 5」キーを押すと、画面の静止画を取り込んだり動画で撮影したりするために必要なコントロールが全部表示されます。
ただ、この方法で作成する動画が .mov
形式で、BlogやPull Requestにはそのままでは使えないので、FFmpegを使って手動でGIFに変換していました。
これが結構手間で画像を貼り付けるモチベーションが下がるので、今回、Apple Scriptを使い自動化しました。誰かの手間が少しでも省けたら嬉しいです。
Gyazo などのツールでも画像を作成してくれるサービスを使わないの?
長めの尺のアニメーションを撮りたい時もあった為です。
セットアップ
- python3
- ffmpeg
をインストールします。
GitからソースをDL
こちらのソースをローカルにDLしてください。
私は、iCloud自動同期されたくないので、画面収録される場所を、デスクトップではなく、~/workspace/capture/
としていますが、デスクトップや別の場所に変更されている方はパスを変更してください。
※ 「shift + command (⌘) + 5」で表示されるツールバーのオプションにて保存先変更が可能です。
Pythonのインストールパスを変更
Apple Scriptを実行した際に、フルパスで指定する必要があったため、以下のように指定しています。各自の環境に合わせて修正してください。
- scripts/convert.sh
~/.pyenv/shims/python convert.py
カスタム Apple Script作成
アプリケーション > ユーティリティ > スクリプトエディタ
で開いて任意のスクリプトを作成できます。
書き出しの際は、複数のフォーマットを選べますが、今回は、スクリプト
を選んでください。拡張子が、.script
で出力されればOKです。
property dialog_timeout : 30 -- set the amount of time before dialogs auto-answer.
on adding folder items to this_folder after receiving added_items
try
do shell script "~/workspace/capture/scripts/convert.sh"
end try
end adding folder items to
名前は何でも大丈夫です。
作成したファイルを、/Library/Scripts/Folder Action Scripts
にコピーしてください。
フォルダアクションの設定
画面収録されるフォルダを選んで、右クリック→サービス→フォルダアクション設定にてフォルダアクションを設定可能です。
ここで設定できるのは、/Library/Scripts/Folder Action Scripts
に配置されているものだけのようなので注意してください。
動作
動画収録して、~/workspace/capture/
に *.mov
ファイルが保存されると、Apple Scriptが動き、
~/workspace/capture/converted
にGIF画像が保存されます。
※オリジナルの *.mov
ファイルを削除していますので、残したい方は scripts/convert.py
を変更してください。