Onyx is a modern, sleek, and powerful desktop music player built with Svelte 5, Electron, and Node.js. It combines the best of both worlds: Spotify's metadata & recommendation engine with YouTube's vast audio library.
- Modern UI/UX: Glassmorphism design, dark mode by default, and smooth animations.
- Smart Streaming: Uses Spotify for metadata/search and YouTube for audio streaming (best match algorithm).
- Dynamic Visualizer: Real-time audio visualizer (
audiomotion-analyzer) that adapts colors from the album art (colorthief). - Smart Queue: Spotify-like queue system with auto-recommendations when the queue ends.
- Lyrics Integration: Synchronized lyrics support.
- Library Management: multiple playlists, favorites, and history tracking.
- Privacy Focused: data stored locally
user/appdata.
- Frontend: Svelte 5, Vite 5
- Desktop: Electron 39
- Backend: Express (Node.js)
- Audio Engine:
youtube-dl-exec/youtube-sr(Stream via Proxy) - Data Source:
spotify-web-api-node - Visuals:
audiomotion-analyzer,colorthief
- Node.js (v18 or later)
- Git
- Spotify Client ID & Secret (for metadata)
-
Clone the repository
git clone https://github.com/NotCayaa/onyx-player.git cd onyx-player -
Install dependencies
npm install
-
Configure Environment Create a
.envfile or configure via Settings UI later (Spotify Credentials). -
Run Development Mode You need to run both backend and frontend.
# Terminal 1 - Backend npm run dev # Terminal 2 - Frontend (Vite) npm run vite # Terminal 3 - Electron npm start
To build the executable (.exe for Windows):
npm run build:appOutput will be in dist-electron/.
This project is personal, but contributions are welcome! feel free to open issues or PRs.
MIT © 2026 caya8205
