How liaoran2002/bilimusicvideo works
BLMV turns imported music-platform playlists into a persistent, searchable collection of tracks, finds matching Bilibili videos, and plays them through a desktop player. The renderer coordinates playlist selection, video search, playback, resume state, and settings; Electron IPC delegates platform work and persistence to the main process. Major side branches include Bilibili login, cache management, wallpaper mode, and tray/system controls. The README documents capabilities beyond the sampled excerpts, so those branches are included with conservative wiring; unsampled implementation details are not inferred.
Main entry points: App.vue Player coordinator · ipcHandlers.ts IPC registration · index.ts Preload bridge · PlaylistManager.vue Playlist manager
Components 27
Player interface
- Player coordinator
src/App.vue - Playlist manager
src/components/PlaylistManager.vue - Playlist panel
src/components/PlaylistPanel.vue - Settings dialog
src/components/SettingsDialog.vue - Video controls
src/components/biliVideoControls.vue - DASH MSE engine
src/utils/dashPlayer.ts
Playlist domain
- Playlist store
src/stores/playlists.ts
Electron services
- Playlist parsing
electron/main/ipc/music.ts - Music providers
electron/main/music/sources - Bilibili handlers
electron/main/ipc/biliApiHandlers.ts - Bilibili API
electron/main/biliApi.ts - IPC registration
electron/main/ipcHandlers.ts - Preload bridge
electron/preload/index.ts - Playlist handlers
electron/main/ipc/playlist.ts - Cache handlers
electron/main/ipc/cache.ts
Local state
- Search cache
electron/main/utils/cache.ts - Settings store
electron/main/utils/setting.ts - Playlist data
electron/main/utils/playlist.ts
Desktop integration
- Bilibili login
electron/main/ipc/auth.ts - Wallpaper mode
electron/main/ipc/wallpaper.ts - Tray controls
electron/main/ipc/tray.ts - Tray menu UI
src/trayMenu/main.ts - Window lifecycle
electron/main/index.ts
Other components
- Listener
- Bilibili services
- Music platforms
- Windows desktop
Connections 37
- Listener → Player coordinator: uses
- Player coordinator → Playlist manager: opens
- Player coordinator → Video controls: drives
- Playlist manager → Preload bridge: requests import
- Playlist manager → Playlist store: manages tracks
- Playlist store → Preload bridge: loads and saves
- Player coordinator → Playlist store: selects playlist
- Player coordinator → Preload bridge: requests search and streams
- Player coordinator → DASH MSE engine: plays DASH streams
- DASH MSE engine → Bilibili services: fetches media segments
- Preload bridge → IPC registration: dispatches IPC
- IPC registration → Playlist parsing: registers handlers
- IPC registration → Bilibili handlers: registers handlers
- IPC registration → Playlist handlers: registers handlers
- IPC registration → Cache handlers: registers handlers
- Playlist parsing → Music providers: parses playlist links
- Music providers → Music platforms: fetches playlist details
- Bilibili handlers → Bilibili API: searches and resolves
- Bilibili API → Bilibili services: queries videos
- Bilibili handlers → Search cache: reads and writes
- Cache handlers → Search cache: manages entries
- Playlist handlers → Playlist data: reads and writes
- Playlist manager → Settings dialog: opens settings
- Settings dialog → Preload bridge: updates settings
- IPC registration → Settings store: registers settings handlers
- Player coordinator → Preload bridge: requests login and controls
- IPC registration → Bilibili login: registers auth handlers
- Bilibili login → Bilibili services: authenticates
- Player coordinator → Preload bridge: toggles wallpaper and window
- IPC registration → Wallpaper mode: registers wallpaper handlers
- Wallpaper mode → Window lifecycle: changes window mode
- Window lifecycle → Windows desktop: embeds wallpaper window
- Player coordinator → Tray controls: sends playback state
- Tray controls → Tray menu UI: updates menu state
- Tray menu UI → Preload bridge: dispatches menu actions
- Tray controls → Player coordinator: sends playback controls
- Window lifecycle → Windows desktop: integrates tray and media controls