jimaoka blog

ライトなインフラエンジニアです

iTunesサーバの構築 (Centos7)

いままで、自宅のSMBに音楽ファイルを置いて、必要な物はMacbookに落としてきてiTunesで管理するという方式をとっていました。

外でMacbookを使って音楽も聞かないし、容量が圧迫されるし、なんだかなぁと思っていたところ、iTunesサーバなるものがあると知り、構築してみました。

OSなど
OS: Centos 7.1
mt-daapd 0.2.4-1

調査

調べたところ、DAAP(Digital Audio Access Protocol)サーバを構築する方法としては、

  • firefly(mt-daap)
    • これで作っている例が多い
  • forked-daapd
    • mt-daapdからの派生らしい(ubuntuだと簡単に入りそう?)

を使う方法があるらしい。mt-daapdの記事がよく引っかかるが、forked-daapdの方が新しいらしい。(ほとんどUbuntu)

この記事を見るとforked-daapdをCentOSに入れているが、色々と面倒そう。

SilverHawk: Finally, the How-To for forked-daapd on CentOS 6.2 64 Bit

ということで、今のところCentOSではfireflyで構築したほうがいいっぽいので、fireflyでいきます。

インストール

結局これもyumに存在しないため、SRPMからのインストールになります。

### 必要パッケージのインストール
% sudo yum install rpm-build gcc make sqlite avahi-compat-howl avahi-compat-howl-devel sqlite-devel libid3tag libid3tag-devel --enablerepo=epel
### SRPMをダウンロード
% wget http://sourceforge.net/projects/mt-daapd/files/mt-daapd/0.2.4/mt-daapd-0.2.4-1.src.rpm/download -O mt-daapd-0.2.4-1.src.rpm
### 一度SRPMを展開
% rpm -ivh mt-daapd-0.2.4-1.src.rpm
### SPECファイルを編集 (howlの依存, howlのインクルードパスを修正)
% vim ~/rpmbuild/SPECS/mt-daapd.spec
- Requires: libid3tag gdbm howl
+ Requires: libid3tag gdbm avahi-compat-howl
- ./configure --prefix=$RPM_BUILD_ROOT/usr --enable-howl --with-howl-includes=/usr/include/howl-0.9.8
+ ./configure --prefix=$RPM_BUILD_ROOT/usr --enable-howl --with-howl-includes=/usr/include/avahi-compat-howl
### SRPMをビルド
% rpmbuild -bb --clean ~/rpmbuild/SPECS/mt-daapd.spec
### mt-daapdのインストール
% sudo yum install rpmbuild/RPMS/x86_64/mt-daapd-0.2.4-1.x86_64.rpm

mt-daapd.confがないので、ソースから取得。

### mt-daapdを開始 (mt-daapd,confが存在しない)
% sudo systemctl start mt-daapd
% sudo systemctl status mt-daapd
...
1129 19:26:44 local-pc mt-daapd[14837]: Error reading config file (/etc/mt-daapd.conf)
...
### ソースを解凍
% tar xvzf rpmbuild/SOURCES/mt-daapd-0.2.4.tar.gz -C ~/rpmbuild/SOURCES
### 設定ファイルをコピー
% sudo cp ~/rpmbuild/SOURCES/mt-daapd-0.2.4/contrib/mt-daapd.conf /etc
### 設定ファイルを編集
% sudo vim /etc/mt-daapd.conf
- mp3_dir       /mnt/mp3
+ mp3_dir       /media/touro/Music/myMusic
- #logfile /var/log/mt-daapd.log
+ logfile /var/log/mt-daapd.log
### ファイアウォール開放
% sudo firewall-cmd --add-port=3689/tcp --zone=public --permanent
% sudo firewall-cmd --reload

起動

起動する際にmp3ファイルを全部読みに行くので、時間がかかると起動に失敗するが、ちゃんと動いるっぽいです。

### 起動
% sudo systemctl start mt-daapd
Starting mt-daapd (via systemctl):  Job for mt-daapd.service failed. See 'systemctl status mt-daapd.service' and 'journalctl -xn' for details.
                                                           [失敗]
### ログファイルを見る
% cat /var/log/mt-daapd.log
2015-11-29 20:10:39: Starting signal handler
2015-11-29 20:10:40: Loading playlists
2015-11-29 20:10:40: Initializing database
2015-11-29 20:10:40: Starting mp3 scan
2015-11-29 20:10:41: Starting web server from /usr/share/mt-daapd/admin-root on port 3689
2015-11-29 20:10:41: Registering rendezvous names
2015-11-29 20:10:41: Scanned 2821 songs in  2 seconds
### psで見てみる
% ps auxww | grep mt-daapd
mt-daapd 15535  0.0  0.0 109864  1336 ?        Sl   20:10   0:00 mt-daapd
mt-daapd 15536  0.3  0.2 335180  9504 ?        Sl   20:10   0:02 mt-daapd

起動したらちょっと管理ページにアクセスしてみます。
初期設定だと、user: admin, pass: mt-daapdでログインできます。

http://(インストールしたPCのIP):3689/

f:id:jimaoka:20151129202540p:plain:w400

iTunesの左上の家マークをクリックすると、mt-daapdが表示されています。

f:id:jimaoka:20151129203024p:plain:w250 f:id:jimaoka:20151129203051p:plain:w250

文字化けしているものも幾つかありますが、ID3タグの文字コードを編集することで回避できそうです。

f:id:jimaoka:20151129203409p:plain

まとめ

DAAPサーバを構築することで、ローカルマシンに音楽ファイルを置くことなく、まとめて音楽を管理できるようになりました。

mt-daapdについてはあまり新しい情報がなく、手探りで進める部分も多かったです。(Ubuntuならもっと簡単そう)

今後使っていくうえで何かあればまた書いていこうかなと思っています。

追記

2015/12/07 追記
サーバーサイドでライブラリが管理されているため

  • itunesからのratingの編集
  • itunesでのプレイリストの作成や編集
  • スマートプレイリスト機能

等にはやはり難があります。。