Daphile+LMS 與 Navidrome 的 Scrobble(播放記錄)整合——神人解決問題了

「為什麼正好是一個小時?」——Playlist 封面消失之謎的真相

上集末尾,留了一句:「由於 LMS 內部未知的渲染機制,播放一小時後 Playlist 的小圖示仍可能變回預設占位符……如果有神人可以解決那就完美了。」

我沒想到,這個「外觀小問題」會在半年後的某個週日,一口氣拖出三條蟲、四次錯誤診斷,還有一個從第一代 plugin 就躺在裡面、誰都沒發覺的真相。

那天下午,Mark 丟來一句:「請 debug,FLAC 播不了了。」Navidrome 升級(0.64.2)之後,音響裡的巴哈變成了 192kbps 的 mp3 味,還播放不了。Neo 兩分鐘破案:plugin 跟 Navidrome 要 FLAC 時送的是 `format=flc`——flc 是 LMS 自己的內部代號。舊版 Navidrome (0.60.3)看不懂 flc,裝傻直接給原檔不轉碼;新版學乖了,看不懂就轉 mp3。一行改成 `format=raw`,巴哈無損回魂。

正準備收工,Mark 又補一刀:「可是 playlist 讀縮圖很卡,navidrome 還一直出現 scan。」這一挖挖出第二條蟲:新版 Navidrome 對「查無封面」回傳 .webp 佔位圖,而 LMS 九年前寫死的圖片代理根本不識 webp,只能丢給雲端轉換,一張等三十秒 timeout。Navidrome 那邊更精采:自帶的 Deezer 藝人頭像抓取器正為五千多位藝人勤懇排隊重試,log 沖刷如瀑布。清佇列、關開關,最後改程式重編 Navidrome 還是回傳傳統的 .jpg 圖,把佔位圖換成合成純黑的 JPEG。

然後,幽靈登場。

「播放清單裡全部都是有圖的,」Mark 說,「但是開始播放『正好一小時』後,全部的圖跑掉,變成 LMS 的佔位圖。按下一首,整列報銷。但播放一切正常。」

一小時。這數字似曾相識——上集的 Scrobble 失靈,也是正好一小時。

Continue reading →

打通音響室與手機的最後一哩路:Daphile+LMS 與 Navidrome 的 Scrobble (播放記錄)終極救贖

「為什麼就是資料不能一致?」

這是我這幾天對老友 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 →

Netgear R7000路由器解磚修復

原本Netgear R7000已經改成跑Shibby Tomato v140,雖然沒什麼問題,可是Shibby這個版本已經超過一年半沒有更新了,怕有無線網路的弱點沒有更新到,想試試後來分支的FreshTomato,下載2018.4版的freshtomato-R7000-ARM-2018.4-AIO-64K,更新後reboot,竟然跑不起來,症狀是看起來有boot完成,但是隔幾秒後會自己重開,進入一直循環reboot的狀態,正式變“磚”化(bricked)了,意思是機器不能用了,像是變成一塊磚頭。
Continue reading →

批次修改數位照片 EXIF 資料的 Exifer 免費軟體

八月的日本行帶了兩個相機出門 (加上 DV 攝影機共三台),一是 Nikon L1 有 1G 的記憶卡,一是 Panasonic FX-07 有 4G 的記憶卡,Mark 和 Andrea 一人一台,看到什麼有趣的就胡亂拍,總共拍了八百多張,回來刪掉一些實在不行的還有七百多張。

張數多不是問題,問題在於因為日本跟台灣有一小時的時差,出門前兩台相機有一台調了時區一台沒有,所以變成兩台相機拍的相片差了一小時 (拍攝時間存在相片的 EXIF 資料中),經過依 EXIF 資料 rename 檔名後變成像 2007_0802_065832.jpg 的檔名,即拍攝時間年月日時分秒的檔名,因為兩台相機的相片差了一小時,產生了同個時間出現在不同地點的混淆,這樣瀏覽照片或把照片洗出來都有困擾。
Continue reading →

突破防火牆的 OpenVPN

OpenVPN,就像日本人的 Softether 一樣,可以藉由軟體模擬網路卡,透過特定的 port,連上遠端的 server,而模擬像網路卡直接接上 hub 的樣子,如此可以跟遠端的 server 處在同一個 local LAN,從而達到突破公司連外防火牆的目的。 一般公司對於對外的連線,通常只會開放 port 80 (http) 及 port 443 (https SSL),所以其他的網路功能都被限制住了;而透過 OpenVPN 或 Softether 的程式,可以借用 port 443 連到外面的 “hub”,再由沒有限制的 “hub” 執行各種網路功能,有效穿越 firewall。
Continue reading →

Notepad++ 免費的編輯軟體

Ultraedit-32 無疑是大家耳熟能詳的一個編輯軟體(editor),有 12 年的歷史,現在已經出到了 13.00a 了! 但是,ultraedit 有個缺點就是它要花錢買,今天來報給大家知道一個多國語文編輯軟體 — notepad++,這個 notepad++ 看起來是可以取代 ultraedit 的,免費 ,而且作者是個台灣人,叫做侯今吾,台灣淡江大學法國文學學士,巴黎第七大學電腦工程碩士,好厲害,大學唸法文,碩士到法國唸電腦工程.
Continue reading →

grep for Windows/DOS 復古的搜尋工具

用慣 unix / Linux 系統的人一定覺得命令列太好用了,加上 unix 上豐富的工具程式及 shell script,整個組合起來,豈是一個爽字可以形容… 視窗系統就是慢–點、點、點、選、點、點、放下滑鼠打字、選ok、ok、ok…

grep 應該是最好用的工具之一,用來搜尋文字檔案內特定的內容,有有心人在 Windows 也移植了它,在 這 可以抓到。
Continue reading →

PhotoCap2–大頭照之製作

PhotoCap 2.0 實在是太好用,作一張大頭照兩三下就 Ok,且符合新版身分證的照片規格。只要注意下面的規定拍好照片,其他的交給 PhotoCap2 就好了,絕對是 DIY 大頭照最好用的工具。在這裡下載。

94年全面換發國民身分證須知
當事人應繳交最近6個月內所攝彩色,脫帽、未戴有色眼鏡,眼、鼻、口、耳、臉等清晰足資辨識人貌,直4.5公分,橫3.5公分,人像自頭頂至下顎之長度不得小於3.2公分及超過3.6公分,白色背景之正面半身薄光面紙相片1張,不得使用合成相片。

規格如下:

一、6個月之內拍攝。
二、直45mm以內且橫在35mm以內,以頭部及肩膀頂端近拍,使臉部佔據整張照片面積的70~80%。
三、對焦需清晰且鮮明,高品質,無墨跡或摺痕。
四、眼睛正視相機鏡頭拍攝,自然地顯現出皮膚的色調,有合適的亮度及對比。
五、以高解析度列印在高品質的相紙上。
六、如相片是以數位相機拍攝,必須為高彩度而且以相片品質的紙張列印。
七、相片為中性的色彩。
八、眼睛必須張開且清晰可見,不能被頭髮遮蓋,呈現清楚的臉型輪廓,不能側向一邊或傾斜的,且臉型兩側及兩耳輪廓需清楚呈現。
九、需以白色背景拍攝。
十、光源需均勻而且不能有影子或閃光反射在臉部,不能有紅眼。
十一、如果配戴眼鏡:
(一)眼睛需清楚呈現,不能有閃光反射在眼鏡上,且不能佩戴有色眼鏡(請避免配戴粗重的鏡架,配戴較輕巧之眼鏡)。
(二)確認鏡架不遮住眼睛任何的一部分。
十二、因宗教因素須戴頭巾者,相片人貌之五官從下巴的底部至額頭的頂端及臉的兩側輪廓,必須清楚呈現。
十三、相片必須單獨顯現當事人的影像(不能有椅背、玩具或其他人的影像),眼睛正視相機鏡頭拍攝,無特殊表情且嘴巴合閉。

Continue reading →