How qier222/yesplaymusic works
YesPlayMusic is a Vue-based third-party NetEase Music client, with browser/PWA and Electron modes. Users sign in or browse music, discover tracks and other catalog content, then play music with lyrics and manage a library; account features include daily recommendations and private FM. The sampled search view shows search requests and track-detail lookup, while the README documents additional playback sources, Last.fm scrobbling, and cloud music. Several features are documented but their implementation was not sampled, so those subsystem links are intentionally limited.
Main entry points: App.vue App shell · request.js HTTP requests · api Music API modules · index.js Application state
Components 20
Application interface
- App shell
src/App.vue - Route access
src/router/index.js - Music views
src/views - Login views
src/views/login.vue - Player controls
src/components/Player.vue
Music catalog
- Catalog search
src/views/search.vue - Music API modules
src/api - Authentication API
src/api/auth.js - HTTP requests
src/utils/request.js
Playback and state
- Application state
src/store/index.js - State actions
src/store/actions.js - Playback engine
src/utils/Player.js - Local persistence
src/store/plugins/localStorage.js
Platform integrations
- Electron runtime
src/background.js - IPC bridge
src/electron/ipcRenderer.js - Desktop controls
src/electron - Last.fm scrobbling
src/api/lastfm.js - Alternate audio sources
src/ncmModDef.js
Other components
- Listener
- NetEase Music API
Connections 21
- Listener → App shell: uses
- App shell → Route access: renders routes
- Route access → Music views: selects view
- Music views → Application state: dispatches actions
- Catalog search → Music API modules: searches catalog
- Catalog search → Music API modules: loads track details
- Music API modules → HTTP requests: sends requests
- HTTP requests → NetEase Music API: calls API
- Login views → Authentication API: requests login
- Authentication API → HTTP requests: sends requests
- HTTP requests → Application state: persists settings
- App shell → State actions: loads library
- State actions → Music API modules: fetches music data
- Player controls → Playback engine: controls playback
- Playback engine → Application state: updates player state
- Application state → Local persistence: saves settings
- Electron runtime → IPC bridge: exposes IPC
- App shell → IPC bridge: initializes bridge
- IPC bridge → Desktop controls: dispatches controls
- Playback engine → Last.fm scrobbling: scrobbles tracks
- Electron runtime → Alternate audio sources: configures audio sources