daapdでAACのメタデータを扱う

2004年初めにこんなページを書いたものの、家では子供がうるさくてゆっくり音楽聴くことができないため、せっかく構築した環境がほったらかしになってました。

ところが、嫁が珍しく「聞きたい音楽がある」と言うので、久々にiTunesサーバを復活させることに。で、1年半前に入れた daapd では、おそらく iTunes5 には対応してないだろうし、 iTMS-J で購入した AAC のメタデータを扱うことはできないだろう、ということで、環境再構築することにしました。

まず最初に、 daapd よりも mt-daapd の方がよさげな感じなので、こちらを入れてみた(うちは Slackware なのでソースからコンパイル)ものの、HTTPリクエストを受け取るとSIGSEGVでダウン。straceで追っかけてみたものの、自分のスキルでは原因分からず。

なので、次は daapd にトライ。が、make が通らない…ので、gcc を 2.95.3 から 3.4.4 にアップグレードして再トライ。これで make が通って、ちゃんと iTunes サーバとして機能するようになった。が、このままでは AAC のメタデータが扱えないので、iTMS-J で購入した曲が聴けない。で、結局は以下の手順で環境構築することで、AAC もばっちりになりました。

SDLの入手とインストール

SDL (Simple Directmedia Layer) を入手してインストールします。これは、次に述べるmpeg4ipのために必要です。

俺は SDL-1.2 のダウンロードサイトからソースを持ってきてコンパイルしました。

mepg4ipの入手とインストール

AACのメタデータハンドリングのために、 mpeg4ip を入手してインストールします。全てインストールする必要はなく、mp4v2 だけインストールすれば良いです。手順は daapd に付属の README.mpeg4ipに記述されていますが、実際のパスと異なる部分が一部あるので、修正したものを以下に記します。

tar xvfz mpeg4ip-1.3.tar.gz
cd mpeg4ip-1.3/
./bootstrap --disable-server
cp mpeg4ip_config.h /usr/local/include/
cp include/mpeg4ip_version.h /usr/local/include
cp include/mpeg4ip.h /usr/local/include/
cd lib/mp4v2/
edit Makefile:
    replace the line "SUBDIRS = . test util"
    with "SUBDIRS = ."
make
make install

daapdの入手とインストール

で、本命の daapd の入手とインストールです。

俺が入れたのは 0.2.4a というバージョンなのですが、このバージョンは configure スクリプトがなくて、いきなりmakeを実行するようになっています。ただし、ソースから展開してそのまま make しても、 mpeg4ip は利用しないようになっているので、makefile の「MPEG4_ENABLE = 0」を「MPEG4_ENABLE = 1」に書き換えてから、make; make install します。

これで完了です。daapdを起動してiTunesからアクセスしたところ、mp3ファイルだけではなく、iTMS-Jで購入したAACファイルのメタデータもしっかりとiTunes上に表示されています。日本語もOKだしアートワークもちゃんと表示されてる。よしよし。