SPlayer-Next
🎵 Cross-platform desktop music player with rich lyric support and wide audio format compatibility. 跨平台桌面音乐播放器,支持丰富歌词与多…
git clone https://github.com/SPlayer-Dev/SPlayer-Next.gitSPlayer-Dev/SPlayer-NextSPlayer-Next
🎵 Cross-platform desktop music player with rich lyric support and wide audio format compatibility.
Successor to SPlayer.
English | 简体中文
Features
- 🎵 Broad format support — MP3, FLAC, WAV, AAC, OGG, APE, and more, decoded via FFmpeg
- 📝 Rich lyrics — LRC / QRC / YRC / TTML, word-by-word highlighting and translations, with desktop, dynamic-island, and taskbar lyric windows
- 🌐 Streaming servers — Subsonic / Navidrome / Jellyfin / Emby (multi-server, auto-connect)
- 🖥️ Cross-platform — Windows / macOS / Linux
- 🎚️ Audio spectrum — real-time FFT visualization
- 🏷️ Metadata editing — edit local track tags and cover art
- ⬇️ Downloads — built-in download manager
- 🎧 System media integration — Windows SMTC / Linux MPRIS / macOS Now Playing + Discord RPC
- ⚡ High-performance audio engine — FFmpeg + Rust
- 🎨 Adaptive theming — cover-based colors, Light / Dark / Auto
- 📈 Last.fm scrobbling
Development
Requirements
- Node.js >= 22
- pnpm >= 10
- Rust toolchain (required to build the native modules; see below)
Native Modules
Core performance features are powered by Rust-based native modules:
| Module | Description |
|---|---|
audio-engine |
High-performance audio decoding (FFmpeg), playback, FFT spectrum, cover extraction |
media-ctrl |
System media controls + Discord Rich Presence |
taskbar-lyric |
Native Windows taskbar lyric rendering |
pnpm dev and pnpm build compile the native modules automatically. To skip them (e.g. when working only on the UI), set SKIP_NATIVE_BUILD=true.
Getting Started
# 1. Install dependencies pnpm install # 2. Start the dev app (builds native modules in debug, then launches Electron) pnpm dev
Building
pnpm build # Full build: clean → native → typecheck → electron-vite pnpm build:win # Package for Windows pnpm build:mac # Package for macOS pnpm build:linux # Package for Linux (AppImage / deb / rpm / tar.gz / pacman)
By default a build targets the current architecture only. To target specific architectures, append them, e.g.
pnpm build:win --x64 --arm64.
Other Scripts
pnpm typecheck # tsc + vue-tsc (node + web targets) pnpm lint # ESLint pnpm format # Prettier pnpm build:native # Build the Rust native modules only (add `--dev` for debug)
Install
Arch Linux / Manjaro / EndeavourOS
Download the .pacman package from the release page and install it with pacman:
sudo pacman -U ./splayer-next-*.pacman
Acknowledgements
Special thanks to the open-source projects that make SPlayer-Next possible:
- applemusic-like-lyrics — Apple Music-style lyrics display component library
- NeteaseCloudMusicApiEnhanced — NetEase Cloud Music API (backup + enhanced)
License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
- Modification & distribution: any modification or distribution must also be released under AGPL-3.0, with the complete source code provided.
- Derivative works: must adopt AGPL-3.0 as well, and must retain this project's license and copyright notice in an appropriate place.
- Attribution: the original author and copyright information must be preserved. You may add your own notice for a derivative work, but you must not remove or alter the original.
- Commercial use: if used for sale or any other for-profit purpose, the source code and a link to the original project must be provided. Because this project relies on third-party services, commercial use may carry legal risk.
- No warranty: the software is provided "as is", without warranty of any kind, as described in the AGPL-3.0.
Disclaimer
This project is intended for personal learning and research only, and must not be used for commercial or unlawful purposes. Some features rely on third-party APIs; users are solely responsible for ensuring their use complies with the relevant laws, regulations, and service agreements. The authors accept no liability for any direct or indirect consequences arising from the use of this project.
more like this
TachiSnap
TachiSnap — Pixel Snapper for animation pixel artists. Rust + WebAssembly client-side tool for cleaning up AI-generated…
bit_gossip
Pathfinding library for calculating all node pairs' shortest paths in an unweighted undirected graph.