TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南
TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南

XiaoMusic 讓小愛音箱播放自架音樂庫,yt-dlp 下載、語音口令點播,三年 236 個版本、Docker 映像逾 131 萬次下載,但專案已於 2026 年 6 月封存。從小米帳密的信任成本、GA4 遙測預設開啟、flac 相容限制,到續用、遷移 Songloft 或刷機改造,一次看清三條路怎麼選。
用 AI 摘要這篇文章:
想讓家裡的小愛音箱播放自己收藏的歌,2026 年的現在你會遇到三塊招牌。老將 XiaoMusic:開源、自架、用說的就能點歌,GitHub 上一萬顆星、Docker 映像被拉超過一百三十萬次;同一作者的新攤 Songloft:外掛化的音樂伺服器,持續更新中;還有一條更激進的刷機改造路線,直接把音箱的韌體換掉。結論先講:XiaoMusic 這套玩法本身被驗證得很徹底,但專案已在 2026 年 6 月正式封存,README 頂端掛著停止維護公告,issue 與 PR 全部不再處理。它仍然裝得起來、跑得動,只是從此沒有人修。要不要現在入坑,取決於你怎麼看待幾個邊界:帳號密碼交出去、遙測預設開啟、以及小愛音箱對無損檔案的相容限制。這篇把這些邊界逐一攤開,再看封存之後的三條路怎麼選。
先對準時間軸。XiaoMusic 由開發者 hanxi 於 2023 年 10 月開源,定位一句話講完:用小愛音箱播放音樂,音樂用 yt-dlp 下載。它在近三年裡發了 236 個版本,從 v0.1.0 一路迭代到 2026 年 6 月 9 日的 v0.6.1,而這個版本同時是最後一個。從版控紀錄看,收攤的節奏很清楚:5 月 28 日 README 出現停止維護公告的提交,隔天 v0.6.0 版本說明寫著停止更新,6 月 9 日作者移除文件裡的讚賞碼、發布 v0.6.1,6 月 22 日倉庫轉為封存狀態。現在到訪 GitHub 會看到整個倉庫掛上 Public archive 橫幅,累積一百多個開著的 issue 從此無人認領。

規模數字先記下來,因為它們說明這套玩法不是小眾實驗。一萬顆星、一千一百多個 fork、Docker 映像累積下載一百三十一萬次;封存三個月後的現在,Python 套件每個月仍有一千八百多次安裝。同類的雲端輪詢方案裡,MiGPT 與 open-xiaoai 也在 2026 年 4 月同日封存,等於這條賽道上的標竿專案在幾個月內接連退場。這波退潮傳遞的訊號同樣值得留意:網路上流傳的中文介紹文多數寫於專案全盛期,把它們當現況會差上一年;讀到「免費無限聽歌」這類說法時,先檢查文章日期再決定要不要跟著裝。
順帶一提公告裡的另一句話:作者推薦遷移到社群接力專案 Songloft,歡迎大家搬家與共建。這個「接力」的成色後面會拆開看。
XiaoMusic 的安裝型態是一個跑在 NAS 或任何區網主機上的服務,官方給的 Docker Compose 只要一行映像名稱加兩個掛載目錄,音樂放一個目錄、設定放另一個,容器開起來後在網頁設定頁填入小米帳號密碼,服務就會去小米雲把帳號下的設備清單抓回來。不想用 Docker 的人有 pip 套件可裝,討論區在 QQ 頻道與微信群;背後技術棧是 Python 加 FastAPI,前端是 jQuery,介面談不上漂亮,功能都在。裝好之後的操作介面其實是嘴巴:對音箱喊播放歌曲加歌名會觸發搜尋下載再播出,喊上一首、下一首、隨機播放、單曲循環都能對應,收藏歌單可以邊聽邊養,喊播放歌單加目錄名就能切換到你自己分類的資料夾,等於把口語當遙控器。
真正要理解的是它的資料流向,因為「自架」兩個字在這裡要拆成三層看。音檔那一層確實不出家門:你的歌放在自己的硬碟,服務在本機開一個 HTTP 埠,音箱播放時回頭拉的就是這個位址,從原始碼看是呼叫小米 MiNA 介面的 play_by_music_url,把自架位址交給音箱去串流。控制指令那一層則必然經過小米雲:語音口令的攔截方式,是服務持續輪詢小米雲端「你剛剛對音箱說了什麼」的最新對話紀錄,比對到播放、切歌、收藏這類關鍵詞就執行對應動作。換句話說,口令辨識不是 XiaoMusic 自己做的,它只是去讀小米已經上傳的對話文字;也因此服務必須常駐,關掉容器口令就沒人接。回應你的那句語音提示,出廠預設就用微軟 Edge TTS 的嗓音,設定裡可以換成別的語音角色,清空設定才會回頭用小米自己的合成語音。第三層最容易漏掉:遙測。
遙測這層要講得具體。原始碼 analytics.py 裡寫死了 Google Analytics 4 的量測編號,服務啟動會回報 startup 事件,每天回報一次活躍,而每次播放會回報 play 事件,欄位包含歌名(最長一百字元)、播放秒數與音箱硬體型號。關鍵在於預設值:組態項 enable_analytics 的出廠預設是開啟,除非你在啟動時把環境變數 XIAOMUSIC_ENABLE_ANALYTICS 設為 false,否則你聽了什麼歌、聽了多久、用哪台音箱聽,都會以匿名用戶端編號的形式送進 Google 的統計後台。作者把它用在版本統計而非廣告,統計事件裡也沒有帳號資訊,但「自架服務預設對外回報播放行為」這件事,值得每個部署者在第一次啟動前就知道並自己做決定。
先說帳號密碼。服務需要你的小米帳號與密碼才能取得設備清單,這組憑證存在自架的組態檔裡,也提供掃碼登入作為替代。README 的安全提醒寫得直白:若把服務開到公網,務必啟用密碼登入並設強密碼,不要在公共 Wi-Fi 環境使用;更進一步,強烈不建議把小愛音箱的小米帳號同時綁定攝影機,理由是程式難免有漏洞,一旦帳密外洩,監視器畫面會跟著陪葬。這條警告出自作者本人,比任何第三方提醒都值得當真:把整個小米生態系的鑰匙交給一個容器,爆炸半徑不只音樂。
音檔格式是下一個要先查的。工具支援 mp3、flac、wav、ape、ogg、m4a 讓本機搜尋播放,下載回來的歌則統一是 mp3。已知 L05B、L05C、LX06、L16A 這四個機型不支援 flac,喇叭會直接沒聲音,解法是打開設定裡的「轉換為 MP3」或型號相容模式。收藏無損檔案的人買音箱前值得先對照型號,別讓檔案櫃裡的 flac 在客廳變成啞巴。
下載這件事本身也要畫線。yt-dlp 是引擎,從影片網站抓音訊軌回家,XiaoMusic 只負責點播與管理。下載回來的檔案自己聽,與散布、轉售是兩回事,各地對個人備份的容忍度也不同;這條界線要自己畫,工具不會替你畫。同樣用 yt-dlp 當引擎的桌面工具可以對照 Parabolic 這類圖形前端的定位,差別在 XiaoMusic 把下載、歌單與語音點播串成了服務。
語言與機型是比較隱性的一層。內建口令以簡體中文字串比對,對音箱喊「播放歌曲」加歌名就會觸發下載與播放,說國語的台灣用戶口音這關問題不大,但網頁介面與文件都是簡體中文;支援清單列了 18 個型號條目,從小愛音箱 mini 到 Xiaomi Sound Pro,多數條目連往小米中國站的裝置百科,這條路的前提是你手上正好是這批中國市場機型。另外有個貼心的小功能:對音箱說播放某個故事名,它會先去下載再播出,等於把點播範圍從歌曲延伸到有聲內容。
專案封存不等於服務失效,這是自架軟體與雲端訂閱最大的不同。映像還拉得到、文件還開著、程式碼還在,你今天照著文件裝一套,明天它照樣唱歌。風險在時間那一端:服務依賴的小米雲介面只要改版,沒有人會再修它,口令失靈或設備清單抓不到之類的故障,只能等有人 fork 或自己動手。因此三條路的選擇,本質上是你對「無人維護」的承受度。
已經在用的人,最合理的動作是停在那裡:別急著升級,也別急著拆,同時把遙測關掉、確認服務沒有暴露到公網,然後觀察接力專案的成熟度。新入坑的人,我會建議直接從 Songloft 開始看。這個專案該花一段筆墨:封存公告推薦的接力者就是它,而版控貢獻紀錄顯示貢獻次數最多的正是 hanxi 本人,一千多次提交居首,等於原作者換了個組織名把這條路繼續走;它以 Apache-2.0 授權,2026 年 2 月開倉,版本已推進到 v2.12.0,9 月仍有提交,七個月累積一千七百顆星與 27 萬次映像下載。它的前身其實就是作者在 XiaoMusic 文件裡預告過的個人音樂伺服器,v2.0 起更名 Songloft,舊組織的倉庫位址保留轉址至少一年;文件開頭同時掛著純為興趣開發的聲明,沒有收費功能、不放廣告、也不接受贊助。差異在架構:Songloft 用 Go 重寫,把音源、詮釋資料與設備控制全部外掛化,外掛跑在沙箱裡並支援熱更新,客戶端涵蓋手機、桌面與電視。代價也明白:它對小愛音箱的支援不是內建功能,而是官方示意外掛 songloft-plugin-miot,透過 MIoT 協定把歌投放到音箱,口令的深度整合還要靠社群專案補;示意外掛在你機型上的實際表現,只有真正用過的人才有發言權。

第三條路最激進:不借用原廠介面,直接刷機改造音箱,把喚醒、對話與播放全部接管到自架服務上。TechMoon 先前介紹過的 open-xiaoai 刷機改造就是這條路的完整拆解,代價是拆機、韌體版本綁定與放棄自動更新。雲端輪詢、外掛伺服器、刷機接管,三條路的激進程度與工程成本依序上升,對隱私與可控度的回報也依序上升。若你只是想讓音箱播家裡的歌,雲端輪詢這層已經夠用;若你連對話紀錄過小米雲都想避開,刷機才有答案。整理成一張決策表:
| 路線 | 入場成本 | 語音口令 | 維護現況 | 適合誰 |
|---|---|---|---|---|
| 續用 XiaoMusic | 一台 NAS 或常開主機 | 內建完整 | 已封存,出錯無人修 | 已部署、不想折騰的人 |
| 遷移 Songloft | 同上,觀念要換成外掛 | 靠示意外掛與社群補強 | 活躍開發,原作者坐鎮 | 新入坑、想跟上更新的人 |
| 刷機 open-xiaoai | 拆機、韌體綁定 | 接管喚醒與對話 | 2026 年 4 月封存 | 想徹底避開小米雲的人 |
音樂庫本身的定位也值得想清楚:Songloft 的自我定位是管理你合法擁有的音樂,這句話可以放在心裡當採購與下載的準繩。XiaoMusic 這邊也有順手的配套,作者的另一個小工具能把電子書轉成 mp3 放進同一個資料夾,聽書與聽歌就共用同一套口令。同場景可以順道認識 qm-music-server 這類自架音樂服務與 Dockhand 這類 Docker 管理面板,前者處理串流庫、後者顧好你的容器艙;想讓音箱回應的嗓音多一點變化,text2voice 的 Edge TTS 介紹講的正是 XiaoMusic 設定頁裡那顆可選的語音引擎。
授權與現況一次交代:XiaoMusic 以 MIT 授權收尾,倉庫封存但可自由 fork 與再散布;接力專案 Songloft 採 Apache-2.0,活躍開發中。官方文件站仍連得上,安裝設定以文件站為準,比任何轉貼文章都新。有兩件事此刻沒有答案,值得列進觀察清單:示意外掛在個別機型上的穩定度,以及封存版在小米雲未來改版後還能活多久。給自己設個回查點,三個月後再看一眼 Songloft 的 issue 區與版本頁,遷移時機自然就清楚了。
最後一句話收尾:XiaoMusic 證明了一萬顆星量級的需求存在,也示範了自架軟體的另一種結局,作者把經驗帶去下一個專案,舊攤位原地封存但招牌不拆。你的音樂還在你的硬碟上,這是最重要的一層自有;至於用哪個前端把它唱出來,現在是買方市場。