WorldRadio
A standalone internet radio application that streams 50,000+ stations from every corner of the globe. Vintage radio cabinet UI, real-time audio visualization, an interactive world map, and AI-powered transcription with English translation for 90+ languages.
WorldRadio is a standalone Electron application for macOS that catalogs over 50,000 verified stations across 238 countries and 608 languages. The entire station database ships with the app for instant offline browsing.
The interface is designed around a vintage radio cabinet aesthetic with physical-feeling rotary dials for volume, bass, mid, and treble EQ. A real-time frequency analyzer and waveform oscilloscope respond to the live audio stream through the Web Audio API processing chain.
Nine color themes transform the entire interface, from the cabinet frame and dial indicators to the VU meter colors and world map overlays.
Rotary EQ Controls
Drag-to-rotate dials for Volume, Bass (200Hz), Mid (1kHz), and Treble (4kHz) powered by Web Audio API BiquadFilter chain.
Real-Time VU Meter
32-band frequency analyzer and waveform oscilloscope with peak-hold level meter. Canvas-rendered at 60fps with theme-reactive colors.
Interactive World Map
MapLibre GL world map with geolocated station markers. Click any pin to play. Themed with CSS filters matching all 9 color themes.
AI Transcription
Offline speech-to-text via Whisper with real-time English translation for Arabic, Persian, Spanish, Russian, German, and 90+ languages.
Transcript Export
Save transcripts as TXT, SRT (subtitles), or JSON. Copy to clipboard. Auto-persist to SQLite with full transcript history.
9 Color Themes
Green, Amber, Blue, White, C2-Blue, DEFCON, Tactical Night, Modern Dark, and Field Manual. Each transforms the full UI including map and meters.
Offline Database
50,000+ stations bundled in local SQLite with FTS5 search. Browse by continent, country, or genre with instant results. Works fully offline.
Stream Recording
Record live radio streams via MediaRecorder API. Auto-named files with station and timestamp. WebM/Opus format.
The application runs as an Electron + React + Vite app with TypeScript throughout. The main process handles SQLite (better-sqlite3), Whisper model management, and native file dialogs. Audio flows through a Web Audio API chain with EQ filters, gain control, an analyser for visualization, and a ScriptProcessor node for PCM capture when transcription is active.
The station database is bundled with the application and copied to the user data directory on first launch. The world map uses MapLibre GL JS with Carto Voyager tiles, filtered through per-theme CSS transforms to maintain the vintage radio aesthetic across all views.
Prerequisites:
- macOS 12.0+ (Monterey or later)
- Apple Silicon Mac (M1, M2, M3, M4, M5)
- For best transcription:
brew install whisper-cpp(enables Metal GPU acceleration)
Install from DMG: Download, open the DMG, drag WorldRadio to Applications. The 53K station database is bundled.
Build from source:
xcode-select --install
brew install node
git clone https://github.com/nicodemis222/WorldRadio.git
cd WorldRadio && npm install
npm run electron:build
Transcription: Download the Small model (244 MB) for non-English languages. With Homebrew whisper-cpp installed, transcription uses Metal GPU (~5x faster).