Simple and easy IP Radio for Raspberry Pi (and any Linux based machine)
-
Play radio streams
-
Navigate using keyboard, remote or touchscreen
-
Configure radio stations with the WebUI
-
AUTO mode: automatically play specific radio stations at given time frames
-
Shows current DLS radio text
-
Clock
-
Lightweight (uses ~20MiB of RAM)
- Raspberry Pi (tested on 3 and 4, but older ones should work too)
- SDcard >= 4GB
- Screen with at least 800x450 is recommended (touchscreen is optional)
- Python 3.8 or newer
- Raspberry Pi OS lite (without GUI / X server / Wayland) is recommended
- connect your Pi to the network
sudo raspi-config1 System OptionsS2 Audioselect the correct audio device (you can also configure audio usingalsamixer)S5 Boot / Auto LoginselectB2 Console AutologinS6 Network at BootselectYes
2 Display Options>D5 Screen BlankingselectNo
- make sure all packages are up to date
sudo apt update && sudo apt dist-upgrade
# install dependencies
sudo apt install git python3 python3-pyqt5 python3-pyqt5.qtquick qml-module-qtquick2 qml-module-qtquick-controls2 qml-module-qtquick-window2 python3-vlc vlc pulseaudio
# Note: you will need at least Python 3.8 and vlc 3.0.0
# reboot
sudo reboot now
# clone this repo
git clone https://github.com/IPi-Radio/IPi-Radio.git -b v2
# "enable" config files inside src/settings
mv settings.json.example settings.json
mv stations.json.example stations.json
# add IPi-Radio to autostart
sudo nano /etc/rc.local
# insert above(!) the exit 0 statement:
python3 /path/to/repo/IPi-Radio/src/main.pyoptionally you can change some settings, for that you open IPi-Radio/src/settings/settings.json
- change
framebufferif you have a screen, that is not using default/dev/fb0 - set
IPorPortof the webserver or disable it by settingrunWebservertofalse - change
touchOptimizetofalseif you don't want touchscreen optimization
you also may want to adjust the brightness of your screen:
Debian 10
echo n | sudo tee /sys/class/backlight/rpi_backlight/device/backlight/rpi_backlight/brightness
Debian 11
echo n | sudo tee /sys/class/backlight/10-0045/brightness
while n is a value between 0 and 255
- change settings in
src/settings/settings.json- set
useFramebuffertofalse - (optional) set
IPorPortof the webserver
- set
- start with
python3 src/main.py
- navigate into the folder of the cloned repository
- run
git pull - done!
- the clock does not show the correct time
- configure timezone:
sudo dpkg-reconfigure tzdata
- configure timezone:
- Drag & Drop in the WebUI leads to unfolding of the draged item (help needed)
- Only searching by name is possible for now (more to come)
Make sure to check out the GitHub project board.
If you want to help this project, feel free to create a new issue or a pull request.
This project is using segler-alex/radiobrowser-api-rust via www.radio-browser.info, thank you guys for this awesome API!


