macOSのフォルダアクションでコンピュータを自動化する
(interfacecraft.online)- 繰り返し作業を人が直接行うのは非効率であり、自動化が必要
- たとえば、macOS標準の .MOV 動画を .MP4 に変換する作業が煩雑だった
- 従来はGUIの変換アプリを使っていたが、複数の手順を踏む必要があった
- これを解決するために、macOSのフォルダアクション(Folder Actions) を活用して自動変換システムを構築
- 追加で行った作業: 動画-to-GIF変換、画像-to-WebP変換、YouTube動画のダウンロード、Twitter動画のダウンロード、YouTube動画-to-MP3変換
フォルダアクションを使った自動変換
- 特定のフォルダにファイルをドロップすると、自動で変換処理が実行される
- 例:
- .MOV → .MP4 変換
- .JPG → .WEBP 変換
- TwitterおよびYouTube動画のダウンロード
- フォルダにファイルを入れるだけで変換が完了し、元ファイルも自動削除される
macOSフォルダアクションの設定方法
注意事項
- フォルダアクションを設定した後でフォルダ名を変更すると動作しない。
- フォルダ名を変更した場合は、アクションを再設定する必要がある。
設定手順
- ターミナルでフォルダを作成
- Automatorを起動して新しい "Folder Action" を作成
- "Get Selected Finder Items" と "Run Shell Script" を追加
- Pass input: "as arguments" に設定
- 変換スクリプトを入力
- 例: .MOV → .MP4 変換
for f in "$@"; do /opt/homebrew/bin/ffmpeg -n -loglevel error -i "$f" -vcodec libx264 -crf 23 -preset ultrafast -tune film "/Users/alexander/Library/Mobile\ Documents/com\~apple\~CloudDocs/Downloads/$(date +"%Y_%m_%d_%I_%M_%p_%s").mp4"; rm -f "$f" done - 保存して終了
- フォルダに .MOV ファイルをドラッグ&ドロップすると自動変換が実行される
- 実行中はメニューバーに ギアアイコン が表示される。
追加のフォルダアクション例
動画 → GIF 変換
for f in "$@"; do
/opt/homebrew/bin/ffmpeg -n -loglevel error -i "$f" -vf "fps=18,scale=720:-1:flags=lanczos" "/Users/alexander/Library/Mobile Documents/com~apple~CloudDocs/Downloads/$(date +"%Y_%m_%d_%I_%M_%p_%s").gif";
rm -f "$f"
done
画像 → WEBP 変換
for f in "$@"; do
/opt/homebrew/bin/cwebp -q 70 "$f" -o "/Users/alexander/Library/Mobile Documents/com~apple~CloudDocs/Downloads/$(date +"%Y_%m_%d_%I_%M_%p_%s").webp";
rm -f "$f"
done
YouTube動画のダウンロード
ブラウザからこのフォルダにURLをそのままドラッグ&ドロップするとダウンロードが始まる
for f in "$@"; do
url=$(grep -o '<string>.*</string>' "$f" | sed 's/<string>\(.*\)<\/string>/\1/')
if [ -n "$url" ]; then
/opt/homebrew/bin/yt-dlp -P "~/Downloads" "$url"
if [ $? -eq 0 ]; then
rm -f "$f"
fi
fi
done
Twitter動画のダウンロード
for f in "$@"; do
url=$(grep -o '<string>.*</string>' "$f" | sed 's/<string>\(.*\)<\/string>/\1/')
if [ -n "$url" ]; then
/opt/homebrew/bin/yt-dlp -P "~/Downloads" "$url"
if [ $? -eq 0 ]; then
rm -f "$f"
fi
fi
done
YouTube → MP3 変換
brew install yt-dlp; brew install ffmpeg
for f in "$@"; do
url=$(grep -o '<string>.*</string>' "$f" | sed 's/<string>\(.*\)<\/string>/\1/')
if [ -n "$url" ]; then
/opt/homebrew/bin/yt-dlp -x --audio-format mp3 --audio-quality 0 --ffmpeg-location /opt/homebrew/bin/ffmpeg -P "~/Downloads" "$url"
if [ $? -eq 0 ]; then
rm -f "$f"
fi
fi
done
フォルダアクションの変更方法
- フォルダアクションを修正するには フォルダを右クリック → "Folder Action Setup" を選択
- 保存されたすべてのアクションは次のパスにある:
Macintosh HD / Users / YourName / Library / Workflows / Applications / Folder Actions/ - この仕組みを活用すれば、それぞれのフォルダをターミナルコマンドのインターフェースに変換できる
- そのおかげで、デスクトップがはるかに有用な作業空間になる
7件のコメント
うわあ、Windows向けのものはないでしょうか?
Windows向けの
Watch 4 Folderというツールが、まったく同じことをしてくれます。特定のフォルダでファイルやフォルダが作成・変更・削除されると、プログラムやスクリプトを実行してくれます。
https://leelusoft.blogspot.com/p/watch-4-folder-25.html
無料版は1つのフォルダだけを監視し、有料版は $4.99 です。
Facebook製のオープンソース
Watchmanもあります。Windows / Mac / Linux のすべてに対応しています。もちろんGUIではないので、上のツールよりは少し不便です。
https://facebook.github.io/watchman/
おお、動画保存は本当に便利そうですね。まるで本当のコンピューターのように使っている感じです
感覚的にはLinux向けのものもありそうですが、1つ作ってみてもよさそうです。
これは面白そうですね(笑)
おお…試してみないとですね!
知らなかったけど、これはなかなかいいですね。