音楽CDを複数の保存形式でインポートした後、一部の保存形式だけNASに退避させたかった
インポート後に任意で実行してNASなどのバックアップ先に移動させるBashスクリプトを書いた。本当はインポート時に自動で勝手に保存先を変えてほしいが致し方ない…。これでもだいぶ効率良くなる。
— アオヤマ ミント (@MintoAoyama) 2014, 12月 20
バックアップ用途などで音楽CDを複数の保存形式でインポートした時、ファイルはどうなっているのか
音楽CDをiTunes(iPhone)で扱うとき、「バックアップのつもり」「インポートを何度もやるのも嫌」なのとで 普段使いの保存形式(HE-AAC)と マスター用の Apple Lossless の両方でインポートしてるんですよ。
アルバム形式で見ると下のようになります。 Apple Lossless の方は(iPhone と同期しないように)インポート時に「選択を解除」しておいてます。
iTunesのライブラリの保存先はローカルマシン(Macbook Air)にしているんですが、次第に容量を圧迫していくのでインポート作業時だったり気が向いた時にNASに退避させます。 コンテキストメニューで「Finder に表示」で保存先を確認すると、下のように同じアルバム同士で集まってるんですね。
で、問題になるのが、どっちが Apple Lossless なのかすぐには区別が付かないこと。 大抵はファイルサイズや作成日時で推測できるんですけど、ファイルサイズはビットレート × 収録時間 だし、作成日時にしても再インポートしたり曲ごとにバラバラになるとよく分からなくなる。
Finderのコンテキストメニューで確認できる情報も足りない。サンプルレートくらいでしか判別できない。
結局明確に判断できるのはiTunes上で曲毎にリスト表示した時の「種類」くらいなんですよね。
退避作業を自動化した
で、*1ここ5年くらい保存形式を目で確認しながらNASに移動させる暖かみがある手作業を行っていたんですが、そもそもMacでは音楽フォーマットを確認できるコマンドが用意されてたんですね。
それなら自動化しようということで、とりあえずBashスクリプトで書きました。 本当は iTunes インポート時に保存形式に応じて保存先を変えて欲しいんですけど、iTunes プラグインを書くのも気が遠くなるし、他のどの方法も気が遠くなりそうだったので考えるのをやめました。
使い方としては
- Bashスクリプトを適当なところに置き
- スクリプト中の SRC(転送元のベースになるディレクトリ) と DST(転送先のベースになるディレクトリ) を環境に応じて書き換え *2
- ターミナル上で転送元にカレントディレクトリを移動し
- 実行する
だけです。
転送したい保存形式を変えたい場合は、事前に afinfoコマンド を実行・確認しながら FILETYPE を書き換えてください。
転送先によっては権限系の警告が出ますけど、転送は正しく行われてます。 とりあえず目的を満たすために適当に書いてあるんで --dry-run 的なものも何も無いんですけど、それなりに単純ですし自己責任の上で参考にしてください。