NexaWebStudio
RUDiscuss a project

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

Category
Android · Live on RuStore
Platforms
Android · Backend
Core stack
Kotlin · Jetpack Compose · Media3 / ExoPlayer
See it live (opens in a new tab)
NOW PLAYING10+ sources · ICY metadata

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

  1. Station catalog with tag filters, search and favorites
  2. Live now-playing over WebSocket and on-air history
  3. Track covers and metadata from music databases, charts
  4. One-tap search for the current track in eight music services
  5. Background playback with lock-screen and headset controls, sleep timer, equalizer, home-screen widget
  6. 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
Next case VoteXt — voice typing into any app