System Architecture & Data Pipeline

資料來源與管線圖 · 技術架構

公開的是我的 Spotify 曲庫與歌單;不含收聽時間紀錄、token 與本機檔案。因應 2024–2026 年 Spotify API 兩波重大收緊,確立「Spotify 作為穩定 ID 骨幹、知識與分類來自本機」的解耦設計。

純 HTML/CSS 資料管線圖 (Data Pipeline)

1Spotify 平台(我的庫存、URI、ISRC)

唯讀 OAuth PKCE

僅使用唯讀權限獲取個人收藏曲目、專輯、建立之歌單。不依賴 Spotify 的 audio-features 或 recommendations。

▼ snapshot (唯讀抓取)

2data/raw/(原始 JSON 快照)

gitignored · 本地私密

包含 me.json、playlists.json、saved_tracks.json 與 _meta.json。包含個人敏感資料,永不納入版本控制。

▼ build_catalog (正規化轉換)

3data/catalog/(正規化資料正本)

UTF-8 RFC4180 CSV · 可進 git

公開的 Spotify 曲庫與歌單資料表:tracks.csv、albums.csv、artists.csv、playlists.csv、playlist_items.csv。所有主鍵維持 22 碼 base62。

▼ enrich & manual tagging (本機分類與豐富化)

4MusicBrainz / Wikidata + data/tags/(知識層)

古典建模 · 人工標註

透過 MBID 補足作品 (Work)、作曲家、樂章與調性;並以 track_tags.csv 標記家庭受眾 (audience) 與車上/睡行情境 (context)。

▼ static serving (零建置呈現)

5site/(零建置純靜態網站)

Vanilla HTML/CSS/JS · 無 CDN

純靜態展示層,透過原生 fetch 與內建輕量 CSV 解析器載入資料;支援 RWD、鍵盤操作與 Spotify 網頁播放連結 (https://open.spotify.com/...)。

核心架構思維與原則

🔒 隱私隔離與資料範疇

公開的是我的 Spotify 曲庫與歌單;不含收聽時間紀錄、token 與本機檔案。API Token、原始 JSON 快照皆留存於本機 data/raw/ 並受 .gitignore 保護;網站層為純靜態檔案,無任何外部 CDN 追蹤。

🎻 古典音樂四層本體論

打破商業串流服務以「唱片公司發行專輯」為主的扁平思維,建立 作曲家 → 作品(Work) → 樂章 → 錄音演出 的專業古典階層。

🚗 家庭與車用真實需求

整合 Spotify 匯出的延伸串流歷史,解答長途出遊或育兒時「車上究竟該播什麼」,依年齡與情境受眾建立最貼近生活節奏的歌單。

⚡ 零建置 (Zero-Build) 哲學

不依賴 Node 打包器 (Webpack/Vite)、TypeScript 編譯或外部龐大框架。使用標準現代 Web API,十幾年後開啟依然能即時運作。