規則:
- 保持 Markdown 結構。
- 不翻譯 URL 和代碼。
- 只返回翻譯內容,不附加其他評論。

MoeKoe 音樂擴展
MoeKoe 音樂瀏覽器擴展版,基於 MoeKoeMusic Web 构建並在瀏覽器擴展內完成 API 路由兼容。
特性
- 點擊瀏覽器擴展圖標後打開獨立窗口運行 MoeKoeMusic。
- 不需要用戶配置 API 地址,也無需額外啟動本地 API 服務。
- 保留 MoeKoeMusic 原有 Web 頁面與互動,兼容瀏覽器擴展運行環境。
快速開始
環境要求
- Node.js 20 或更高版本
- Git
- Chrome / Edge 等 Chromium 内核瀏覽器
安裝依賴
git submodule update --init --recursive
npm install
npm run install:app
npm run install:app 將分別安裝 MoeKoeMusic 和 MoeKoeMusic/api 的依賴。安裝後建議檢查子模塊工作區,避免把上游 lockfile 的非預期變化提交進去。
构建擴展
npm run build
構建產物會輸出到:
dist/extension
安裝到瀏覽器
- 打開
chrome://extensions或edge://extensions。 - 启用“開發者模式”。
- 点击“加載已解壓的擴展程序”。
- 选择本项目下的
dist/extension目錄。
不要加載源碼目錄 extension,否則瀏覽器會提示清單或背景腳本加載失敗。
API 運行方式
與 MoeKoe Music Web 版本相比,該插件版不會讓用戶填写 API 地址。MoeKoeMusic 前端仍然按照自己的 HTTP 路由發起請求,構建時會把 Axios 請求適配到擴展內部消息通道。
請求流程如下:
MoeKoeMusic Web
-> extension/app/api-adapter.js
-> extension/api/service-worker.cjs
-> extension/api/generated/modules.cjs
-> MoeKoeMusic/api/module/*.js
-> KuGou 相關接口
extension/api/generated/modules.cjs 是生成文件,由 scripts/generate-extension-api-entry.mjs 扫描 MoeKoeMusic/api/module 後生成。新增或更新 API 模塊後,重新運行下面任一命令即可:
npm run generate:api
npm run build
專案結構
.
├── MoeKoeMusic/ # 上游 MoeKoeMusic 子模塊
│ └── api/ # 上游 API 子模塊
├── extension/
│ ├── app/
│ │ ├── api-adapter.js # Web 端 Axios 适配器
│ │ └── locale-init.js # 外置語言初始化腳本
│ ├── api/
│ │ ├── generated/modules.cjs # API 路由映射生成文件
│ │ ├── axios-fetch.cjs # 瀏覽器 fetch 版 Axios 兼容層
│ │ ├── service-worker.cjs # 擴展後台邏輯
│ │ └── url.cjs # url 模塊兼容層
│ ├── manifest.json # 擴展清单
│ └── vite.extension.config.mjs # 擴展構建配置
├── scripts/
│ ├── build-extension.mjs # 擴展構建腳本
│ └── generate-extension-api-entry.mjs # API 映射生成腳本
└── dist/extension # 構建後的擴展目錄
技術堆疊
| 技術 | 用途 |
|---|---|
| Manifest V3 | 瀏覽器擴展運行環境 |
| Vue 3 | MoeKoeMusic Web 頁面 |
| Vite | Web 頁面構建 |
| esbuild | Service Worker 打包 |
| Chrome Extensions API | 窗口打開、消息通信、存儲 |
| KuGouMusicApi | 上游 API 模塊來源 |
相關專案
- MoeKoeMusic :MoeKoeMusic 多平台客戶端。
- KuGouMusicApi :MoeKoeMusic 使用的 API 專案。
- MoeKoeMusic-mobile :MoeKoeMusic 移動端版本。
免責聲明
本项目僅用於學習與技術研究。項目中的音樂數據、歌詞、封面等內容版權屬於原版權方所有,請勿將本项目用於商業用途或違反相關服務條款的場景。使用本项目產生的任何風險由使用者自行承擔。
License
本项目沿用上游 MoeKoeMusic 的開源協議,詳見 MoeKoeMusic/LICENSE 。