ItsNotGoodName / reciva-web-remote

Control your legacy Reciva based internet radios (Crane, Grace Digital, Tangent, etc.) via web browser or HTTP API.
MIT License
7 stars 1 forks source link
reciva

reciva-web-remote

GitHub GitHub tag (latest SemVer) GitHub last commit GitHub go.mod Go version Go Report Card

Control your legacy Reciva based internet radios (Crane, Grace Digital, Tangent, etc.) via web browser or HTTP API.

Desktop Demo

Features

Running

Download and extract the zip/tar.gz file from releases.

Windows

Open the extracted folder and double-click start.bat to run the server on port 80.

You may need to press enter in the terminal and also press allow on the firewall prompt.

You may also want use winsw to run the program as a Windows service.

Flags

The web server listens on port 8080 by default. It can be changed by setting the -port flag.

./reciva-web-remote -port 9000

The UPnP control point listens on port 8058 by default. It can be changed by setting the -cport flag.

./reciva-web-remote -cport 9058

The program looks for reciva-web-remote.json file in the current folder by default. It can be changed by setting the -config flag.

./reciva-web-remote -config example.json

Host Playlists

Credit to this article.

Playlists can be hosted on the web server. This is only useful if you were able to point your presets to a domain or an IP that you own before Reciva shutdown it's service.

Take for example you have a radio where preset 1 and 2 point to http://192.168.1.2:9000/01.m3u and http://192.168.1.2:9000/02.m3u respectively.

You will have reciva-web-remote.json file with the following content.

{
  "presets": [
    {
      "url": "http://192.168.1.2:9000/01.m3u"
    },
    {
      "url": "http://192.168.1.2:9000/02.m3u"
    }
  ]
}

Then you will run the program on a machine that has the IP address 192.168.1.2 and with port 9000 available.

./reciva-web-remote -port 9000

The program will host the playlists on /01.m3u and /02.m3u.

The contents of the playlists can be changed in the web interface.

Edit Demo

API

HTTP API is documented using Swagger. Swagger file is stored in swagger.json and can be viewed using Swagger UI.

Build

Install npm packages.

make npm

Build program.

make build

Binary will be in ./bin.

Development

Install npm packages.

make npm

Run frontend.

make dev-frontend

Run backend.

make dev-backend

To Do