Yuzu Apps

AppleScript ファイル変換をショートカット経由で実行

更新日:

AppleScript ファイル変換:Yuzu連携

結論

AppleScript ファイル変換は、Appleのショートカット経由でYuzu Dragを利用できます。YuzuはProcess FilesとRun Presetを公開していますが、直接変換するAppleScript辞書は現在ありません。tell applicationの変換命令を作り上げたり、ホイールのキー操作を再現したりせず、実際のショートカットを設定し、明示的なファイル入力を渡してmacOSのshortcutsコマンドで呼び出してください。

処理手順と保存先はショートカットが担当します。AppleScriptは入力を選び、それを起動できます。クリックの再現を並べるより、内容を確認しやすい自動化になります。

まずmacOS標準の自動化から

簡単な画像変換やサイズ変更なら、ショートカットの標準画像アクションを先に試してください。明示的な入力を設定し、標準処理と保存アクションを追加します。手動で実行して結果を確認してからAppleScriptを加えましょう。

AppleScriptは、すでに大きなワークフローの一部である場合や、既存ショートカットを呼ぶ前にファイル選択を行いたい場合に便利です。複数画像を処理するだけで必須になるわけではありません。Finderクイックアクションなら、少ないスクリプトで同様の入口を作れることもあります。

一度だけの変換ならプレビューで開いて書き出すだけでも十分です。単純な書き出しの前提としてスクリプトを加えず、頻度に合う方法を選んでください。

Yuzuが公開する機能

Process FilesにはConvert to JPEG、Convert to PNG、Convert to WebP、Resize imageがあります。ファイルを受け取り、次のショートカットアクションへ出力ファイルを返します。Run Presetは対応する保存済みローカル変換や画像チェーンを受け取り、同じくファイルとして結果を返します。

これらはショートカットで使えるApp Intentsであり、直接のAppleScriptオブジェクトモデルではありません。ホイールのラベルがスクリプト命令だったり、保存プリセットの表示名がYuzu自身の理解するコマンド引数だったりすると考えないでください。

Run Presetは対話、共有、元ファイル変更、クリップボードへのアクセスを要する設定を除外します。実行時に設定シートや保存先選択が必要なら、この非対話型経路には適しません。パラメータとFinder設定はショートカットのリファレンスを参照してください。

スクリプトより先にショートカットを作る

Prepare imageという名前で作成・保存します。これは自分で作る例の名前であり、Yuzuに付属するショートカットではありません。

  1. ショートカットにファイル入力の経路を用意し、処理のFilesに「ショートカットの入力」を使います。
  2. Yuzu DragのProcess Filesを追加します。
  3. 最初の試用ではConvert to PNGを選びます。
  4. 返されたファイルを受け取る保存アクションを追加します。
  5. 明示的な試用の保存先と上書き動作をそのアクションで設定します。
  6. 適切なローカル画像で手動実行し、保存結果を確認します。

対応する保存済みレシピがあれば、後でRun Presetに置き換えられます。最初は入力・処理・保存のどこで失敗したか分かる規模にとどめます。

設定済みショートカットをAppleScriptから呼ぶ

Prepare imageを作り、手動実行で動いたら、このスクリプトで1ファイルを選び、パスを渡せます。

set sourceFile to choose file with prompt "処理する画像を選択してください"
set shortcutName to "Prepare image"
set sourcePath to POSIX path of sourceFile
set runCommand to "/usr/bin/shortcuts run " & quoted form of shortcutName & " --input-path " & quoted form of sourcePath
do shell script runCommand

引用処理は重要です。Finderのパスやショートカット名には空白があり、単純な文字連結ではシェル引数の意味が変わる場合があります。quoted form ofは名前とパスを個別の引数として渡し、その文字をシェル構文として解釈させません。

このスクリプトは意図的に保存先を推測せず、戻り値のパスも解析しません。保存アクションが出力場所を決めます。保存されたファイルを直接確認してください。名前を変えたらshortcutNameも完全一致させます。

アクセスと問題の切り分け

スクリプト、ショートカット、処理アプリはmacOSのアクセス確認に遭遇する場合があります。意図したファイルと保存先を許可してください。異なるホストアプリからのスクリプトは、手動実行したショートカットとは異なる認可状態になる場合があります。

コマンドがショートカットを見つけられなければ、保存名とアプリ内の存在を確認します。Yuzuに届かなければFiles接続、処理後に目的フォルダに出力がなければ保存アクションを確認してください。これらをクリック遅延で置き換えないでください。

この起動方法ではFinderの現在の選択を自動継承しません。例は選択した1ファイルを明示的に渡します。一括処理では適切な入力設定で対象一式を渡す必要があり、Finderを開いて選ぶだけでコマンド入力が変わるとは考えないでください。

手動操作とは区別する

手動では画像をドラッグし、⇧でConvertまたは⌘でToolsを開き、区画にドロップします。さらに⌘でActionsを開きます。直接作業には便利ですが、スクリプトのインターフェイスではなく、自動化で再現する必要もありません。

画像ツールでは対応処理を、プリセットのリファレンスでは再利用設定を説明します。保存結果を確認し、周辺の自動化が意図した結果を使うと確認するまで元ファイルを残してください。

関連リンク

よくある質問

Yuzu Dragに直接ファイル変換を命令できますか?

現在のアプリソースには直接変換するAppleScript辞書はありません。ショートカット用アクションを使い、設定済みショートカットを呼び出してください。

AppleScriptでドラッグを再現する必要がありますか?

いいえ。Process Filesか対応するRun Presetでショートカットを作り、ファイルを明示的に渡してスクリプトから呼び出します。