はばばばば

長くなりそうなことや取っておきたいことを記録します

音楽CDを複数の保存形式でインポートした後、一部の保存形式だけNASに退避させたかった

バックアップ用途などで音楽CDを複数の保存形式でインポートした時、ファイルはどうなっているのか

音楽CDをiTunesiPhone)で扱うとき、「バックアップのつもり」「インポートを何度もやるのも嫌」なのとで 普段使いの保存形式(HE-AACマスター用の Apple Lossless の両方でインポートしてるんですよ。

f:id:Mint0A0yama:20141222132137p:plain

f:id:Mint0A0yama:20141222132148p:plain

アルバム形式で見ると下のようになります。 Apple Lossless の方は(iPhone と同期しないように)インポート時に「選択を解除」しておいてます。

f:id:Mint0A0yama:20141222133419p:plain

iTunesのライブラリの保存先はローカルマシン(Macbook Air)にしているんですが、次第に容量を圧迫していくのでインポート作業時だったり気が向いた時にNASに退避させます。 コンテキストメニューで「Finder に表示」で保存先を確認すると、下のように同じアルバム同士で集まってるんですね。

f:id:Mint0A0yama:20141222135421p:plain

で、問題になるのが、どっちが Apple Lossless なのかすぐには区別が付かないこと。 大抵はファイルサイズや作成日時で推測できるんですけど、ファイルサイズはビットレート × 収録時間 だし、作成日時にしても再インポートしたり曲ごとにバラバラになるとよく分からなくなる。

f:id:Mint0A0yama:20141222135940p:plain

Finderのコンテキストメニューで確認できる情報も足りない。サンプルレートくらいでしか判別できない。

f:id:Mint0A0yama:20141222140513p:plain

結局明確に判断できるのはiTunes上で曲毎にリスト表示した時の「種類」くらいなんですよね。

退避作業を自動化した

で、*1ここ5年くらい保存形式を目で確認しながらNASに移動させる暖かみがある手作業を行っていたんですが、そもそもMacでは音楽フォーマットを確認できるコマンドが用意されてたんですね。

それなら自動化しようということで、とりあえずBashスクリプトで書きました。 本当は iTunes インポート時に保存形式に応じて保存先を変えて欲しいんですけど、iTunes プラグインを書くのも気が遠くなるし、他のどの方法も気が遠くなりそうだったので考えるのをやめました。

使い方としては

  1. Bashスクリプトを適当なところに置き
  2. スクリプト中の SRC(転送元のベースになるディレクトリ) と DST(転送先のベースになるディレクトリ) を環境に応じて書き換え *2
  3. ターミナル上で転送元にカレントディレクトリを移動し
  4. 実行する

だけです。

転送したい保存形式を変えたい場合は、事前に afinfoコマンド を実行・確認しながら FILETYPE を書き換えてください。

転送先によっては権限系の警告が出ますけど、転送は正しく行われてます。 とりあえず目的を満たすために適当に書いてあるんで --dry-run 的なものも何も無いんですけど、それなりに単純ですし自己責任の上で参考にしてください。

*1:HE-AACへの変換が採用されたのが iTunes 9(2009年) かららしいのでマジでそれくらいです。

*2:アーティスト毎のフォルダが作成されている場所を指定します。お互いが対になるような構成にしてください。