打造自己的 iTunes Server,一同分享最愛的 MP3 音樂

by 11月 07, 2014 3 意見                

當初在我還沒有 MacBook 的時候,就已經開始用 iTunes 在整理我的音樂資料庫了,不得不說 iTunes 的確是一個非常好用的工具,不只是音樂檔案本身的分類、命名,還可以整合 id3 標籤、插圖、歌詞,更不用說還有好用的智慧型撥放列表了。

但是,
這只限於我們自己的電腦上面播放,如果我們想要讓家人、同事、同學也可以用 iTunes 播放這些音樂,又不想老是開著自己的電腦跟 iTunes 來分享,要怎麼辦呢 ???


Apple 在 iTunes 4.0 版加入了 DAAP (Digital Audio Access Protocol) 的協定,用來提供 iTunes 共享的功能,讓大家可以從別台電腦的 iTunes 播放這台電腦的音樂。由於 Apple 並沒有開放這個協定的細節,而是被網友以 逆向工程 (Reverse Engineering) 的方式實作出來,所以功能十分陽春。

因為這是用來分享 iTunes 的音樂,才被稱為 iTunes Server,許多 NAS 廠商也已經加入了這個功能,如 SynologyQNAP。最早被實作出來的套件叫 mt-daapd (後來改名為 firefly),雖然已經很久沒有更新了,目前依然可以配合 iTunes 使用,而且安裝及設定容易,所以我們還是選擇它來實作 iTunes Server 的功能。

這裡將使用 CentOS 6.5 x86 來實作,讓 iTunes 12.1 來播放音樂。

注意事項

  • 不使用 iTunes 播放音樂的朋友請左轉,iTunes Server 對你沒有任何用處。
  • 只能用來讓 Windows 或 OS X 的 iTunes 播放音樂,沒有其他功能。
  • 類似功能的套件還有 forked-daapdTangerineampache

安裝主程式


由於 mt-daapd 很久沒有更新版本,最後的版號是 0.2.4.2,所以不需要專程自己去下載原始檔來編譯及安裝,直接透過 EPEL 套件庫來安裝就可以了。


如果還沒安裝過 EPEL 套件庫的話,就先將它安裝好,並且更新一下套件庫的資料。
yum -y install epel-release

yum -y update


開始安裝 mt-daapd。
yum -y install mt-daapd
中間過程省略 ...

如果沒有安裝過 netatalk、avahi 等相關服務,記得也要安裝並設定好,請參閱 用「偽 AirPort Time Capsule」讓 OS X 執行 Time Machine 來備份,唯一的不同只有 avahi 的設定。
vi /etc/avahi/service/mt-daapd.service

加入下列內容。
<?xml version=”1.0″ standalone=’no’?>
<!DOCTYPE service-group SYSTEM “avahi-service.dtd”>

<service-group>
  <name replace-wildcards=”yes”>%h</name>
  <service>
    <type>_daap._tcp</type>
    <port>3689</port>
  </service>
</service-group>



設定重要參數


主要設定檔在 /etc 目錄下的 mt-daap.conf,有一些必須視需求調整的參數。
vi /etc/mt-daapd.conf


「port」: Web 介面的通訊埠,預設值是 3689,除非有有特殊原因,否則不應修改。
「admin_pw」: Web 介面的密碼,帳號是 admin 無法修改,預設的密碼是 mt-daapd,視需求修改。

「db_dir」: 儲存 MP3 清單資料庫的目錄,視需求修改。

「mp3_dir」: 儲存 MP3 檔案的目錄,這個是最重要的參數,要分享的 MP3 檔案就是要複製到這個目錄裡面,視需求修改。

「servername」:  顯示在 iTunes 裡的名稱,視需求修改。

「rescan_interval」: 自動在背景掃瞄 MP3 檔案的頻率,單位為秒,需配合「alway_scan」參數才會生效。預設是 300 秒,如果不會時常加入 MP3 檔案,建議改久一點,以減少 CPU 及 HDD 的負擔。

「alway_scan」: 是否啟用自動背景掃瞄,若未啟用,當我們加入新的 MP3 檔案時,必須要手動重新掃瞄,才會更新 MP3 檔案清單。

「scan_type」:自動背景掃瞄的類型,視需求修改。


啟動服務


mt-daapd 不會自動產生相關目錄及檔案,所以我們必須自行建立,請記得要跟設定檔的參數相同。

建立 MP3 檔案及清單資料庫的儲存目錄。
mkdir /mnt/itunes-server/mp3

mkdir /mnt/itunes-server/mp3-db
產生空白的播放清單檔案。
touch /mnt/itunes-server/mt-daapd.playlist

讓 mt-daapd 在開機時自動啟動。
chkconfig mt-daapd on

確認自動啟動是否設定成功,看到 mt-daapd 出現「3:開啟 4:開啟 5:開啟」就代表成功了。
chkconfig

測試一下是否能正確的啟動,看到綠色的「確定」就成功了。
service mt-daapd restart


開啟 Web 介面


確認 iTunes Server 的 IP 位址,這裡看到了「192.168.88.21」。
ifconfig

 打開瀏覽器,在位址列輸入 iTunes Server 的 IP 位址,帳號是 admin,密碼則是輸入在設定檔裡「admin_pw」的設定值。

帳號密碼輸入正確,就可以進行 Web 介面了。

 我們可以在「config」頁面看到所有參數的設定值。

在「status」頁面則是可以看到三個表格。
  1. 顯示所有正在連線中的使用者清單及執行中的動作。
  2. 相關服務的狀態,「DAAP Server」顯示服務是否啟動中 (running),「Background scanner」代表是否正在背景掃瞄 MP3 檔案。

    若要手動掃瞄 MP3,就請按下「Start Scan」按鈕。
  3. 服務的相關資訊,包括總上線時間、MP3 檔案總數量、播放中的 MP3 數量、MP3 清單更新次數。


使用 iTunes 播放


打開 Windows 或 OS X 的 iTnues 之後,就會看到左上角出現了 家庭共享 的按鈕。

點選按鈕之後,就可以看到我們的 iTunes Server,顯示的名稱就是在主設定檔中「servername」的設定值: My iTunes Server

選擇共享的 iTunes Server,iTunes 就會開始連線,讀取 MP3 清單資料庫。

 讀取完畢之後,就會看到 ITunes Server 裡的 MP3 清單了。

最後,只要把 MP3 複製到 iTunes Server 的 MP3 儲存目錄,也就是主設定檔裡「mp3_dir」設定的目錄裡,再經過掃瞄產生 MP3 清單之後,就可以看到分享出來的 MP3 檔案了。


參考資料


更新紀錄

  • 2014/11/07 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

3 則留言 :

  1. 哥们,我现在用的是Ubuntu16.04的系统,但是不再是mt-daapd,取而代之的是forked-daapd,来自源自带的包,配置完了web界面打不开,日志提示 httpd: Could not lstat() /usr/share/forked-daapd/webface: No such file or directory;也不支持自动扫描文件时间调整,甚至连mp3的id3标签都无法显示,请问怎么解决这些问题?

    回覆刪除
    回覆
    1. Ubuntu 我不熟,forked-daapd 也還沒實作過,所以不太清楚你遇到的問題。

      刪除
  2. 我的电邮 zjc877@outlook.com

    回覆刪除