How xwsjjctz/lyricsadapter works
LyricsAdapter is an Electron desktop music player centered on importing and managing a local library, playing tracks with synchronized lyrics, and extending playback to online providers and WebDAV. The renderer composes UI, controllers, and view models; Electron exposes privileged file, persistence, streaming, and system-integration capabilities through IPC and custom protocols. The README documents major features whose detailed implementations were not sampled, so those branches use supported directory paths and only documented relationships.
Main entry points: App.tsx Application composition · ipc IPC handlers · main.ts Electron main · useLibraryController.ts Library controller
Components 28
Renderer experience
- Application composition
src/App.tsx - Views and controls
src/components - Lyrics presentation
src/components/focus-mode/FocusLyrics.tsx
Music workflows
- Playback controller
src/controllers/usePlayerController.ts - Library controller
src/controllers/useLibraryController.ts - Track import
src/hooks/useImport.ts - Metadata and lyrics
src/services/metadataService.ts - Online music
src/services/onlineMusicProvider.ts - QQ and NetEase
src/services/qqMusicApi.ts - WebDAV library
src/services/webdavClient.ts
Desktop runtime
- Electron main
electron/main.ts - IPC bridge
electron/preload.ts - IPC handlers
electron/ipc - Media protocols
electron/protocols - Audio metadata service
electron/services/audioMetadataService.ts
Persistence and settings
- Library persistence
src/services/libraryStorage.ts - Metadata cache
src/services/indexedDBStorage.ts - Settings storage
src/services/appStorage.ts - User state repository
electron/services/userStateRepository.ts
Platform integrations
- System lyrics coordinator
electron/services/systemLyricsCoordinator.ts - Native system surfaces
electron/native - Windows taskbar host
native/windows-taskbar-host/App.xaml.cs - System media controls
src/hooks/useMediaSession.ts - Application updater
electron/updater.ts
Other components
- Listener
- Operating system
- Online services
- WebDAV server
Connections 33
- Listener → Views and controls: operates
- Views and controls → Application composition: user intent
- Application composition → Playback controller: composes
- Application composition → Library controller: composes
- Application composition → Track import: composes
- Application composition → Online music: composes
- Playback controller → Online music: gets lyrics
- Online music → QQ and NetEase: queries
- QQ and NetEase → Online services: requests
- Playback controller → Lyrics presentation: provides track state
- Listener → Library controller: imports and manages
- Track import → Metadata and lyrics: extracts tags
- Library controller → Library persistence: loads and saves
- Library controller → Metadata cache: uses cache
- Application composition → Settings storage: configures
- Settings storage → IPC bridge: requests settings
- IPC bridge → IPC handlers: dispatches IPC
- Electron main → IPC handlers: registers
- IPC handlers → User state repository: reads and writes
- IPC handlers → Audio metadata service: invokes
- IPC handlers → WebDAV library: invokes
- WebDAV library → WebDAV server: browses and streams
- Electron main → Media protocols: registers
- Media protocols → Operating system: reads audio and covers
- Library persistence → IPC bridge: requests library data
- Electron main → System lyrics coordinator: initializes
- System lyrics coordinator → Native system surfaces: updates surface
- Native system surfaces → Windows taskbar host: launches host
- System lyrics coordinator → IPC bridge: sends playback actions
- Application composition → System media controls: publishes playback state
- System media controls → Operating system: publishes controls
- Electron main → Application updater: initializes
- Application updater → Online services: checks releases