Feishin:自架音樂伺服器的跨 API 播放介面
現代自架音樂播放器。 Feishin 支援任何實作 Navidrome、Jellyfin 或 OpenSubsonic 相容 API 的音樂伺服器。
秒懂
- 它是什麼?
- Feishin 是 Sonixd 的重寫版,支援 MPV 和 Web 播放後端,可播放 Navidrome、Jellyfin 和 OpenSubsonic 相容伺服器上的音樂。
- 適合誰用?
- Feishin 是一款自架音樂播放器,提供推薦的桌面用戶端、Docker 部署方式,並相容多種伺服器 API。README 包含安裝步驟、環境變數選項和常見問題的排解方法。
- 可以商用嗎?
- 可以,但有條件。GPL-3.0 是 copyleft 授權:如果你散布包含它的軟體,就必須以同一授權公開該軟體的原始碼。只在內部執行、不對外散布,則不會觸發這項義務。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 1 天前。
- 用什麼語言寫的?
- 主要是 TypeScript(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
重寫自 Sonixd,提供兩種播放後端
Feishin 是一款使用 TypeScript 編寫的自架音樂播放器。README 將其描述為 Sonixd(同一作者早期專案)的重寫版。播放器支援兩種音訊後端:桌面用戶端使用的 MPV 播放後端和瀏覽器使用的 Web 播放後端。功能清單包含現代使用者介面、將播放記錄提交到伺服器、針對 Navidrome 的智慧播放清單編輯器,以及同步和非同步歌詞的支援。倉庫中繼資料顯示專案未封存,預設開發分支名為 development。README 也連結了託管 Web 版本和功能請求的工作面板。
就 feishin 而言,這段資訊要和 jeffvli/feishin 的 README 一起閱讀。第 1 個觀察點可用專案文件列出的入口核對:不要把 README 沒有承諾的作業系統、效能或相容性推論成保證。若要把它放進既有流程,應先辨認這一段描述的是使用者介面、命令列入口、伺服器端點還是資料格式,因為不同層次的問題會留下不同的故障跡象。記錄執行時使用的版本與輸入,對照 README 的預期結果;若實際輸出沒有出現文件提到的訊息,就先查設定與依賴,不要用猜測補齊行為。
桌面用戶端與平台注意事項
桌面用戶端是執行 Feishin 的推薦方式。它同時支援 MPV 和 Web 播放後端,並內建歌詞擷取功能。macOS 12 或更高版本的使用者需要按照 README 中的連結說明移除應用隔離。在 macOS 上使用媒體鍵需要授予 Feishin 受信任輔助功能用戶端權限,且授予後需要重新啟動 Feishin。Linux 使用者可以透過 Flathub 或 AppImage 安裝 Feishin。AppImage 安裝腳本會下載最新映像、賦予可執行權限、安裝桌面環境所需的圖示,並產生 .desktop 檔案以加入應用程式啟動器。腳本也提供了新增啟動參數以執行實驗性原生 Wayland 模式的選項,以及一個刪除指令來移除下載的檔案。
就 feishin 而言,這段資訊要和 jeffvli/feishin 的 README 一起閱讀。第 2 個觀察點可用專案文件列出的入口核對:不要把 README 沒有承諾的作業系統、效能或相容性推論成保證。若要把它放進既有流程,應先辨認這一段描述的是使用者介面、命令列入口、伺服器端點還是資料格式,因為不同層次的問題會留下不同的故障跡象。記錄執行時使用的版本與輸入,對照 README 的預期結果;若實際輸出沒有出現文件提到的訊息,就先查設定與依賴,不要用猜測補齊行為。
Web、Docker 和 Docker Compose
Feishin 的託管 Web 版本位於 feishin.vercel.app,但 Web 用戶端僅支援 Web 播放後端。Feishin 也以 Docker 映像形式發佈,映像託管在 ghcr.io。README 提供了 docker run 指令,將連接埠 9180 對應到容器並執行最新映像。同時提供了 Docker Compose 片段,也適用於 Portainer。Compose 檔案支援環境變數,用於預定義伺服器名稱、伺服器鎖定、伺服器類型、伺服器 URL、遠端 URL、Subsonic 伺服器的舊版驗證旗標以及停用分析。停用分析變數在設為 true 時會關閉 Umami 追蹤。
就 feishin 而言,這段資訊要和 jeffvli/feishin 的 README 一起閱讀。第 3 個觀察點可用專案文件列出的入口核對:不要把 README 沒有承諾的作業系統、效能或相容性推論成保證。若要把它放進既有流程,應先辨認這一段描述的是使用者介面、命令列入口、伺服器端點還是資料格式,因為不同層次的問題會留下不同的故障跡象。記錄執行時使用的版本與輸入,對照 README 的預期結果;若實際輸出沒有出現文件提到的訊息,就先查設定與依賴,不要用猜測補齊行為。
首次執行設定與伺服器設定
首次啟動時,Feishin 會提示輸入 MPV 二進位檔案的路徑。如果未安裝 MPV,README 提供了其安裝頁面連結。重新啟動後,使用者需要選擇伺服器:開啟選單,選擇管理伺服器,然後新增伺服器並填寫完整 URL(包括協定和連接埠)。對於 Navidrome,README 建議儲存密碼並在 Navidrome 設定中增加 SessionTimeout 設定,例如 72 小時。Linux 使用者可以在設定 > 視窗 > 密碼/金鑰庫中選擇 libsecret 或 kwallet 密碼儲存庫。README 也提到桌面用戶端包含內建歌詞擷取。
就 feishin 而言,這段資訊要和 jeffvli/feishin 的 README 一起閱讀。第 4 個觀察點可用專案文件列出的入口核對:不要把 README 沒有承諾的作業系統、效能或相容性推論成保證。若要把它放進既有流程,應先辨認這一段描述的是使用者介面、命令列入口、伺服器端點還是資料格式,因為不同層次的問題會留下不同的故障跡象。記錄執行時使用的版本與輸入,對照 README 的預期結果;若實際輸出沒有出現文件提到的訊息,就先查設定與依賴,不要用猜測補齊行為。
用於進階部署的環境變數
多個可選環境變數會改變 Feishin 的執行方式。PUBLIC_PATH 允許將應用託管在子路徑下,例如 /feishin。SERVER_NAME、SERVER_TYPE 和 SERVER_URL 可以硬編碼伺服器,當三者都設定時,SERVER_LOCK 可防止使用者修改這些設定。LEGACY_AUTHENTICATION 用於切換 Subsonic/OpenSubsonic 伺服器的明文驗證。REMOTE_URL 適用於具有獨立公用 URL 的伺服器,例如 Navidrome 的 ShareURL。ANALYTICS_DISABLED 在 Docker 和 Web 版本中停用 Umami 分析。應用設定(如主題和語言)可以在首次執行時透過 FS_ 前置詞的環境變數覆寫,完整清單見設定環境變數文件。
就 feishin 而言,這段資訊要和 jeffvli/feishin 的 README 一起閱讀。第 5 個觀察點可用專案文件列出的入口核對:不要把 README 沒有承諾的作業系統、效能或相容性推論成保證。若要把它放進既有流程,應先辨認這一段描述的是使用者介面、命令列入口、伺服器端點還是資料格式,因為不同層次的問題會留下不同的故障跡象。記錄執行時使用的版本與輸入,對照 README 的預期結果;若實際輸出沒有出現文件提到的訊息,就先查設定與依賴,不要用猜測補齊行為。
已知問題與故障排除
FAQ 涵蓋了 MPV 不工作或反覆在暫停和播放狀態間切換的常見問題。第一步是檢查 MPV 二進位路徑是否正確,重新啟動應用,然後視需要重裝 MPV。已知可用的版本包括 v0.35.x 和 v0.36.x,v0.34.x 被列為損壞版本。在 Linux 上,當非特權命名空間被停用時,會出現 SUID 沙箱助手的錯誤。解決方法是將 chrome-sandbox 設定為 setuid,即執行 chmod 4755 和 chown root:root。Ubuntu 24.04 變更了命名空間行為,README 指向 Ubuntu 發行說明以取得可能的修復。
就 feishin 而言,這段資訊要和 jeffvli/feishin 的 README 一起閱讀。第 6 個觀察點可用專案文件列出的入口核對:不要把 README 沒有承諾的作業系統、效能或相容性推論成保證。若要把它放進既有流程,應先辨認這一段描述的是使用者介面、命令列入口、伺服器端點還是資料格式,因為不同層次的問題會留下不同的故障跡象。記錄執行時使用的版本與輸入,對照 README 的預期結果;若實際輸出沒有出現文件提到的訊息,就先查設定與依賴,不要用猜測補齊行為。
伺服器相容性、主題與開發
Feishin 支援任何實作 Navidrome、Jellyfin 或 OpenSubsonic 相容 API 的伺服器。README 列出了 Navidrome、Jellyfin 以及多個 OpenSubsonic 相容伺服器,包括 Airsonic-Advanced、Ampache、Astiga、Funkwhale、Gonic、LMS、Nextcloud Music、Supysonic 和 Qm-Music。Plex 未原生支援,lux032 的 fork 提供了 Plex 支援。桌面應用可以透過將 JSON 檔案放入 Themes 資料夾(設定 > 一般 > 主題 > 開啟資料夾)來新增自訂主題。開發基於 electron-vite,使用 Node v23.11.0,並提供了一系列 pnpm 指令碼用於建置、打包、發佈、型別檢查、程式碼檢查以及產生 i18n 檔案。翻譯透過 Weblate 管理。
就 feishin 而言,這段資訊要和 jeffvli/feishin 的 README 一起閱讀。第 7 個觀察點可用專案文件列出的入口核對:不要把 README 沒有承諾的作業系統、效能或相容性推論成保證。若要把它放進既有流程,應先辨認這一段描述的是使用者介面、命令列入口、伺服器端點還是資料格式,因為不同層次的問題會留下不同的故障跡象。記錄執行時使用的版本與輸入,對照 README 的預期結果;若實際輸出沒有出現文件提到的訊息,就先查設定與依賴,不要用猜測補齊行為。
feishin 的文件入口與採用檢查
採用前可在 jeffvli/feishin 目錄依 README 的實際入口做小型檢查:先固定目前版本,再執行文件中的安裝或啟動命令,觀察它指定的輸入、輸出與錯誤訊息。feishin 的 README 若未說明某平台、資料格式或部署方式,這一項就應列為待確認條件。
編輯結論
Feishin 是一款自架音樂播放器,提供推薦的桌面用戶端、Docker 部署方式,並相容多種伺服器 API。README 包含安裝步驟、環境變數選項和常見問題的排解方法。 feishin 適合能接受上述文件邊界、並願意按 README 指定入口驗證的使用者;不適合把未列出的能力當成現成承諾。
社群筆記