- B
So What
DSub · 2m ago
- T
Take Five
Symfonium · 14m ago
- G
Goodbye Pork Pie Hat
Feishin · 31m ago
3 個用戶端 · 2 台伺服器 · 即時更新
自託管 · 開源 · MIT
Navidrome Stat 輪詢 Navidrome 伺服器的 getNowPlaying 介面,把所有 Subsonic 用戶端的播放匯聚成一塊自託管儀表板——收聽時數、趨勢、排行榜和年度回顧。資料從不離開你的機器。
Blue in Green
Miles Davis — Kind of Blue
Navidrome 的各個用戶端彼此不共享統計。Navidrome Stat 改為在伺服器端觀測——所有用戶端,同一條歷史。
So What
DSub · 2m ago
Take Five
Symfonium · 14m ago
Goodbye Pork Pie Hat
Feishin · 31m ago
3 個用戶端 · 2 台伺服器 · 即時更新
DSub、Symfonium、Feishin、網頁播放器——任何 Subsonic 用戶端的播放都匯入同一條歷史,多台 Navidrome 伺服器也不例外。
按小時與按天的趨勢、星期×小時熱力圖、用戶端佔比、轉碼率,以及藝術家、專輯、曲目排行榜。
年度總量、連續收聽天數,以及你的年度藝術家、專輯與曲目——屬於你自己的 Wrapped,基於你自己的資料。
專輯封面經過帶驗證的、容量受限的快取——你的音樂庫保持私密。
已快取 1,024 張封面 · 128 MB
一切都在一個屬於你的 SQLite 檔案裡。按使用者匯出、匯入與刪除,可選 token 驗證,零遙測。
Catppuccin、Nord、Dracula、Tokyo Night、Gruvbox、Solarized——即時切換。
简体中文、繁體中文、English、日本語、Deutsch——更多語言已在路線圖上。
十組內建主題,整個儀表板即時換色。點一個試試:
一頁看盡一整年:總量、連續天數,和陪你走過這一年的歌。
年度曲目
Blue in Green
範例資料——真實數字來自你自己的音樂庫。
無需用戶端外掛、無需註冊、不上雲。一個輕量容器,守在你的音樂伺服器旁邊。
每 10 秒(可設定)透過 Subsonic API 向每台 Navidrome 伺服器詢問正在播放的內容——介面本來就在。
暫停與中斷不計入。累計有效收聽超過門檻(預設 30 秒)才算一次播放。
有效播放寫入你磁碟上的 SQLite,在 39421 連接埠的自包含儀表板中呈現。
當伺服器支援 OpenSubsonic playbackReport 擴充時會自動採用,讓進度與時長統計更精確。
複製、貼上,開啟 39421 連接埠。建議鎖定版本號,確保更新可重現。
services:
navidrome-stat:
image: stepaniah/navidrome-statistic:v0.8.1
container_name: navidrome-stat
user: "1000:1000"
ports:
- "39421:39421"
volumes:
- navidrome-stat-data:/data
environment:
NAVIDROME_URL: ${NAVIDROME_URL}
NAVIDROME_USER: ${NAVIDROME_USER}
NAVIDROME_PASS: ${NAVIDROME_PASS}
STATS_API_TOKEN: ${STATS_API_TOKEN}
DATABASE_URL: /data/navidrome_stats.db
restart: unless-stopped
volumes:
navidrome-stat-data: docker run -d --name navidrome-stat \
-p 39421:39421 \
-e NAVIDROME_URL=https://navidrome.example.com \
-e NAVIDROME_USER=you \
-e NAVIDROME_PASS=change-me \
-e STATS_API_TOKEN=$(openssl rand -hex 24) \
-v navidrome-stat-data:/data \
stepaniah/navidrome-statistic:v0.8.1 NAVIDROME_URL=https://navidrome.example.com
NAVIDROME_USER=example_user
NAVIDROME_PASS=change-me
STATS_API_TOKEN=use-a-long-random-value 設定 STATS_API_TOKEN 後,首次存取在登入頁輸入一次即可——瀏覽器只保存 HttpOnly 會話 Cookie,而非 token 本身。
完整設定參考收聽歷史只存在於你自己資料卷裡的一個 SQLite 檔案。
設定頁內建按使用者的 JSON 匯出、匯入與刪除。
設定 STATS_API_TOKEN 後儀表板與 API 均需登入——工作階段使用 HttpOnly Cookie。
容器唯一的外呼對象就是你的 Navidrome 伺服器。
多個實例輪詢同一批伺服器會導致播放被重複計數。
資料庫與設定頁保存的憑證均為明文——請像對待機密一樣保護資料卷。
遠端存取請置於你的 HTTPS 反向代理之後。
任何相容 Subsonic 的用戶端——DSub、Symfonium、Feishin、play:Sub、substreamer、Navidrome 網頁端等。統計資料來自伺服器端的 getNowPlaying 介面,用戶端無需安裝任何東西。
可以。在 設定 → 連線 中逐一新增;播放按來源標記,儀表板可按伺服器篩選。
累計有效收聽時長需超過 PLAY_THRESHOLD_SEC(預設 30 秒)。暫停與失聯時段不計入;檢查點更新同一條記錄;未達門檻就結束的工作階段會單獨保存為播放嘗試,不計為播放。
任何講 Subsonic API 的伺服器都可以,但專案只針對 Navidrome 開發與測試。伺服器支援的 OpenSubsonic 擴充會被自動採用。
Last.fm 把 scrobble 存在別人的雲端;Maloja 雖然自託管,但仍依賴用戶端主動提交收聽記錄。Navidrome Stat 完全不需要用戶端配合——它直接觀測伺服器自己的 now-playing 資料流,任何 Subsonic 用戶端預設被涵蓋,資料也只留在你的磁碟上。
在你自己磁碟上容器 /data 卷中的一個 SQLite 檔案裡。你可以在設定頁將其匯出為 JSON、匯入到別處,或刪除某個使用者的收聽歷史。
一個輕量容器、一個 SQLite 檔案、10 秒一次的輪詢——樹莓派也能輕鬆跑。