iTunesなんていらん。
根本的に何がしたいかというと、
「iPod shuffleをクレイドルに設置してコマンド1つ実行すると、ディスク内の大量の音楽ファイルからランダムにぶち込んでくれる」
ってのがやりたかった。んで、ウチではFreeBSDの鯖が常時稼動して、音楽ファイルは鯖にあるのです。ネットワーク介するとか無駄ジャン。
つーわけで、さくっと作ってみた。CUIによるiPod操作自体はGNUpodを使用。それから、ディスク内のファイルのリストアップは別にやってあることにする。ウチではローカルでの全曲再生のために
find /path/to/music_archive -name “*.mp3″ > playlist
とかやってリストを作ってあるので流用。mp3ファイルのフルパスが1行に1つずつ書かれているだけのリストです。
基本的な処理は以下の通り。
- iPodの中のファイルをごっそり消去。
- ファイルリストを配列に読み込み、シャッフル。
- シャッフルされたリストを先頭からなめながらファイル容量を計算し、何曲入るかを確認。
- GNUpodの初期化処理(gnupod_INIT.pl)。shuffle内データベースの初期化とかしてくれるらしい。
- GNUpodの曲追加処理(gnupod_addsong.pl)。addsong自体が複数曲を指定できるっぽいけど、まあどうでもいいので1つずつ処理。gnupod_addsong.plはファイルを転送しつつshuffle内のデータベースを書き換えるらしい。
- GNUpodのデータベース更新処理(mktunes.pl)。これでgnupod_addsong.plの結果が再生時に反映されるって感じみたい。
まぁかなーり適当だけど、うまく動いてるっぽい。初期化処理が一回ユーザの入力を要求してくるんだけど、Enter押せばいいだけなので放置中。
どうせ使う人がいるとは思わないんだけど、同じような利用方法をしてみたい変態のために怪しいスクリプトを添付しておきます。使うときは自己責任で。拡張子はtxtだけどperlスクリプトだよ。