swf→mp3を抽出するドロップレット

そういえば、新しいおべんと箱になってからswfからmp3を抽出する環境がなかったということでセッティングした。以前はFlaexを使っていたが、SnowReopardまで対応のようでLionさんでは使えなかった。

そこで別のソフトも探しているとコマンドラインでswfを扱うSWFTOOLSを発見し、そのswfextractを使えば抽出ができるそうなのでインストールした。

SWFTOOLSをインストールするためにはMacPortsというパッケージシステムが必要らしい。さらにMacPortsをインストールするためにはXcodeとX11が必要だけど、すでに入っているので今回は省略。

1.MacPortsのインストール

XcodeとX11が入った上でMacPorts公式サイトからパッケージをダウンロードしてインストール。(ここからインストールする環境とパッケージの種類(pkgやtar)を選べるみたい

珍しく一発でインストール完了。終わったら以下のコマンドで環境変数を更新。

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:/opt/local/man:$MANPATH
source ~/.profile

次にMacPortsがインストールされているか、以下コマンドでバージョンの確認。
「version: x.x.x」と表示されていたらOK。

port version

2.SWFTOOLSのインストール

以下のコマンドでMacPortsを使ってインストール。
これが結構完了まで時間が掛かった、20〜30分ぐらいかな。

sudo port install swftools

インストールが終わったら以下のコマンドでswfからmp3を抽出できるようになる。

swfextract -m [抽出するswfファイル] -o [抽出されたmp3ファイル]

ちなみに「-m」のオプションを「-j」でjpg画像、「-p」でpng画像が抽出できる。
詳しくは公式サイトのドキュメントから

3.Automatorでmp3抽出のドロップレットを作成する

これでmp3の抽出ができるようになったけど、わざわざコマンドラインから変換させるのは面倒なので、Automatorでファイルをドラッグアンドドロップすると変換してくれるアプリケーションを作った。
#ドラッグアンドドロップさせるアプリのことをドロップレットというのか、知らなかった。。。

作り方はとても簡単で、新規アプリケーションを選び「シェルスクリプトを実行」をアクションに追加。
スクリプトの内容は以下の通り。

for f in "$@"
do
  if [ ${f##*.} = "swf" ];
    then
      cd $(dirname "$f")
      /opt/local/bin/swfextract -m "$(basename "$f")" -o "$(basename "$f" .swf).mp3"
  fi
done

ファイルの拡張子がswfだったら、mp3抽出のswfextractコマンドを実行して同名のmp3ファイルを作成する仕組み。
「swftract」コマンドだけではなぜかAutomatorがコマンド認識してくれないため、「/opt/local/bin/swfextract」とフルパスにする。

これで作成したアプリケーションにswfファイルをドラッグアンドドロップすると、、、できた!
複数ファイルでもできてる!!
めでたし、めでたし。

今回のセッティングで以下のサイトを参考にさせていただきました。どうもありがとうございます。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>