概要
Macで音楽ファイルをダブルクリックで追加していたのですが、なぜかiTunesやiPhoneで再生すると再生時間が短い事がありました。
対策としてm4aに変換して転送するとうまく行ったので手順を残します。
毎回VLC等で作業していましたが、面倒でしたのでAutomatorでファイルを右クリックしてiTunesに追加できるようにしました。
あと毎回メタデータを編集するのは面倒だったのでそれも自動でコピーするようにしています。
すごいニッチだと思うので需要はないかもですが、備忘録として残します。
やったけどだめだったこと
- iTunes上でmp3等に変換する。
手順
ffmpegをインストール
ffmpegでlibfdk_aacを利用するので以下のサイトを参考にインストールします。
インストールしている場合はアンインストール
brew uninstall ffmpeg
コンパイルオプションに対応した物をtap
brew tap homebrew-ffmpeg/ffmpeg
ライブラリごとインストール
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac
ffmpegにPATHを通す
~/.zshrcに以下を追加する。
export PATH=/opt/homebrew/bin:$PATH
.zshrcを再読み込み
source ~/.zshrc
Automatorの設定
Automatorでクイックアクションを選択
右クリックのメニューを表示する対象を設定
ワークフローが受け取る現在の項目:オーディオファイル
検索対象:Finder
※ ここは好みで設定してください。
シェルスクリプトの設定
左ペインのアクション→ライブラリ→ユーティリティ→シェルスクリプトの実行を右ペインにドラッグアンドドロップします。
入力の引き渡し方法は引数としてを選択します。
スクリプトを記述
以下のスクリプトを記述します。
/opt/homebrew/bin/ffmpeg -i "$@" -acodec libfdk_aac -c:v copy -ar 48000 -ab 320k -cutoff 20000 ${@%.*}.m4a
echo ${@%.*}.m4a
1行目
ffmpegで引数(受け取ったファイル)をm4aに変換しています。
/opt/homebrew/bin/ffmpeg
PATHを通したのにフルパスを書いていますが、スクリプト内でffpmegを認識してくれないのでこのように記述しています。
-i "$@"
"$@"で引数(右クリックで選択したファイルのフルパス)を入力ファイルに設定しています。
-acodec libfdk_aac -c:v copy -ar 48000 -ab 320k -cutoff 20000
aacに変換するためのオプションです。
アートワーク含むメタデータをいちいち書き換えるのが面倒だったので、メタデータのコピーを行っています。
2行目
echo ${@%.*}.m4a
次のアクションの引数に渡すため、標準出力へ変換後のファイルのフルパスを出力しています。
iTunesへ取り込み
左ペインのアクション→ライブラリ→ミュージック→ファイルを"ミュージック"に読み込むを右ペインにドラッグアンドドロップします。
追加先はライブラリにしていますが、好みのプレイリストに追加してください。
保存
ここまでできたら名前をつけて保存してください。
保存した名前が右クリックのメニューに表示されますのでわかりやすいやつがいいです。
あと一度保存したら名前を変更できないぽいので、複製して保存するときに名前をつけ直す必要があります。
もしいい方法があったら教えて下さい。
実行
うまくできていたらFinderでmp3等の音楽ファイルを右クリックするとクイックアクションに↓のように表示されますので、選択すると音楽ファイルと同じパスにm4aファイルが出力されiTunesにも追加されています。
まとめ
変換してAutomatorで実行するだけだから簡単だろうと思っていたのですが、試行錯誤してたら時間がかかってしまいました。
最初はm4aに変換するだけでやっていたのですが、メタデータもコピーしたいな、アートワークもコピーしたいなといろいろ便利にしようとして何度も作り直しました。
Automatorはあまり使わないのですが、なんとなく調べながら進めていたらでき優秀でしたのでもっと使っていきたいです