π΅ Discover the world through radio - A modern, feature-rich web application to stream radio stations from around the globe
- β¨ Features
- π Demo
- πΈ Screenshots
- π οΈ Technologies Used
- β‘ Quick Start
- π Project Structure
- π¨ Themes
- π§ Configuration
- π± Responsive Design
- π API Integration
- ποΈ Audio Features
- πΎ Local Storage
- π€ Contributing
- π License
- π Acknowledgments
- π Global Radio Access - Stream radio stations from 200+ countries
- πͺ Live Audio Streaming - High-quality audio playback with Web Audio API
- π Advanced Audio Controls - Play/pause, volume control, mute functionality
- π Real-time Audio Visualization - Dynamic frequency spectrum display
- π¨ Theme-aware Visualizations - Audio bars adapt to selected theme colors
- π³οΈ Country Flags - Visual country selection with flag displays
- π Smart Search - Search countries and stations with instant filtering
- π Regional Filtering - Browse by continent (Africa, Americas, Asia, Europe, Oceania)
- π» Station Metadata - Genre detection, language info, FM frequencies
- β Favorites System - Save and manage favorite radio stations
- π Recently Played - Track your listening history
- π 8 Beautiful Themes - From classic to modern, light to dark modes
- π± Fully Responsive - Perfect on desktop, tablet, and mobile
- β¨ Smooth Animations - CSS transitions and micro-interactions
- π― Modern Design - Clean, intuitive interface with FontAwesome icons
- π Theme Persistence - Your selected theme is remembered
- πͺ Loading Animations - Elegant loading states and spinners
- πΎ Local Storage - Settings and favorites persist across sessions
- π API Integration - Real-time data from Radio Browser API
- π΅ Web Audio API - Advanced audio processing and visualization
- π± Progressive Enhancement - Works on all modern browsers
- β‘ Performance Optimized - Efficient rendering and memory management
Live Demo: World FM Radio (Replace with actual demo URL)
- Modern player interface with audio visualization
- Country selection with beautiful flag displays
- Theme selector with live previews
- Grid layout with station cards
- Genre icons and metadata display
- Play buttons and favorite controls
- 8 carefully crafted themes
- Real-time theme switching
- Color-coordinated audio visualizations
Experience the app in action with our interactive demo showing:
- Theme switching in real-time
- Audio visualization responding to music
- Smooth navigation between countries and stations
- Modern UI animations and transitions
| Technology | Version | Purpose |
|---|---|---|
| HTML5 | Semantic markup and structure | |
| CSS3 | Modern styling with custom properties | |
| ES6+ | Dynamic functionality and interactions | |
| 3.5.1 | DOM manipulation and AJAX requests |
| Library | Version | Purpose |
|---|---|---|
| 4.5.2 | Responsive grid system | |
| 6.4.0 | Beautiful icons throughout the app | |
| - | Montserrat & Open Sans typography |
- π Radio Browser API - Global radio station database
- π³οΈ Flagpedia API - Country flag images
- π΅ Web Audio API - Audio processing and visualization
- π Modern web browser (Chrome, Firefox, Safari, Edge)
- π Internet connection for streaming
- π Audio output device (speakers/headphones)
-
π₯ Clone the repository
git clone https://github.com/sourcecodeRTX/Rab_Da_Radio.git cd world-fm-radio -
π Launch the application
Option A: Direct File Opening
# Open index.html in your browser start index.html # Windows open index.html # macOS xdg-open index.html # Linux
Option B: Local Server (Recommended)
# Python 3 python -m http.server 8000 # Python 2 python -m SimpleHTTPServer 8000 # Node.js (if you have http-server installed) npx http-server # PHP php -S localhost:8000
-
π Open in browser
- Navigate to
http://localhost:8000 - Or directly open
index.htmlfile
- Navigate to
- π¨ Select a theme from the theme selector in the header
- π Choose a country from the country grid
- π» Pick a radio station from the station list
- π΅ Click play and enjoy!
π¦ World FM Radio/
βββ π index.html # Main HTML file
βββ π README.md # This documentation
βββ π¨ style.css # Main CSS styles and themes
βββ π¨ player-styles.css # Audio player specific styles
βββ π¨ station-styles.css # Station cards and lists styles
βββ π script.js # Main JavaScript functionality
βββ π theme-preview.js # Theme preview component
βββ π images/
βββ πΌοΈ 1.png # App logo and branding
| File | Size | Purpose |
|---|---|---|
index.html |
~5KB | ποΈ App structure and layout |
style.css |
~45KB | π¨ Main styles, themes, and responsive design |
player-styles.css |
~8KB | π΅ Audio player and visualization styles |
script.js |
~50KB | β‘ Core functionality and interactions |
theme-preview.js |
~4KB | π¨ Theme switching component |
The app includes 8 beautiful themes, each with its own personality:
- Colors: Ocean blues and whites
- Mood: Fresh, clean, modern
- Best for: General use, professional environments
- Colors: Warm browns and creams
- Mood: Vintage, cozy, nostalgic
- Best for: Relaxed listening, vintage enthusiasts
- Colors: Nature greens and whites
- Mood: Fresh, organic, calming
- Best for: Focus, productivity, nature lovers
- Colors: Warm yellows and whites
- Mood: Bright, cheerful, retro
- Best for: Daytime listening, positive vibes
- Colors: Muted browns and beiges
- Mood: Sophisticated, warm, timeless
- Best for: Evening listening, sophisticated taste
- Colors: Electric blues and cyans
- Mood: Energetic, modern, tech-inspired
- Best for: Electronic music, modern feel
- Colors: Industrial browns and brass
- Mood: Industrial, unique, vintage-futuristic
- Best for: Alternative music, unique aesthetics
- Colors: Classic reds and whites
- Mood: Bold, passionate, classic
- Best for: Jazz, classical, romantic music
- Colors: Dark grays and muted colors
- Mood: Easy on eyes, modern, sleek
- Best for: Night listening, eye strain reduction
Themes are defined in script.js and can be easily customized:
const themes = [
{
name: "Your Custom Theme",
icon: "fas fa-star",
description: "Your theme description",
"--body-bg": "#your-color",
"--container-bg": "#your-color",
"--text-color": "#your-color",
"--button-bg": "#your-color",
// ... more CSS variables
}
];The app uses Radio Browser API. No API key required:
- Base URL:
https://de1.api.radio-browser.info/json/ - Rate Limit: Respectful usage, no explicit limits
- CORS: Enabled for web applications
Configurable in script.js:
// Audio visualization settings
analyser.fftSize = 1024; // Frequency resolution
const bufferLength = analyser.frequencyBinCount;
// Volume settings
const defaultVolume = 0.8; // Default volume (80%)
const volumeStep = 0.05; // Volume adjustment step| Device | Width | Layout Changes |
|---|---|---|
| π± Mobile | < 768px | Single column, stacked elements |
| π Tablet | 768px - 992px | Two columns, larger touch targets |
| π» Desktop | > 992px | Full grid layout, hover effects |
- β Fluid Typography - Scales with screen size
- β Flexible Grids - CSS Grid with auto-fit columns
- β Touch Optimization - Larger buttons on mobile
- β Swipe Gestures - Mobile-friendly interactions
- β Orientation Support - Works in portrait and landscape
// Country list endpoint
GET https://de1.api.radio-browser.info/json/countries
// Stations by country
GET https://de1.api.radio-browser.info/json/stations/bycountrycodeexact/{code}
// Search stations
GET https://de1.api.radio-browser.info/json/stations/search?name={query}- β Error Handling - Graceful fallbacks for API failures
- β Loading States - Visual feedback during data fetching
- β Caching - Local storage for improved performance
- β Retry Logic - Automatic retries for failed requests
- π΅ HTML5 Audio - Native browser audio support
- π Volume Control - Smooth volume slider
- π Mute Function - One-click mute/unmute
- β―οΈ Play/Pause - Responsive playback controls
- π Frequency Bars - Real-time spectrum analysis
- π¨ Theme Integration - Colors match selected theme
- β¨ Smooth Animations - 60fps visualizations
- π Dynamic Effects - Bass-responsive animations
- Sample Rate: Matches source stream
- Bit Depth: 16-bit minimum
- Channels: Mono/Stereo support
- Formats: MP3, AAC, OGG, WebM
The app stores various data locally for better user experience:
localStorage.setItem('selectedTheme', themeName);
localStorage.setItem('favoriteStations', JSON.stringify(favorites));
localStorage.setItem('recentlyPlayed', JSON.stringify(recent));
localStorage.setItem('playerVolume', volumeLevel);
localStorage.setItem('userPreferences', JSON.stringify(prefs));- β Theme Selection - Remembered across sessions
- β Favorite Stations - Saved station list
- β Volume Level - Audio preferences
- β Recent History - Last played stations
- β Search History - Quick access to searches
We welcome contributions! Here's how you can help:
- π Use the issue template
- π Include browser/OS info
- π Provide reproduction steps
- π· Add screenshots if applicable
- π‘ Describe the feature clearly
- π― Explain the use case
- π Check existing issues first
- π¨ Include mockups if helpful
- π΄ Fork the repository
- πΏ Create a feature branch
- β Test thoroughly
- π Update documentation
- π Submit a pull request
# Clone your fork
git clone https://github.com/sourcecodeRTX/Rab_Da_Radio.git
# Create feature branch
git checkout -b feature/amazing-feature
# Make changes and test
# ... your development work ...
# Commit and push
git commit -m "Add amazing feature"
git push origin feature/amazing-feature- β Consistent Formatting - Use 4 spaces for indentation
- β Meaningful Names - Clear variable and function names
- β Comments - Document complex logic
- β Modern JavaScript - ES6+ features preferred
This project is licensed under the MIT License - see the LICENSE file for details.
- β Commercial Use - Use in commercial projects
- β Modification - Modify and distribute
- β Distribution - Share with others
- β Private Use - Use privately
- β Liability - No warranty provided
- β Trademark Use - No trademark rights
- π Radio Browser - Comprehensive radio station database
- π³οΈ Flagpedia - Beautiful country flag images
- π€ Google Fonts - Montserrat and Open Sans fonts
- β‘ jQuery - Simplified DOM manipulation
- π¨ Bootstrap - Responsive CSS framework
- π― Font Awesome - Beautiful icon library
- π» Classic Radio Design - Vintage radio aesthetics
- π΅ Music Streaming Apps - Modern UI patterns
- π Material Design - Color and animation principles
Ready to explore world radio?
- π₯ Download or clone this repository
- π Open
index.htmlin your browser - π¨ Pick your favorite theme
- π Choose a country
- π» Select a station
- π΅ Enjoy radio from around the world!
Made with β€οΈ by [Your Name]
"Discover the world through radio" ππ»β¨



