本文為舊版本文章,新版文章請看: [Synology NAS] 同步 iTunes 與 Audio Station 音樂播放清單 (新)
不知有沒有人跟我一樣,在電腦上使用 iTunes 整理音樂,在手機使用 Synology Audio Station (DS Audio) 播放音樂。ilx2sasp 是我寫的小程式,可以單向同步 (iTunes -> Audio Station) 音樂播放清單,ilx2sasp 執行後會長駐在系統通知區域,只要 iTunes 播放清單有變更,ilx2sasp 就會自動更新 Audio Station 的播放清單。
這裏說明一下 ilx2sasp 的工作方式,ilx2sasp 只是單純去解析 iTunes Library XML 中的播放清單,將其轉成 Aduio Station 的播放列表格式 (*.m3u) 並儲存在 playlists 資料夾。再利用 Cloud Station 的同步功能, 將音樂檔案與播放列表同步到 NAS Audio Station。
當然也可以在 Windows 中新增磁碟機指向 NAS music 資料夾,然後在 iTunes 偏好設定中變更資料庫位置,指向新增磁碟機。因為資料庫放在 NAS 上,在 iTunes 中操作時因為讀寫都需透過 LAN,速度太慢我不喜歡,所以不使用此種方法。
採用 Cloud Station 同步會在 PC 與 NAS 都保留一份檔案,雖然佔空間但也較安全,不怕遇到硬碟損毀的情況,下面是針對同步方法設定說明。
在使用程式前確認下列都已安裝:
- DSM 套件,Audio Station 與 Cloud Station Server 。
- Clinet 端同步軟體 Cloud Station Drive 。
- Apple iTunes 軟體。
註: Synology 在 DSM6 以後套件程式改名:
DSM5 | DSM6 |
Cloud Station Client (PC) | Cloud Station Drive (PC) |
Cloud Station (NAS) | Cloud Station Server (NAS) |
啟動 iTunes 偏好設定 -> 進階 -> 勾選 “歌曲加入資料庫時,將其檔案複製到 iTunes Media 資料夾” 與 “與其它應用程式共享 iTunes 資料庫“。
iTunes 預設的資料庫位置為:C:\Users\username\My Music\iTunes\
而 mp3 等音樂檔案位置為:
C:\Users\username\My Music\iTunes\iTunes Media\Music\
“與其它應用程式共享 iTunes 資料庫” 勾選後,會在 C:\Users\username\My Music\iTunes\
產生一個名為 “iTunes Music Library.xml
” 或 “iTunes Library.xml
” 的檔案,ilx2sasp 執行需要這個 xml 檔。
同步 iTunes 與 Audio Station 音樂檔案
在 DSM 開啟 Cloud Station Server,確認 Audio Station 使用的共用資料夾 music 同步狀態為 “已啟動”
開啟 Cloud Station Drive,新增同步任務:
同步 NAS music
與 C:\Users\username\My Music\iTunes\iTunes Media\Music
Audio Station 播放清單
Audio Station 播放清單有分 “個人播放清單” 與 “共同播放清單”。
個人播放清單存放在該 user 自己的 home 底下:homes/username/music/playlists/Previous Personal Playlist
,無法使用 File Station 來存取。
共同播放清單則存放在 /music/playlists
資料夾,可以透過 File Station 來存取。
因為共同播放清單存放位置在 /music/playlists
,所以當 Cloud Station Drive 在同步 iTunes 與 Audio Station 音樂檔案時,就會連共同播放清單一起同步。
ilx2sasp 就是利用這個方式,從 iTunes Library XML 檔讀取播放清單資訊,轉成 Audio Station 播放清單使用的 m3u 格式並儲存到 iTunes Media 底下的 music/playlists
資料夾,Cloud Station 偵測到 music 資料夾有變更,就會自動將 music 資料同步到 NAS 上。
關於 ilx2sasp
ilx2sasp 由 php 與 vc 兩種程式語言寫成。
ilx2sasp.php 主要處理 iTunes XML 轉成 Audio Station m3u 播放清單的功能,需要 php 直譯器才能正常執行。
ilx2sasp.exe 是一個 Windows 通知區域應用程式,會監視 C:\Users\username\My Music\iTunes\
下的 iTunes Library.xml
或 iTunes Music Library.xml
變化,當 iTunes 資料庫 xml 檔有變化時,呼叫 php 直譯器去執行 ilx2sasp.php 進行建立或更新播放列表的動作。
下載後解開 zip 壓縮檔,免安裝直接執行 ilx2sasp.exe 即可。
最後更新: 2016/08/28
下載 ilx2sasp12.zip 執行檔 (包含 php 直譯器 php5.6.18-x86 VC11)
下載 ilx2sasp12_src.zip (source code)
Note : php 直譯器需要安裝 Visual Studio 2012 的 Microsoft Visual C++ 可轉散發套件才能正常執行,如果不確定電腦上是否曾安裝過,那就直接下載後再安裝一次就好。
Windows x64 請同時安裝 x86 與 x64 可轉散發套件,否則只需安裝 x86 可轉散發套件。
下載:Visual C++ Redistributable for Visual Studio 2012 Update 4 (可轉散發套件)
微軟官網下載:Visual C++ Redistributable for Visual Studio 2012 Update 4 (可轉散發套件)
您好
感謝您寫了這個實用的小工具
但我在使用上遇到一個問題想請問:
當我最後使用ilx2sasp 來將xml檔案轉成m3u時
裡面歌曲路徑會全部少掉一部分導致audio station讀取清單時找不到檔案
以下舉例
正確路徑:../../music/宇多田ヒカル/桜流し/01 桜流し.m4a
轉檔之後:../../宇多田ヒカル/桜流し/01 桜流し.m4a
如上因為實體音樂檔案放在music的資料夾內
轉出的m3u檔案卻沒有將music資料夾的路徑包含在內
請問有無方法解決?
感謝您!
使用文字編輯軟體, 修改 ilx2sasp.php 檔, 將第18行
$location = str_replace($musicFolder, ‘../../’, $location);
改成
$location = str_replace($musicFolder, ‘../../music/’, $location);
即可
感謝您的幫忙,現在可以轉換到正確的路徑了
另外想請問
目前我的audio station 裡面撥放轉換好的播放清單時
有些曲目前方會出現紅色的X,表示無法找到曲目,如下圖:
http://i.imgur.com/mKnsu3o.png
清單內專輯有些曲目能夠播放,有些卻不行
在該曲目點選右鍵,開啟包含的資料夾,能夠開啟資料夾卻無法播放
請問您有沒有遇到此類問題?
感謝您!
會出現紅色X是因為Audio Station找不到歌曲, 可能是路徑或檔名不正確。
你可以這樣驗証,
開啟 Audio Station -> 新增 -> 播放清單 -> 播放清單名稱: test (新增為共同播放清單 “打勾”) -> 到音樂庫中找到有問題的那曲歌 (例如 “01 桃ノ花ビラ.m4a”), 在歌曲上按右鍵選 “儲存到共同播放清單” -> 選擇 test。
然後你再檢查一下 \music\playlists\test.m3u 中的檔案路徑與檔名是否跟 J-POP.m3u 中的檔案路徑與檔名有什麼差異。
我剛剛試著新作了一個test播放清單作為測試
如下圖:
http://i.imgur.com/XCEGz8L.png
在路徑上我看不出哪裏有不同
但我試著將一首「君はメロディー」的路徑由test轉貼至J-POP的list裡面
卻可以順利播放了
且有此情形的幾乎為檔名是日文的曲目
想請問是不是轉換檔案的文字編碼和audio station產生的不一樣呢?
感謝!
程式並沒有去做轉換歌曲的文字編碼的動作, 依照你的說法 “但我試著將一首「君はメロディー」的路徑由test轉貼至J-POP的list裡面 卻可以順利播放了”, 表示檔名路徑都正確且文字編碼也正確。
試試看這樣修改看有沒有用, ilx2sasp.php 第 9 與 21 行
$m3u = “#EXTM3U\n”;
$m3u .= $location.”\n”;
改成
$m3u = “#EXTM3U\r\n”;
$m3u .= $location.”\r\n”;
如果還是不行, 請你上傳 j-pop.m3u 與 test.m3u 檔給我研究一下
上傳到這裏: https://ladsai.com:5001/sharing/r1aK4qnwZ
改過路徑之後,還是不行
不過另外改用NOTEPAD++開啟後發現不同點,如下圖:
http://i.imgur.com/IZPI6Mu.png
右邊是將XML直接轉檔後的LIST,左邊是我嘗試將兩個曲目路徑修改的
可以看到右邊LIST的路徑上面有出現方塊字碼混入
將它改成向左邊那樣就可以順利撥放了
不知是何原因?
另外我已將兩個檔案上傳,再請您看看
感謝您!
我在 Win7/Win10 下面使用 iTunes 建立日文歌曲播放列表, 測試結果都很正常, 不會有紅色X, 也都可以正常播放,不知道為什麼你那為什麼會有問題。
https://blog.ladsai.com:443/wp-content/uploads/2016/03/Screenshot_041816_100859_AM.jpg
找到原因了
因為我的xml檔案是在OSX的環境下生成的
可能是因為這樣所以裡面的字型是OSX的字型,在win環境下辨識有問題
我之後在win10的環境下再用iTunes生成新的xml檔案之後
再來轉檔就沒問題了
真是感謝您的支援!
您好,請問一個題外話
有辦法在synology的音樂軟體audio station上面刪除音樂,同時itunes也刪除嗎?
使用 Cloud Station 同步歌曲時, 在 audio station 上刪除音樂, 電腦端音樂檔也會被刪除, 但是在 iTunes 中依然會看到該音樂存在, 這是因為 iTunes 是讀入之前建立的 iTunes 資料庫, 而不會每次執行都重新掃描檢查音樂檔案是否實際存在。
如果要檢查音樂檔是否已被刪除可以這樣, 執行 iTunes -> 檔案 -> 資料庫 -> 整理資料庫 -> 統整檔案,
iTunes 會重新掃描檢查音樂檔是否存在, 如果音樂檔不存在, 會在該音樂前顯示”圓型金嘆號”的符號, 再去手動刪除即可。
非常謝謝您的回答,這樣一來就比較好整理了^^