フォルダとファイル名で管理しているmp3ファイルから、iTunes & iPhone用のプレイリストを自動生成するシェルスクリプトを組んでみた。

 
フォルダとファイル名で管理しているmp3ファイルから、iTunes & iPhone用のプレイリストを自動生成するシェルスクリプトを組んでみた。

今まではmp3ファイルなんかの音楽ファイルは、Windowsマシンで管理していたけど、せっかく128GBのiPhone6 Plusを買ったので、全部の音楽ファイルを持ち運ぼう!
そう思ってiTunesで転送したら、文字化けしまくり…。&フォルダ管理できずに、mp3ファイルのID3タグが管理基準らしい…。
とりあえず、文字化けについては、Mp3tagというフリーソフトを使ってShift-JISからUTF-8に文字コードを変換したら、無事に表示された(^_^)/
http://www.gigafree.net/media/mu/mp3tag.html

問題は、数千曲もあるmp3ファイルがフォルダ分けも出来ず、ABC順あいうえお順に並んでいるだけという…。
mp3ファイルのID3タグも、最近のものならともかく、10年、15年前では入っていない事も多い…。
何百~何千曲もあるのに、手動でID3タグ打ち・プレイリスト作成なんて、絶対に無理(>_<) 調べてみると、どうやらiTunesのプレイリストはm3u形式(mp3ファイルのフルパスを並べただけのテキストファイル)らしいので、これならプログラムで何とかなりそう。 と思って調べてみたけど、イイ感じのソフトが見つからなかったので、自分でシェルスクリプトで組んでみた。わりと20-30行程度の簡単なSHで実現できた。 使い方:
1、mp3ファイルが入っているフォルダに、このシェルスクリプトファイルをダウンロードして置く。
https://gist.github.com/fddcddhdd/0026fcc44eeed71cca9c/download
2、アプリケーション→ユーティリティ→ターミナル.appを立ち上げる。
3、ダウンロードしたシェルスクリプトファイルをD&Dで実行させる。Permission deniedになったら、chmod 777 と入力してからD&Dして実行許可を与えてから実行する。
4、ターミナルから実行すると、シェルスクリプトより下の階層にあるmp3ファイルからプレイリストを生成する。(プレイリスト名は、親フォルダ名)
5、all_m3u.txt(サブディレクトリ以下の全音楽ファイルのリストファイル)とm3u_listフォルダが生成される。m3u_listの方をiTunesにD&Dすればプレイリストとして使えます(^_^)/

問題点:
1、ツリー構造(フォルダの中にフォルダの中に・・・。)は再現されず、音楽ファイルの親フォルダ名でプレイリストが生成される。iTunes上で、手動でプレイリストフォルダを使えば、ツリー構造も再現できるはず。
2、フォルダ名に半角スペースが入っていると、なぜかm3uファイル名が半角スペース→改行に変換されるけどitunes上では問題ないから、まあいいか・・・。

感想:
意外と簡単に出来た割には、似たような事をしている人を探しだせなかった・・・。もっといい方法とかあるのかな?
単純に、プレイリスト=m3uファイルという事が知れ渡っていないだけかもしれん(^_^;)