A lightweight system-tray online radio player built with C++ and Qt 6.
✅ System Tray Integration - Runs quietly in the background, accessible from the system tray
✅ Online Radio Streaming - Supports HTTP/HTTPS streams (Icecast, Shoutcast, MP3, AAC, OGG)
✅ API Station Discovery - Browse and search 30,000+ radio stations worldwide via Radio Browser API
✅ Search by Country/Genre/Name - Find stations from Egypt, USA, or any country; filter by music genre
✅ Pre-configured Stations - Includes default stations (customizable via JSON file)
✅ Volume Control - Adjustable volume with persistent settings (0%, 25%, 50%, 75%, 100%)
✅ Notifications - Desktop notifications for playback events and track changes
✅ Auto-Reconnect - Automatically reconnects if the stream is interrupted
✅ Persistent Settings - Remembers your last station and volume level
✅ Metadata Display - Shows current track information when available
✅ Ubuntu/Linux - Primary platform, fully tested
✅ Windows - Cross-platform compatible (Qt 6)
⏳ macOS - Should work (untested)
Development Tools:
sudo apt-get update
sudo apt-get install -y \
build-essential \
cmake \
gitQt 6 Libraries:
sudo apt-get install -y \
qt6-base-dev \
qt6-multimedia-dev \
qt6-base-private-dev \
libqt6multimedia6 \
libqt6multimediawidgets6GStreamer Plugins (Audio Backend):
sudo apt-get install -y \
gstreamer1.0-tools \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libavOptional Tools:
sudo apt-get install -y \
librsvg2-bin \
dpkg-devRequirements:
-
Qt 6 (6.2 or later) - Download from qt.io
- Choose: Qt 6.x for Windows (MSVC 2019 64-bit or MinGW)
- Install components: Qt Multimedia, Qt Network
-
CMake (3.16 or later) - Download from cmake.org
-
Compiler:
- Option A: Visual Studio 2019/2022 with C++ Desktop Development
- Option B: MinGW (included with Qt installer)
- Navigate to source directory
cd /root/Documents/RadioPlayer- Install dependencies (if not already installed)
./install_dependencies.sh- Build the application
./build.shOr manually:
mkdir build && cd build
cmake ..
make -j$(nproc)- Run
./build/RadioPlayer-
Open Qt Command Prompt (from Start Menu → Qt → Qt 6.x for Desktop)
-
Navigate to source directory
cd C:\path\to\plyn- Create build directory
mkdir build
cd build- Configure with CMake
For Visual Studio:
cmake .. -G "Visual Studio 16 2019" -A x64For MinGW:
cmake .. -G "MinGW Makefiles"- Build
For Visual Studio:
cmake --build . --config ReleaseFor MinGW:
mingw32-make- Run
For Visual Studio:
.\Release\RadioPlayer.exeFor MinGW:
.\RadioPlayer.exeThe easiest way to install RadioPlayer on Ubuntu/Linux:
# Clone the repository
git clone https://github.com/HossamSaberr/RadioPlayer.git
cd RadioPlayer
# Run the install script (builds and installs automatically)
sudo ./install.shThis will:
- Check for required dependencies
- Build the application
- Install to
/usr/local/bin/RadioPlayer - Add RadioPlayer to your application menu
Without sudo (installs to ~/.local):
./install.shcd build
sudo make installThis installs:
- Binary:
/usr/local/bin/RadioPlayer - Icon:
/usr/local/share/radioplayer/icon.png - Stations:
/usr/local/share/radioplayer/stations.json
cd build
cpack -G DEB
sudo dpkg -i RadioPlayer-1.0.0-Linux.deb# From terminal
RadioPlayer
# Or find it in your application menu under "Sound & Video"No installation needed! Simply run RadioPlayer.exe from the build directory.
Optional: Create a shortcut:
- Right-click
RadioPlayer.exe - Select "Create shortcut"
- Move shortcut to Desktop or Startup folder
- Start the application - The radio icon appears in your system tray
- Left-click the tray icon to toggle Play/Stop
- Right-click to open the menu with these options:
- ▶ Play - Start playback of the current station
- ⏹ Stop - Stop playback
- 📻 Stations - Select from pre-configured stations
- 🔊 Volume - Adjust volume (0%, 25%, 50%, 75%, 100%)
- 📡 Discover Stations - Browse 30,000+ stations via API
- ℹ About - Show app information
- ✕ Quit - Exit the application
Click 📡 Discover Stations to access the station browser:
- Search by Country: Find local stations (Egypt, USA, UK, etc.)
- Search by Genre: Browse by music style (pop, rock, jazz, etc.)
- Search by Name: Find specific stations
- Top Stations: Get the most popular worldwide stations
Double-click any station to play it instantly!
Currently, playback is controlled entirely through the tray menu. Global keyboard shortcuts are planned for a future release.
Settings location:
- Linux:
~/.config/RadioPlayer/RadioPlayer.conf - Windows:
%APPDATA%\RadioPlayer\RadioPlayer.conf
Stored settings:
- Last played station
- Volume level
- Playback state (for auto-resume)
- Auto-start preference (future feature)
GNOME Desktop:
# Install GNOME Shell extension for tray icons
sudo apt-get install gnome-shell-extension-appindicator
# Enable the extension
gnome-extensions enable [email protected]
# Restart GNOME Shell: Press Alt+F2, type 'r', press EnterAlternative: Use GNOME Tweaks
sudo apt-get install gnome-tweaks
# Open Tweaks → Extensions → Enable "Ubuntu AppIndicators"- Check GStreamer plugins:
sudo apt-get install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav- Test stream URL manually:
gst-play-1.0 "http://ice1.somafm.com/groovesalad-128-mp3"- Check audio output:
pactl list sinks # List available audio outputsError: The code execution cannot proceed because Qt6Core.dll was not found
Solution: Add Qt bin directory to PATH or copy DLLs to app directory
# Option 1: Add to PATH (replace with your Qt installation path)
set PATH=C:\Qt\6.5.0\msvc2019_64\bin;%PATH%
# Option 2: Use windeployqt (recommended for distribution)
windeployqt.exe RadioPlayer.exe- Check Windows notification area settings
- Click the up arrow (^) in system tray to show hidden icons
- Right-click taskbar → Taskbar settings → Other system tray icons → Enable RadioPlayer
- Verify the stream URL is correct and accessible
- Check your internet connection
- Some streams may be geo-restricted
- Try a different station from the Discover Stations browser
- Check firewall settings
Linux:
# Run with debug output
QT_DEBUG_PLUGINS=1 ./RadioPlayer
# Check Qt installation
qmake6 --versionWindows:
# Run from command prompt to see error messages
RadioPlayer.exe
# Check Qt installation
qmake --version- No global keyboard shortcuts (yet)
- No recording capability (planned)
- No equalizer or audio effects
- Windows version untested (should work)
- Global keyboard shortcuts (Play/Pause, Volume Up/Down)
- Settings dialog for auto-start and other preferences
- Station manager GUI for adding/removing stations
- Mini floating player window
- Stream recording capability
- macOS support