2017.06.14
iTunesはライブラリ内に膨大な数の楽曲やビデオといったメディアファイルが含まれていても、高速に検索や並び替えを行うことができる優れた管理ソフトとしても高い評価を得ています。では、この快適さを、どういった仕組みで実現しているのでしょうか。
iTunesを支えるコア技術
iTunesのデータは通常、自分のホームにある[ミュージック]フォルダの中に[iTunes]フォルダを作成し、その中で管理を行っています。ソフトを起動して表示されるウインドウ内の情報はすべて「iTunes Library.itl」というデータベースファイルから読み出されています。
楽曲ごとの名前やアルバムのタイトル、アーティスト名、再生時間、トラックナンバーといった固有の情報は「ID3」規格によって定義されており、それぞれのファイルにメタデータとして埋め込まれています。iTunesはファイルの読み込み時にこの情報を参照してデータベースに追記します。
しかし、音楽CDからリッピングして読み込む場合にはこの情報が含まれていません。そこでiTunesではトラックデータをインターネットで提供するデータベース「CDDB」で検索を行い、マッチするものを変換したファイルのメタデータ領域とiTunesのデータベースに書き込んでいます。
特徴的なのは、「iTunes Library.itl」には音楽やビデオといったメディアそのものは含まれておらず、データベースにはそれぞれどこに保存されているのかを示す「ファイルパス」だけが記録され、実際に再生するときだけファイルにアクセスしています。
また、iTunes上でメタデータの変更を行った場合にはライブラリだけでなく、オリジナルファイルの中にあるID3メタデータにも同時に書き込みを行っています(再生回数やiTunesへの追加日といったID3タグに定義にないメタデータなどはライブラリ内のみに保存されています)。
これによってデータベースのサイズは最小限に抑え、検索に必要な処理負荷も少なくすることで高速な操作体験が実現されています。この手法は仮想ライブラリ(Virtual Library)と呼ばれ、iTunesだけでなくiMovieや写真、ガレージバンドといった私たちが普段よく使うソフトにも採用されています。