Code Monkey home page Code Monkey logo

ipi-radio's Introduction

favicon.png IPi-Radio

Simple and easy IP Radio for Raspberry Pi (and any Linux based machine)

Showcase

screenshot_main

Features

  • 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)

How to install (Raspberry Pi)

Requirements
  • 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
Pre Install
  • 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 using alsamixer)
      • S5 Boot / Auto Login select B2 Console Autologin
      • S6 Network at Boot select Yes
    • 2 Display Options > D5 Screen Blanking select No
  • make sure all packages are up to date sudo apt update && sudo apt dist-upgrade
Install IPi-Radio
# 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
Post Install

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 or Port of the webserver or disable it by setting runWebserver to false
  • change touchOptimize to false 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

For non-Raspberry Pi machines

  • change settings in src/settings/settings.json
    • set useFramebuffer to false
    • (optional) set IP or Port of the webserver
  • start with python3 src/IPi-Radio.py

How to update

  • navigate into the folder of the cloned repository
  • run git pull
  • done!

Troubleshooting

  • the clock does not show the correct time
    • configure timezone: sudo dpkg-reconfigure tzdata

Known issues / limitations

  • 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.

Contribute

If you want to help this project, feel free to create a new issue or a pull request.

Credits

This project is using segler-alex/radiobrowser-api-rust via www.radio-browser.info, thank you guys for this awesome API!

ipi-radio's People

Contributors

endercrypt avatar zocker-160 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tosunkaya

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.