MoeKoe Music Extension
MoeKoe Music browser extension version, built based on MoeKoeMusic Web and completed API route compatibility within the browser extension.
Features
- Open an independent window to run MoeKoeMusic after clicking the browser extension icon.
- No need to configure API address for users, and no need to start additional local API services.
- Retain the original MoeKoeMusic web page and interaction, compatible with the browser extension running environment.
Quick Start
Environment Requirements
- Node.js 20 or higher version
- Git
- Chrome / Edge and other Chromium-based browsers
Install Dependencies
git submodule update --init --recursive
npm install
npm run install:app
npm run install:app will install dependencies for both MoeKoeMusic and MoeKoeMusic/api. After installation, it is recommended to check the submodule workspace to avoid submitting unexpected changes from the upstream lockfile.
Build Extension
npm run build
The build output will be to:
dist/extension
Install to Browser
- Open
chrome://extensionsoredge://extensions. - Enable “Developer mode”.
- Click “Load unpacked extension”.
- Select the
dist/extensiondirectory under this project.
Do not load the source code directory extension, otherwise the browser will prompt that the manifest or background script failed to load.
API Running Method
Compared to the MoeKoe Music Web version, the plugin version will not require users to fill in the API address. The MoeKoeMusic front-end still initiates requests according to its own HTTP routes, and Axios requests will be adapted to the extension’s internal message channel during the build.
The request process is as follows:
MoeKoeMusic Web
-> extension/app/api-adapter.js
-> extension/api/service-worker.cjs
-> extension/api/generated/modules.cjs
-> MoeKoeMusic/api/module/*.js
-> KuGou related interfaces
extension/api/generated/modules.cjs is a generated file, generated by scripts/generate-extension-api-entry.mjs scanning MoeKoeMusic/api/module. After adding or updating an API module, you can re-run either of the following commands:
npm run generate:api
npm run build
Project Structure
.
├── MoeKoeMusic/ # Upstream MoeKoeMusic sub-module
│ └── api/ # Upstream API sub-module
├── extension/
│ ├── app/
│ │ ├── api-adapter.js # Web-side Axios adapter
│ │ └── locale-init.js # External language initialization script
│ ├── api/
│ │ ├── generated/modules.cjs # API route mapping generated file
│ │ ├── axios-fetch.cjs # Browser fetch version Axios compatibility layer
│ │ ├── service-worker.cjs # Extension background logic
│ │ └── url.cjs # url module compatibility layer
│ ├── manifest.json # Extension manifest
│ └── vite.extension.config.mjs # Extension build configuration
├── scripts/
│ ├── build-extension.mjs # Extension build script
│ └── generate-extension-api-entry.mjs # API mapping generation script
└── dist/extension # Build output extension directory
Technology Stack
| Technology | Purpose |
|---|---|
| Manifest V3 | Browser extension running environment |
| Vue 3 | MoeKoeMusic Web page |
| Vite | Web page building |
| esbuild | Service Worker packaging |
| Chrome Extensions API | Window opening, message communication, storage |
| KuGouMusicApi | Upstream API module source |
Related Projects
- MoeKoeMusic : MoeKoeMusic multi-platform client.
- KuGouMusicApi : API project used by MoeKoeMusic.
- MoeKoeMusic-mobile : MoeKoeMusic mobile version.
Disclaimer
This project is only for learning and technical research. The music data, lyrics, covers, and other contents in the project are owned by the original copyright holders. Please do not use this project for commercial purposes or violate relevant service terms. Any risks arising from the use of this project are borne by the users themselves.
License
This project follows the open-source agreement of the upstream MoeKoeMusic, see MoeKoeMusic/LICENSE .