How ernani1234/musike works
Musike is a cross-platform personal music player. The main workflow is user search or browsing → catalog lookup → queue playback, with the server resolving and proxying streams for web/desktop; standalone mobile apps search and play directly from YouTube. The graph also preserves library, backup, video, radio, customization, and native playback capabilities. Edges use README statements and shown source references; mobile and some server internals are unsampled, so those links are documented or marked unverified rather than inferred from names.
Main entry points: app.ts REST API · mobile Standalone mobile app · App.tsx Web app shell · api.ts API client
Components 22
Player clients
- Desktop shell
desktop/src/main.mts - Standalone mobile app
mobile - Android playback
mobile/android/app/src/main/java/app/musike/android/PlaybackService.java - iOS playback
mobile/ios/App/App/MusikeAudio.swift
Web experience
- Web app shell
web/src/App.tsx - Catalog views
web/src/views - Batch search
web/src/views/BatchSearch.tsx - Queue player
web/src/player/player.ts - API client
web/src/lib/api.ts - Library state
web/src/stores/library.ts - Interface preferences
web/src/stores/ui.ts
Server services
- REST API
server/src/app.ts - Catalog lookup
server/src/browse.ts - Search and video match
server/src/search.ts - Stream resolution
server/src/ytdlp.ts - Range stream proxy
server/src/stream.ts - Library service
server/src/library.ts - Library file
server/src/libraryFile.ts - Tool maintenance
server/src/tools.ts
Media providers
- YouTube Music
- YouTube media
Other components
- Listener
Connections 30
- Listener → Web app shell: uses
- Web app shell → Catalog views: routes to
web/src/App.tsx - Web app shell → Queue player: uses
web/src/App.tsx - Web app shell → Library state: loads
web/src/App.tsx - Web app shell → Interface preferences: uses
web/src/App.tsx - Catalog views → API client: requests
web/src/views/BatchSearch.tsx - Catalog views → Batch search: routes to
web/src/App.tsx - Batch search → API client: searches
web/src/views/BatchSearch.tsx - Queue player → API client: prepares streams
web/src/player/player.ts - Queue player → Library state: updates history
web/src/player/player.ts - API client → REST API: sends requests
- Listener → Desktop shell: uses
- Desktop shell → REST API: starts built-in server
desktop/src/main.mts - Listener → Standalone mobile app: uses
- Standalone mobile app → Android playback: supports playback
mobile/android/app/src/main/java/app/musike/android/PlaybackService.java - Standalone mobile app → iOS playback: supports playback
mobile/ios/App/App/MusikeWebViewController.swift - REST API → Catalog lookup: routes catalog calls
server/src/app.ts - REST API → Search and video match: routes search
server/src/app.ts - REST API → Library service: handles library
server/src/app.ts - REST API → Stream resolution: resolves playback
server/src/app.ts - REST API → Range stream proxy: routes streaming
server/src/app.ts - REST API → Library file: configures storage
server/src/app.ts - REST API → Tool maintenance: refreshes tools
server/src/app.ts - Catalog lookup → YouTube Music: queries catalog
- Search and video match → YouTube Music: searches catalog
- Stream resolution → YouTube media: resolves media
- Range stream proxy → YouTube media: proxies bytes
- Library service → Library file: persists library
server/src/app.ts - Standalone mobile app → YouTube Music: searches directly
- Standalone mobile app → YouTube media: plays directly