Shortcuts アプリでmacOSのスクリーンショットを自動化する
Mac の Shortcuts で一定間隔のスクリーンショットを撮影し、設定した時刻やアプリの起動時にショートカットを実行する方法と、スクリプトや画面収録の権限の修正方法を説明します。
12分で読めます生産性作成者:Temposhot Team
Mac の Shortcuts アプリは、ドラッグで配置したアクションを使って、スクリーンショットの撮影、待機、繰り返しを実行できます。ショートカットは、メニューバー、キーボードショートカット、Terminal、または新しい macOS では個人用オートメーションから実行することもできます。この投稿では、繰り返し撮影するショートカットを作成し、三つの方法で起動して、実行を妨げる権限の問題を修正します。
スクリプトアクションと画面収録を許可する
ショートカットが動作するかどうかは、二つの権限で決まります。
画面収録。 ショートカットで初めてスクリーンショットを撮影すると、macOS が画面収録の許可を求めます。許可します。以前に拒否した場合は、System Settings を開き、Privacy and Security を選択して、画面収録のリストで Shortcuts をオンにします。表示されるラベルは macOS のバージョンによって異なります。
スクリプトアクション。 Shortcuts は、許可するまで "Run Shell Script" と "Run AppleScript" をブロックします。Shortcuts アプリを開き、Settings、Advanced の順に選択して、Allow Running Scripts をオンにします。このオプションが必要なのは、後述の任意のページめくりの手順だけです。
繰り返しスクリーンショットのショートカットを作成してテストする
ショートカットを作成する
Shortcuts を開き、プラスボタンを選択して、ショートカット名を "Repeat Screenshots" にします。
Repeat を追加する
Repeat アクションを追加し、最初のテストでは回数を 3 に設定します。
ループ内に Take Screenshot を追加する
Take Screenshot を Repeat のブロック内にドラッグします。既定では全画面を撮影します。
各画像を保存する
ブロック内に Save File を追加します。保存先の確認をオフにし、この作業専用のフォルダを選択して、ファイル名に Repeat Index 変数を使います。これにより、各回で新しいファイルが書き込まれます。
待機を追加する
Save File の後に Wait を追加し、3 秒に設定します。
テストを実行する
実行ボタンを選択し、フォルダに 3 つのファイルがあることを確認します。その後、回数を増やします。
Repeat Index は 1 から始まるため、ファイル名は撮影順になります。"frame-1"、"frame-2" のような名前を使います。ただし、日付の追加順で並べ替えない場合、Finder は "frame-10" を "frame-1" の後に並べます。
目標の時間から回数を設定する
実行時間を決めるのは回数だけです。各回の時間は、スクリーンショットと保存の時間に、Wait アクションの時間を加えたものです。スクリーンショットと保存を合わせて約 0.2 秒と仮定します。3 秒の Wait を入れた 3 回のテストは、約 9.6 秒で終わります。
より長い期間を撮影するには、期間を間隔で割ります。15 秒ごとに 1 枚撮影する 30 分のダッシュボード実行では、30 × 60 ÷ 15 で 120 回が必要です。1 回あたり約 0.2 秒かかるため、Wait アクションは 14.8 秒にして、間隔を 15 秒に保ちます。120 を設定する前に、4 回の実行で設定を確認します。
同じ作業は Temposhot では Duration の停止条件で設定できます。Duration を 30 分、Interval を 15 秒に設定すると、回数を指定しなくても、セッションは時間の上限で終了します。一時停止している時間は実行時間に含まれないため、一時停止すると経過時間は延びますが、実行時間は延びません。
任意: 撮影の間にページをめくる
Wait の後に Run AppleScript を追加し、次の行を入力します。
tell application "System Events" to key code 124
キーコード 124 は右矢印キーです。キー入力は最前面のアプリに送られるため、ショートカットを開始する前に、リーダーのウィンドウをクリックします。Shortcuts はメニューバーまたはキーボードショートカットから実行されるため、ショートカット開始時に前面にあるアプリがキー入力を受け取ります。この手順には Shortcuts のアクセシビリティの許可が必要です。
ページめくり後の待機を設定する
ページめくりには二つの待機が必要です。ページが描画される時間と、各回の間隔です。Run AppleScript の後の Wait アクションは描画時間を担います。ページの描画に 2 秒かかる場合、キー入力後の 1 秒の Wait により、次の Take Screenshot の前にページには合計 3 秒が与えられます。キー入力を Wait の前に置くことで、Wait はページがめくれた後に始まります。
手順の順序は重要です。キー入力の後に保存すると、最初の回で次のページが撮影され、最初のページはフォルダに残りません。長い実行の前に、最初と最後のファイル名を文書と照合します。
長時間の実行の前に最初のフレームを確認する
短いテスト実行で、設定の誤りの大半を検出できます。回数を 3 より増やす前に、次のチェックリストを使います。
最初と最後のファイルを Preview で一緒に開きます。2 つの画像が同一の場合、回と回の間でページが変わっていません。キー入力の待機時間を延ばすか、リーダーのウィンドウが前面にあるかを確認します。
個人用オートメーションから起動する
macOS Tahoe 26 以降では、Mac の Shortcuts アプリに Automation セクションがあります。個人用オートメーションは、時刻や選択したアプリの起動など、トリガーが発火するとショートカットを実行します。たとえば、09:00 のオートメーションで "Repeat Screenshots" を実行し、ダッシュボードを撮影できます。
サイドバーで Automation を選択し、新しい個人用オートメーションを作成して、トリガーを選び、ショートカットを指定します。表示されない確認を待たないように、実行の設定を確認します。Shortcuts ウィンドウに Automation セクションがない場合、その macOS バージョンでは Mac のオートメーションは利用できません。その場合は、Terminal からショートカットを実行します。
スケジュールされた撮影では、トリガー時刻に Mac がスリープ解除され、ロックが解除されている必要があります。08:30 にスリープする Mac では、09:00 の実行は誰かが起こすまで開始しません。以下の設定は、ダッシュボードの例に対応しています。
Terminal からショートカットを実行する
macOS には shortcuts コマンドが含まれています。
shortcuts list
shortcuts run "Repeat Screenshots"
これにより、シェルスクリプト、スケジュールされたジョブ、または別のツールからショートカットを開始できます。ショートカットは Terminal の権限ではなく、Shortcuts アプリの権限で実行されます。
スケジュールを設定する前に実行の実際の長さを測るには、コマンドを time で囲みます。
time shortcuts run "Repeat Screenshots"
まず 3 回のカウントでショートカットを実行し、表示された時間をタイミングのセクションの見積もりと比較します。差が大きい場合は、通常、Wait アクションが意図より長いか、選択したディスクで保存の手順が遅いことを示します。完全な回数で同じコマンドを実行してから、スケジュールを信頼します。
Shortcuts と Automator の比較
| 項目 | Shortcuts | Automator |
|---|---|---|
| ループ | 回数を指定する Repeat | 回数または分を指定する Loop |
| 待機 | 秒単位の Wait アクション | Pause アクション |
| ファイル名 | Repeat Index 変数 | 名前を変更しない限り固定名 |
| トリガー | メニューバー、キーボード、Terminal、新しい macOS のオートメーション | アプリ内で実行、保存したアプリ、クイックアクション |
| スクリプト | 許可後の Shell と AppleScript のアクション | Shell と AppleScript のアクション |
| 共有 | ショートカットのファイルは iCloud で同期 | ワークフローファイルとアプリ |
両者は同じ撮影の権限モデルで動作します。新しいワークフローとトリガーには、Shortcuts が適しています。既存の古いワークフローを保守する場合は、Automator が引き続き役立ちます。Automator 版のこの作業 では、Pause と Loop で同じループを示しています。
ショートカットのトラブルシューティング
- 画像に壁紙だけが写る。 Shortcuts に画面収録の権限がありません。許可してから、再度実行します。
- フォルダに 1 つのファイルしかない。 Save File が固定名を上書きしています。ファイル名に Repeat Index を追加します。
- "Run Shell Script" または "Run AppleScript" が失敗する。 Shortcuts の設定で Allow Running Scripts をオンにします。
- キー入力が効かない。 Shortcuts にはアクセシビリティの権限が必要で、対象のアプリが前面にある必要があります。
- オートメーションが実行されない。 確認を待っているか、トリガー時刻に Mac がスリープしていた可能性があります。
- フレームが黒い。 ディスプレイがスリープしました。実行中は Terminal で
caffeinate -diを実行します。 - フレームに通知バナーが写る。 撮影にはその瞬間に画面上にあるものがすべて含まれます。実行前に Focus モードをオンにするか、通知元を閉じます。
- フレームに別のアプリが写る。 Take Screenshot は全画面を撮影するため、その瞬間に前面にあるアプリがフレームに写ります。対象のウィンドウを前面に出し、そのまま維持します。
- 古いフレームでフォルダがいっぱいになる。 同じフォルダを使う 2 回目の実行は、1 回目のファイルに追加するか、同じ名前のファイルを上書きします。実行ごとに 1 つのフォルダを使い、日付を付けた名前にします。
実行後のフォルダを確認する
正しく実行されると、1 回のパスにつき 1 つのファイルが、1 つのフォルダに、パスの順序どおりの名前で残ります。以下のツリーは、3 回のテスト後のフォルダを示しています。番号の欠けは、失敗したパスか、手動で名前が変更されたファイルを示します。
ファイルを開く前に、ファイル数を数えます。予想どおりの数のファイルがあり、名前が連番で、サイズが最初のフレームに近ければ、基本的な確認は通ります。実行の最初、中間、最後からサンプルのフレームを開くと、内容を確認できます。途中で変化しなくなったページは、名前とサイズは正しく見えるファイルを生成するためです。
ファイル数は、タイミングから予想される数ではなく、設定したパス数と比較して確認します。早く止まった実行はファイルが少なく、Wait アクションが飛ばされた実行は、同じ数のファイルを短い時間で作成します。最初と最後のファイルの更新時刻を、実行前に記録した開始時刻と終了時刻と比較します。
失敗箇所から実行を計画する
ショートカットの各手順は、それぞれ異なる理由で失敗する可能性があります。以下の表は、失敗内容、フォルダで確認できる兆候、最初に確認する項目を示します。
| 手順 | 失敗 | フォルダでの兆候 | 最初の確認 |
|---|---|---|---|
| Take Screenshot | 権限がない | 壁紙またはメニューバーだけが写る | 画面収録のリスト |
| Save File | フォルダがない、または書き込みできない | 新しいファイルがない、またはエラー | フォルダが存在し、Finder が書き込めること |
| Repeat Index の名前 | 固定名 | 1 つのファイルが毎回変わる | ファイル名に Repeat Index が含まれること |
| Run AppleScript | スクリプトが許可されていない | ページがめくれない、エラーメッセージ | Allow Running Scripts |
| Wait | ページに対して短すぎる | フレームが重複する | 描画時間に対する Wait の長さ |
この順序で手順をテストします。一つの手順が失敗すると次の手順の問題が隠れるため、残りを確認する前に、最初に失敗した行を修正します。
遅いページに合わせてペースを調整する
短い読み込みの後にデータを更新するダッシュボードは、静的な文書よりも長い待機が必要です。最初のページではなく、最も遅いページを測定します。ページを開いて再読み込みし、最後のグラフが描画されるまでの時間を記録します。その時間に余裕として 1 秒を加え、その値をページめくり後の Wait に使います。
たとえば、最後のグラフの描画に 4 秒かかるページでは、キー入力後の Wait を 5 秒以上にします。このペースで 120 回実行すると、待機だけで少なくとも 600 秒、つまり 10 分かかり、各保存の時間も加わります。スケジュールは、この合計時間を考慮して設定します。
1 回あたりの小さな遅延は積み重なります。保存に 0.2 秒ではなく 0.5 秒かかると、1 回あたり 0.3 秒が加わり、120 回では 36 秒になります。time コマンドで測定した合計を、3 回のテスト後の見積もりと比較し、差が広がる場合は Wait を調整します。
Wait が必要な間隔より長い場合、ショートカットは計画より遅く動作します。余分な時間をループの外に移すには、間隔を Wait と保存時間の合計にし、3 回のテストで確認します。
プライベートな内容をフレームに含めない
Take Screenshot は、メールのプレビュー、チャットウィンドウ、作業と無関係のブラウザタブなど、画面上のすべてを撮影します。実行前にそれらを閉じるか隠すか、顧客データを含む撮影には専用のユーザアカウントを使います。
共有の前に各フレームを確認します。エディタでのぼかしやトリミングは、ショートカットが実行しない別の手順です。ショートカットは全画面をそのまま保存します。
Shortcuts が最適な撮影インターフェースではない場合
Shortcuts は汎用の自動化ツールです。撮影ループは動作しますが、いくつかの作業には追加の作り込みが必要です。
- 1 つのウィンドウまたは固定領域の撮影には、
screencapture -lまたは-Rを使うシェルの手順が必要です。 - 時刻で停止するには、ループ内で日付の確認が必要です。
- 実行中に一時停止、再開、終了のボタンはありません。
- 検索可能な PDF を作成するには、別のツールで OCR が必要です。
Temposhot の Auto Capture は、これらの操作を設定として提供します。ソースは Screens、Windows、Custom Area から選択でき、Screenshots、Duration、End time の停止条件、Key press の欄、None、3、5、10 秒から選べる Countdown、フローティングツールバーがあります。Key press は Pro の機能です。無料プランではセッションごとの撮影枚数に上限があり、Temposhot Pro ではその上限がなくなります。
次の表は、ショートカットの各手順と Auto Capture の設定の対応を示します。
この対応は一般的なケースを扱います。ショートカットは各回の間にスクリプトを実行できますが、Auto Capture はできません。撮影の間にカスタムのロジックが必要な作業では、ショートカットを残し、Temposhot は構図と書き出しの手順だけに使います。
Auto Capture は、時刻になっても自動では開始しません。人の操作なしで 09:00 に開始する必要がある実行には、オートメーションまたはスクリプトが引き続き必要です。時刻で停止するには End time を使います。これは、選択した現地時刻にセッションを終了します。
Temposhot の実行で使うショートカットキーは次のとおりです。
FAQ
Take Screenshot はすべてのディスプレイを撮影しますか。
既定では全画面を撮影します。ディスプレイやウィンドウを選択するオプションは、macOS のバージョンによって異なります。アクションの詳細を開くと、お使いのバージョンで利用できるオプションを確認できます。
ショートカットでスクリーンショットから PDF を作成できますか。
はい。Make PDF アクションは、画像を 1 つの PDF にまとめます。この方法で作成した PDF にはテキストレイヤーがないため、ページでは検索やコピーができません。検索可能なファイルが必要な場合は、フレームを Screenshot to Searchable PDF で処理するか、Temposhot から検索可能な PDF のオプションで書き出します。
ショートカットにキーボードショートカットを割り当てられますか。
はい。ショートカットの詳細を開き、キーボードショートカットを追加します。Shift+Command+3 など、macOS が既に使用している組み合わせは避けます。
Repeat アクションでは何枚のスクリーンショットを撮影できますか。
Repeat は入力した回数を実行します。長い実行はディスク容量をすぐに消費するため、少ない回数でテストし、先にファイルサイズを確認します。1 回ごとに PNG を 1 つ作成する 120 回の実行では、120 個のファイルが作成されます。フォルダのサイズは 1 フレームのサイズに 120 を掛けた値に等しく、フレームのサイズが分かっている場合の見積もりに役立ちます。
ショートカットは作業中のウィンドウだけを撮影できますか。
いいえ。Take Screenshot は既定では全画面を撮影します。ウィンドウだけを撮影するには、別のソースが必要です。Temposhot では、Auto Capture で Windows ソースを選択するか、Action Capture で Specific Window を使います。
ショートカットでフレームをトリミングできますか。
ショートカット自体ではできません。Take Screenshot は全画面を保存します。Temposhot の Auto Capture には各フレームをトリミングする Framing オプションがあり、そのエディタには書き出し前に詳細を隠す Blur があります。実行後にこれらを使うか、Custom Area で固定領域を撮影します。
同じ作業を Terminal とオートメーションの両方から実行できますか。
はい。ただし、回数と待機時間のコピーは 1 つだけ保持します。2 つのコピーは、片方だけを編集すると値が食い違うため、変更のたびにタイミングのセクションのテストを実行します。
繰り返し撮影したスクリーンショットを完成した成果物にする
手順: Temposhot での 30 分のダッシュボード実行
以下の設定は、ショートカットの例を Auto Capture で再現します。記載の順に設定し、本番の実行の前に 3 フレームのテストを実行します。
Auto Capture の 3 フレームのテストは、Screenshots の停止条件を回数 3 にして実行します。そのため、全時間を待たずに 3 フレーム後にテストが終了します。3 つのフレームをダッシュボードと照合し、本番の実行では停止条件を Duration に変更します。カウントダウンは、Start を押した後にダッシュボードを前面に出す時間を与えます。そのため、ショートカットが各実行で必要とする手動の操作を置き換えます。
実行が始まると、フローティングツールバーに残り時間が表示されます。Finish Capture を使うと、実行を途中で終了し、保存済みのフレームは残ります。
ショートカットがウィンドウのソース、ページめくり、PDF または MP4 の書き出しを必要とする場合は、同じ作業を Auto Capture で設定するか、キャプチャプリセット から始めます。
shortcutsscreenshot-automationmacosworkflows
繰り返し撮影するスクリーンショットを、完成したデータに仕上げます
Temposhotは、タイマーまたはクリックごとに撮影し、結果をPDF、画像、ZIP、MP4で書き出します。
関連記事
- Mac で Automator を使って連続スクリーンショットを撮る方法Take Screenshot と Loop を使った Automator のスクリーンショット ワークフローを作成し、連番のファイルが必要な場合はシェルアクションを使用します。
- macOSのコマンドラインでスクリーンショットを自動化するmacOSのscreencaptureループで、全画面、固定領域、ページめくりのスクリーンショットを撮影する方法を、安全なファイル名とトラブルシューティングとともに説明します。
- 標準ツールで Mac のスクリーンショットを自動化する方法screencapture、Automator、Shortcuts を使って Mac のスクリーンショットを自動化する方法を説明します。権限の設定、安全なループの組み方、トラブルシューティングを扱います。
- Mac のスクリーンショット自動化とは何か?Mac でスクリーンショット自動化が何を意味するか、手動のスクリーンショットや画面収録とどう違うか、専用の撮影ワークフローがいつ必要になるかを説明します。