Ushki Radio is a lightweight, modern web-based radio player built with Expo and React Native Paper. It allows users to browse, search, and listen to thousands of radio stations from around the world.
- Web Version: Available online
- Standalone Versions: Available at the releases page (Native version packed by Pake)
- Google Play Version: Avaiable at the Google Play
- Global Search: Find stations by name or tags.
- Top Stations: Discover popular stations based on community feedback.
- Favorites: Save your favorite stations for quick access.
- Volume Control: Easy-to-use volume adjustment in the playback bar.
- Localization: Automatically detects and supports English and Russian.
- Persistence: Remembers your last played station and volume level.
- Responsive Design: Works beautifully on web browsers.
- Framework: Expo / React Native
- UI Library: React Native Paper
- Audio Handling: expo-audio
- Localization:
expo-localization&i18n-js - Storage:
@react-native-async-storage/async-storage
Ushki Radio utilizes the Radio Browser API, a community-driven database of worldwide radio stations.
The application interacts with the API through the RadioService.js component. It uses the following endpoints:
- Base URL:
https://de1.api.radio-browser.info/json - Top Stations: Fetches stations ordered by
clickcountto show users what's popular. - Search: Queries stations by name with filters to hide broken links and prioritize popular results.
Example implementation in RadioService.js:
const response = await fetch(`${BASE_URL}/stations/search?name=${query}&order=clickcount&reverse=true&hidebroken=true`);- Install dependencies:
npm install
- Start the development server for web:
npm run web
- Export for static hosting:
npm run build:web
The build output will be located in the dist/ directory.
- Why on first load I get forever load and nothing happens?
- Your ISP might be blocking access to the radio-browser.info API.
This project is licensed under the 0BSD License.

