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 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) is recommended
- connect your Pi to the network
sudo raspi-config
1 System Options
S2 Audio
select the correct audio device (you can also configure audio usingalsamixer
)S5 Boot / Auto Login
selectB2 Console Autologin
S6 Network at Boot
selectYes
2 Display Options
>D5 Screen Blanking
selectNo
- 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/IPi-Radio.py
optionally you can change some settings, for that you open IPi-Radio/src/settings/settings.json
- change
framebuffer
if you have a screen, that is not using default/dev/fb0
- set
IP
orPort
of the webserver or disable it by settingrunWebserver
tofalse
- change
touchOptimize
tofalse
if 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
useFramebuffer
tofalse
- (optional) set
IP
orPort
of the webserver
- set
- start with
python3 src/IPi-Radio.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!