みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

iTunes Libraryが崩壊したので修復した

iTunesライブラリーが崩壊してお気に入りのプレイリストが消失してしまったので,修復しました,というお話です.同じように困っている人がいれば参考になるかもしれませんし,ならないかもしれません.

環境

  • iTunes 12.6.1
  • MacOS 10.12.5
  • iTunes Match に加入
  • Apple Music に非加入

原因究明

ローカル環境で完結していれば,TimeMachineから崩壊する前の "iTunes Library.itl" というファイルを復元すれば修復することが簡単にできます.Optionキーを押しながらiTunesを起動して復元したファイルをライブラリーとして指定すればよいだけです.

実際,みーもこの方法を試みましたが,修復しても,すぐにまた崩壊してしまうという現象が起きました.

試行錯誤の末,iTunes Matchが崩壊しているということが分かりました.別のパソコンに新規のiTunes Libraryを作成してiTunes Cloud Music Library (以下iCML) を有効にすると,崩壊したデータが作成されることが分かりました.

例えば,以下のロード・オブ・ザ・リングのサウンドトラックには,星の数で評価をしていましたが,iCMLのデータからは失われているようでした.

f:id:atsuhiro-me:20170704004607p:plain:w300

iCMLのリセット

iCMLをリセットするには,ライブラリーの曲を全選択してライブラリーから消去を行えばよいのですが,iCMLの方が優先されて復活します.そこで,別のパソコンに新規のiTunesライブラリーを作成し,iCMLを有効にして同期を行ってから削除を行う(こうすることで更新日時を最新にすることができてローカルでの操作が優先される)ことにしました.

f:id:atsuhiro-me:20170704005232p:plain:w300

曲数が5000を超える場合,一度に削除を行うとエラーが発生するようで,曲が復活しました.4000曲毎に分けて,ローカルで削除→iCMLを同期→削除されたかを確認を繰り返しました.

新規のライブラリーでiCMLを有効にしても以下のように0曲のままならばリセットは成功です.

f:id:atsuhiro-me:20170704005454p:plain:w300

iCMLに以前のライブラリーを新規追加

iCMLがリセットできたら,TimeMachineから復元したiTunes Library.itlファイルを読み込みます.すると,iCMLがリセットされているので,以前の曲はRemoved(削除済)と表示されます.

f:id:atsuhiro-me:20170704005839p:plain:w300

曲を全選択し,iCMLに追加します.

f:id:atsuhiro-me:20170704005940p:plain:w300

以上で,以前のライブラリーをリセットしたiCMLに追加でき,すべてのデバイスの音楽情報が復元されました.

今回の原因

みーのライブラリーは7年前から上書きを重ねていたので,何らかの不整合が起きてiCMLのデータがおかしくなったのかもしれません.