radiOLA — online radio with track recognition
A live Android app on RuStore: hundreds of radio stations plus a backend that knows what's on air right now
See it live (opens in a new tab)The problem
Listeners want to see what's playing, find the track in their music service in one tap, and scroll back through what aired.
What we built
- Station catalog with tag filters, search and favorites
- Live now-playing over WebSocket and on-air history
- Track covers and metadata from music databases, charts
- One-tap search for the current track in eight music services
- Background playback with lock-screen and headset controls, sleep timer, equalizer, home-screen widget
- Magic-link sign-in and synced settings
Engineering
Now-playing from 10+ sources
- Now-playing aggregated from more than ten sources: dedicated parsers for radio networks plus ICY metadata read straight from the audio stream
- Recognizes the track from an audio snippet when a station exposes no metadata
- Kotlin
- Jetpack Compose
- Media3 / ExoPlayer
- Room
- Hilt
- NestJS 11
- Prisma
- PostgreSQL
- Redis / BullMQ
- Socket.IO