explaingit

imsyy/splayer

7,086TypeScriptAudience · generalComplexity · 2/5LicenseSetup · moderate

TLDR

A cross-platform music player for Chinese streaming services and self-hosted media servers, with word-by-word scrolling lyrics, Hi-Res downloads, and a Windows desktop client, deployable via Docker or Vercel.

Mindmap

mindmap
  root((SPlayer))
    Platforms
      Web browser
      Windows desktop
    Music sources
      Chinese streaming
      Jellyfin
      Navidrome
      Emby
    Features
      Scrolling lyrics
      Hi-Res download
      Cloud drive
      Spectrum display
    Deployment
      Docker
      Vercel
      Self-hosted server
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Play music from Chinese streaming services with synchronized word-by-word scrolling lyrics on your own self-hosted instance.

USE CASE 2

Connect SPlayer to your Jellyfin, Navidrome, or Emby server to browse your personal music library with a modern interface.

USE CASE 3

Download tracks at Hi-Res quality and manage local playlists from the same app you use for streaming.

USE CASE 4

Deploy SPlayer as a private web music player using Docker or Vercel and access it from any browser.

Tech stack

TypeScriptVue 3ElectronNaive UIDocker

Getting it running

Difficulty · moderate Time to first run · 30min

Stated for personal learning and use only, AGPL-3.0 requires sharing source changes if you host it publicly.

Licensed under AGPL-3.0, free to use and modify, but if you host it publicly you must release your source code changes under the same license, the project states it is for personal use only, not commercial deployment.

In plain English

SPlayer is a cross-platform music player application with a web interface and desktop client, built primarily around Chinese streaming music services and self-hosted media servers including Jellyfin, Navidrome, and Emby. The README is written in Chinese, with an English description in the repository metadata indicating support for word-by-word lyrics, desktop lyrics, a cloud music drive, local library management, and audio spectrum visualization. The player is built using Vue 3, the Naive UI component library, and Electron, which allows it to run both as a website in a browser and as an installable desktop application. At the time of writing, the desktop client is primarily tested on Windows, though the web version runs on any platform with a modern browser. Feature highlights from the README include: scanning a QR code or entering a phone number to log in, automatic daily check-in, album cover color theming, automatic light and dark mode switching, local music library management and categorization, downloading tracks at up to Hi-Res quality, creating and editing playlists, a daily recommended songs view, a private radio mode, cloud drive upload and playback, word-by-word scrolling lyrics with translation, music video playback, an audio frequency spectrum display, and crossfade between tracks. A comment section with like support is also included. Deployment options include Docker (images are published to Docker Hub and GitHub containers), Vercel for hosting the web version, a traditional server setup, or a fully local build. The project is licensed under AGPL-3.0 and is stated to be for personal learning and use only, not commercial deployment.

Copy-paste prompts

Prompt 1
I am self-hosting SPlayer with Docker. Walk me through connecting it to my Navidrome server and checking that my music library appears.
Prompt 2
How do I deploy SPlayer to Vercel so I can access my music from any browser without running a local server?
Prompt 3
I want to enable crossfade between tracks and the audio spectrum display in SPlayer. Where are those settings?
Prompt 4
Help me set up the SPlayer desktop client on Windows, including logging in with a phone QR code.
Open on GitHub → Explain another repo

← imsyy on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.