How cqink/volna works
Волна is a browser-based PWA music player. Users search or browse music from Audius and YouTube, then play tracks through direct audio streams or an embedded YouTube fallback; playback also supports media-session controls. Favorites and server settings are stored locally, while the service worker caches the app shell for offline startup. The excerpts are partial, so links for unsampled UI wiring and other internal stages are omitted.
Main entry points: app.js App UI and logic · sw.js Shell caching
Components 19
Music discovery
- App UI and logic
app.js - Audius search and trends
app.js - YouTube search
app.js - Server settings and checks
app.js
Playback
- Playback control
app.js - Audius stream resolver
app.js - YouTube stream resolver
app.js - Audio playback
app.js - Embedded player fallback
app.js - Lock-screen controls
app.js
PWA and state
- Local storage
- Shell caching
sw.js - Browser cache
Other components
- Listener
- Audius API
- Piped servers
- Invidious servers
- YouTube iframe API
- Browser media session
Connections 23
- Listener → App UI and logic: uses
- App UI and logic → Audius search and trends: searches or browses
- App UI and logic → YouTube search: searches
- Audius search and trends → Audius API: requests tracks
- YouTube search → Piped servers: queries
- YouTube search → Invidious servers: queries
- App UI and logic → Server settings and checks: checks servers
- Server settings and checks → Piped servers: probes
- Server settings and checks → Invidious servers: probes
- App UI and logic → Playback control: controls
- Playback control → Audius stream resolver: resolves
- Playback control → YouTube stream resolver: resolves
- Audius stream resolver → Audius API: requests stream
- YouTube stream resolver → Piped servers: requests stream
- YouTube stream resolver → Invidious servers: fallback stream
- Playback control → Audio playback: plays stream
- Playback control → Embedded player fallback: falls back to
- Embedded player fallback → YouTube iframe API: loads player
- Playback control → Lock-screen controls: sets metadata
- Lock-screen controls → Browser media session: registers controls
- App UI and logic → Local storage: reads and writes
- Shell caching → Browser cache: caches shell
- Browser cache → Shell caching: serves offline files