電波ビーチ

☆(ゝω・)v

macで画面キャプチャするときメインディスプレイ以外を撮りたい人のためのAppleScript・Automater

tumblrtwitterで洋画字幕のおもしろキャプチャとか流れてくるのが面白いので真似っこしてストックしている。PC・macで動画を見るときは21インチモニタにつないで観ているのだが、ここぞという場面で画面を止めて⌘+shift+3するとすべてのスクリーンでキャプチャされる。

f:id:or3:20181229171248p:plain
さすがに恥ずかしいので劣化させた
デフォルトだとデスクトップに溜まっていくが、当然メイン(mac本体側)のディスプレイのキャプチャは不必要なのでちまちま消すことになる。⌘+shift+4だとウインドウを選択するのが面倒だ。 タブレットで観るとNetflix on iOSではキャプチャ対応されててクソ。プライムビデオもDLしたものじゃないと撮れなくてクソ

f:id:or3:20181229140039p:plain
google photosにアルバム作って放り込んでいる
そういえばmacにはAppleScriptとかいうのがあってmac上の操作をスクリプト制御できると聞いたことがあるので初めて触ってみた。

スクリプト

ドキュメントすら読んでないしチュートリアルも触ってない、ただのコピペマンです。なので特に説明するべき知識もないのでそのまま書いちゃう。ご覧の通りひどい有様ですが動けばいいんだよ動けば

github.com

Automator

完全に知識がなくて、AppleScriptで完結すると思ったら違くて、ショートカットキーに割り当てるにはAutomaterを使うのが常套手段らしい。これも初めて触る(そもそもmacで日常的なルーチン作業なんて無いし知らんかった)が2,3ググりくらいでなんとかした

Automaterを起動してライブラリ -> AppleScriptを実行 で上記のスクリプトをコピペする。てっきりapplescriptファイルを指定するのかと思ったらふつうにエディタに書き込むタイプだった。管理できなくね?f:id:or3:20181229135257p:plain 適当に名前を決めて保存。

ショートカットキー割当

ふだんまったくキーバインドをいじらないのでこれも初めてだった。システム環境設定 -> キーボード -> ショートカットから↑で保存したAutomaterがあるはずなので選択する。画像の一番下のScreenShotSubmonitorとかいうやつです。そんで適当に(ユニークな)ショートカットキーをつけておく。なんとなくうまくいっていればうまくいく f:id:or3:20181229140342p:plain

よかったね〜〜

以下はただのメモです。おつかれさまでした。良いお年を。

screencaptureコマンド

terminalからscreencaptureコマンドでスクショできる。これに-R<x,y,w,h>オプションで(x, y)を原点として幅w高さhの矩形範囲をキャプチャできるらしいのでやってみたが、認識されているディスプレイの解像度が異なっているとうまく動作しないのか計算方法が違っているのか、ピンポイントでサブモニタだけを撮るのがめんどくさかった。なので仕方なくすべてのディスプレイをキャプチャしてメインディスプレイだけあとで消す、という回りくどいことをしている。試してないけど↑のスクリプトだとメイン除いて4画面までは撮れると思う

"亡霊を残さないために数秒待つ"

とかスクリプト内で書いてますがまあ単に実ファイルは削除したけど参照が残ってるみたいな感じで消そうとするとこういうメッセージが f:id:or3:20181229141545p:plain 出るってやつ。screencaptureコマンドしたあとすぐにゴミ箱ポイーするとこうなるのでちょっとだけディレイかませただけです。亡霊ってなんだよ(正式名称知らない)

Automaterでほかのやり方

なんかAutomaterにはシェルスクリプトも実行できるぽいのでふつうにそれでもイケたと思われる。シェルスクリプトからpythonなりを呼び出してもいい。めんどくさいので別解は書かない(書けない) あとappも起動したりできるし、AppleScriptはapp書き出しができる(って初めて知ったんですがめちゃくちゃ便利じゃん)のでそれでもいい(かもしれない。試してない)