大量のオーディオファイルをmp3へ一括変換。Macショートカットの作成方法

MacのショートカットアプリとDockerを組み合わせて、オーディオファイルをFinder上で右クリックするだけで一括でmp3へ変換するショートカットを作りました。

Macでは標準アプリの「ミュージック」を使用することでさまざまなフォーマットのオーディオファイルをmp3に変換することができます。 しかし都度アプリを開いてファイルを登録する作業が必要なので積み重なるとなかなか面倒です。

そんな時はMacのショートカットアプリと、変換作業を代わりにやってくれる「Docker」を組み合わせることで、 Finder上で右クリックするだけのスマートな変換フローを作ることができます。

準備:Docker Desktopをインストールする

Dockerは、アプリケーションを動かすための作業部屋(コンテナ)を、必要な時だけサッと用意して使えるツールです。
今回使うmp3変換のツールは、本来ならターミナルでコマンドを打って、Macにインストールする必要がありますが、Dockerを使うことでそのツールはコンテナの中にだけ用意されるので、Mac本体に何かをインストールする必要がなくなります。

MacでDockerを使うなら、Docker Desktopをインストールするのが手っ取り早いです。(個人利用は無料) まずはこちらからDocker Desktopをダウンロードし、インストールしておきましょう。
(初回起動時にアカウントでのサインインを求める画面が表示されますが、スキップして構いません。)

インストールしたら、Docker Desktopをバックグラウンドで起動しておくだけでOKです。ショートカットを使うときも、起動したままにしておきます。

Dockerを使ったmp3変換ショートカットの作り方

まずはショートカットアプリを開き、右上の+ボタンから新規ショートカットを作成します。

あとは右サイドメニューの検索窓からアクションを検索して、以下の順番で追加していきます。

1. Finderで選んだファイルを受け取る

  • 「Finderで選択されたファイルを取得」を追加
  • 「通知を表示」を追加し、変換開始のメッセージを入力

2. Dockerでmp3に変換する

  • 「シェルスクリプトを実行」を追加し、以下を設定
  • シェル:「zsh」を選択
  • 入力:「ファイル」を選択
  • 入力を渡す方法:「引数として」を選択
  • スクリプトの入力欄に、以下をコピーして貼り付け
for f in "$@"
do
  dir=$(dirname "$f")
  base=$(basename "$f")
  name="${base%.*}"
  docker run --rm -v "$dir":/data linuxserver/ffmpeg:9.0-cli-ls78 \
    -y -i "/data/$base" "/data/$name.mp3" 2>&1
done

3. 変換が終わったら通知する

  • 「通知を表示」を追加し、完了のメッセージを入力

4. Finderの右クリックメニューから使えるようにする

右サイドメニューの詳細から、以下の項目にチェックを入れます。

  • クイックアクションとして使用
  • Finder

これで、Finderの右クリックメニューから実行できるmp3変換のショートカットが完成です。

完成イメージ

ショートカットの完成イメージ

使い方はFinderで右クリックするだけ

Finderで複数のwavファイルを選択して右クリック→クイックアクション→作成したショートカット名を選びます。 初回はイメージのダウンロードが必要なので少し時間がかかります。

Finderの右クリックからクイックアクションを実行

選んだファイルすべてがmp3に変換され、同じフォルダ内に出来上がりました。

クイックアクションでのmp3変換が完了

Docker + FFmpegによる変換

Dockerにはイメージという、動作環境を定義しておけるテンプレートみたいな機能があり、この仕組みを使うことによって、一時的で再現可能な動作環境を利用することができます。
自身でDockerイメージを作成することもできますが、今回はDocker Hubに公開されているFFmpegを内包した「linuxserver/ffmpeg」というイメージを利用しています。

FFmpegは動画や音声のさまざまな処理に使える無料のコマンドラインツールです。 今回はオーディオファイルのフォーマット変換に利用しましたが、他にも動画・音声の圧縮やリサイズ、トリミングなど動画・音声ファイルに係るさまざまな処理がおこなえる強力なオープンソースのソフトです。

完了件数を通知するパターンも作成してみた

「数える」アクションで選択したファイル数を取得し、「通知を表示」アクションに変数を追加するだけです。

「数える」で取得したファイル数を、開始と完了の通知に表示するショートカット

もう少し凝った作りにするなら、「各項目を繰り返す」アクションを使ってファイルごとに「n/N件完了」のような通知を出すこともできます。ただワークフローがやや複雑になるため今回はシンプルさを優先して、処理前後に通知を出すだけの構成にしました。

まとめ

一度設定してしまえば、あとはFinderで右クリックするだけです。地味な作業ですが、積み重なると意外に時間を取られるものなので、自動化しておくと日々のちょっとしたストレスを減らすことができます。

同じような繰り返し作業があれば、ぜひショートカットアプリを活用してみてください。