61 ポイント 投稿者 GN⁺ 2025-03-05 | 7件のコメント | WhatsAppで共有
  • 繰り返し作業を人が直接行うのは非効率であり、自動化が必要
  • たとえば、macOS標準の .MOV 動画を .MP4 に変換する作業が煩雑だった
    • 従来はGUIの変換アプリを使っていたが、複数の手順を踏む必要があった
    • これを解決するために、macOSのフォルダアクション(Folder Actions) を活用して自動変換システムを構築
  • 追加で行った作業: 動画-to-GIF変換、画像-to-WebP変換、YouTube動画のダウンロード、Twitter動画のダウンロード、YouTube動画-to-MP3変換

フォルダアクションを使った自動変換

  • 特定のフォルダにファイルをドロップすると、自動で変換処理が実行される
  • 例:
    • .MOV → .MP4 変換
    • .JPG → .WEBP 変換
    • TwitterおよびYouTube動画のダウンロード
  • フォルダにファイルを入れるだけで変換が完了し、元ファイルも自動削除される

macOSフォルダアクションの設定方法

注意事項

  • フォルダアクションを設定した後でフォルダ名を変更すると動作しない。
  • フォルダ名を変更した場合は、アクションを再設定する必要がある。

設定手順

  1. ターミナルでフォルダを作成
  2. Automatorを起動して新しい "Folder Action" を作成
  3. "Get Selected Finder Items" と "Run Shell Script" を追加
    • Pass input: "as arguments" に設定
  4. 変換スクリプトを入力
    • 例: .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  
    
  5. 保存して終了
  6. フォルダに .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件のコメント

 
jwseo 2025-03-08

うわあ、Windows向けのものはないでしょうか?

 
xguru 2025-03-09

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/

 
kipsong133 2025-03-07

おお、動画保存は本当に便利そうですね。まるで本当のコンピューターのように使っている感じです

 
halfenif 2025-03-06

感覚的にはLinux向けのものもありそうですが、1つ作ってみてもよさそうです。

 
whitelips 2025-03-06

これは面白そうですね(笑)

 
lhc0506 2025-03-05

おお…試してみないとですね!

 
arthurk 2025-03-05

知らなかったけど、これはなかなかいいですね。