[Synology NAS] 同步 iTunes 與 Audio Station 音樂播放清單 (舊)

本文為舊版本文章,新版文章請看: [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 都保留一份檔案,雖然佔空間但也較安全,不怕遇到硬碟損毀的情況,下面是針對同步方法設定說明。

在使用程式前確認下列都已安裝:

  1. DSM 套件,Audio Station 與 Cloud Station Server 。
  2. Clinet 端同步軟體 Cloud Station Drive  。
  3. 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 資料庫“。

Untitled_Clipping_030216_033815_PM

Untitled_Clipping_030216_034108_PM

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 同步狀態為 “已啟動”

Screenshot_030216_124808_PM

開啟 Cloud Station Drive,新增同步任務:
同步 NAS music 與 C:\Users\username\My Music\iTunes\iTunes Media\Music

Image_030216_031800_PM

Audio Station 播放清單

Audio Station 播放清單有分 “個人播放清單” 與 “共同播放清單”。

個人播放清單存放在該 user 自己的 home 底下:homes/username/music/playlists/Previous Personal Playlist,無法使用 File Station 來存取。

共同播放清單則存放在 /music/playlists 資料夾,可以透過 File Station 來存取。

Screenshot_030216_051711_PM

因為共同播放清單存放位置在 /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.xmliTunes Music Library.xml 變化,當 iTunes 資料庫 xml 檔有變化時,呼叫 php 直譯器去執行 ilx2sasp.php 進行建立或更新播放列表的動作。

Screenshot_030216_061503_PM_030216_063226_PM

下載後解開 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 (可轉散發套件)

 

[Synology NAS] 同步 iTunes 與 Audio Station 音樂播放清單 (舊) 有 “ 12 則迴響 ”

  1. 您好
    感謝您寫了這個實用的小工具
    但我在使用上遇到一個問題想請問:
    當我最後使用ilx2sasp 來將xml檔案轉成m3u時
    裡面歌曲路徑會全部少掉一部分導致audio station讀取清單時找不到檔案
    以下舉例
    正確路徑:../../music/宇多田ヒカル/桜流し/01 桜流し.m4a
    轉檔之後:../../宇多田ヒカル/桜流し/01 桜流し.m4a

    如上因為實體音樂檔案放在music的資料夾內
    轉出的m3u檔案卻沒有將music資料夾的路徑包含在內
    請問有無方法解決?
    感謝您!

    1. 使用文字編輯軟體, 修改 ilx2sasp.php 檔, 將第18行
      $location = str_replace($musicFolder, ‘../../’, $location);
      改成
      $location = str_replace($musicFolder, ‘../../music/’, $location);
      即可

      1. 感謝您的幫忙,現在可以轉換到正確的路徑了

        另外想請問
        目前我的audio station 裡面撥放轉換好的播放清單時
        有些曲目前方會出現紅色的X,表示無法找到曲目,如下圖:
        http://i.imgur.com/mKnsu3o.png
        清單內專輯有些曲目能夠播放,有些卻不行
        在該曲目點選右鍵,開啟包含的資料夾,能夠開啟資料夾卻無法播放
        請問您有沒有遇到此類問題?
        感謝您!

        1. 會出現紅色X是因為Audio Station找不到歌曲, 可能是路徑或檔名不正確。
          你可以這樣驗証,
          開啟 Audio Station -> 新增 -> 播放清單 -> 播放清單名稱: test (新增為共同播放清單 “打勾”) -> 到音樂庫中找到有問題的那曲歌 (例如 “01 桃ノ花ビラ.m4a”), 在歌曲上按右鍵選 “儲存到共同播放清單” -> 選擇 test。

          然後你再檢查一下 \music\playlists\test.m3u 中的檔案路徑與檔名是否跟 J-POP.m3u 中的檔案路徑與檔名有什麼差異。

          1. 我剛剛試著新作了一個test播放清單作為測試
            如下圖:
            http://i.imgur.com/XCEGz8L.png
            在路徑上我看不出哪裏有不同
            但我試著將一首「君はメロディー」的路徑由test轉貼至J-POP的list裡面
            卻可以順利播放了
            且有此情形的幾乎為檔名是日文的曲目
            想請問是不是轉換檔案的文字編碼和audio station產生的不一樣呢?
            感謝!

  2. 程式並沒有去做轉換歌曲的文字編碼的動作, 依照你的說法 “但我試著將一首「君はメロディー」的路徑由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

    1. 改過路徑之後,還是不行
      不過另外改用NOTEPAD++開啟後發現不同點,如下圖:
      http://i.imgur.com/IZPI6Mu.png
      右邊是將XML直接轉檔後的LIST,左邊是我嘗試將兩個曲目路徑修改的
      可以看到右邊LIST的路徑上面有出現方塊字碼混入
      將它改成向左邊那樣就可以順利撥放了
      不知是何原因?
      另外我已將兩個檔案上傳,再請您看看
      感謝您!

  3. 找到原因了
    因為我的xml檔案是在OSX的環境下生成的
    可能是因為這樣所以裡面的字型是OSX的字型,在win環境下辨識有問題
    我之後在win10的環境下再用iTunes生成新的xml檔案之後
    再來轉檔就沒問題了
    真是感謝您的支援!

  4. 您好,請問一個題外話
    有辦法在synology的音樂軟體audio station上面刪除音樂,同時itunes也刪除嗎?

    1. 使用 Cloud Station 同步歌曲時, 在 audio station 上刪除音樂, 電腦端音樂檔也會被刪除, 但是在 iTunes 中依然會看到該音樂存在, 這是因為 iTunes 是讀入之前建立的 iTunes 資料庫, 而不會每次執行都重新掃描檢查音樂檔案是否實際存在。
      如果要檢查音樂檔是否已被刪除可以這樣, 執行 iTunes -> 檔案 -> 資料庫 -> 整理資料庫 -> 統整檔案,
      iTunes 會重新掃描檢查音樂檔是否存在, 如果音樂檔不存在, 會在該音樂前顯示”圓型金嘆號”的符號, 再去手動刪除即可。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *