「為什麼就是資料不能一致?」
這是我這幾天對老友 Neo 說過最多的一句話。身為一個對音質有執著、對數據有潔癖的 Home Lab 玩家,我的煩惱很具體:出門在外,我用手機 Symfonium 連回家裡的 Navidrome 聽歌;回到家,我想用 Daphile 連結 LMS (Lyrion Music Server,舊稱Logitech Music Server) 透過高級音響享受布拉姆斯。
但荒謬的是,這兩個系統的播放紀錄(Scrobble)完全各記各的,無法互通。更慘的是,只要 LMS 重新掃描一次目錄,我那些在音響室聽歌的紀錄就像蒸發了一樣,完全無法同步回 Navidrome 的資料庫。
為了解決這個問題,決定以 Navirdome 資料庫為中心,LMS 的播放送至 Navidrome。首先,抓了SqueezeSonic Plugin裝在LMS裡,它可以讓 LMS 透過這個 plugin 讀到 Navidrome 的曲目資料庫,從而播歌,歌曲本體是放在兩邊共用的 NAS。原以為這樣就結束了,但是,這樣播完歌竟然還是不會傳記錄給 Navidrome,也就是沒有歷史。
就這樣開始了這場長達一週的技術長征,看文件、測試…,總算發現可以用一串 HTTP 發給 Navidrome 呼叫API說播放完一首了,那麼 Navidrome 就會記錄這首歌的播放日期,後續還可以統計播放次數。
但是事情沒那麼簡單,這串 HTTP 放進 plugin,不是死掉,就是沒記錄。身為技術狂人的 Neo,看著我螢幕上閃爍的報錯訊息,推了推眼鏡說我們一起來吧。
Continue reading