Go to file
2020-10-16 18:42:25 +02:00
appinfo rewrite init 2020-10-12 17:29:36 +02:00
css rewrite init 2020-10-12 17:29:36 +02:00
img rewrite init 2020-10-12 17:29:36 +02:00
lib/Controller rewrite init 2020-10-12 17:29:36 +02:00
src table component: style sticky table header 2020-10-16 18:42:25 +02:00
templates rewrite init 2020-10-12 17:29:36 +02:00
.editorconfig rewrite init 2020-10-12 17:29:36 +02:00
.eslintrc.js TableItem component further styling 2020-10-15 12:00:23 +02:00
.gitignore rewrite init 2020-10-12 17:29:36 +02:00
.gitlab-ci.yml gitlab-ci: further tests 2020-10-13 11:59:05 +02:00
.npmignore rewrite init 2020-10-12 17:29:36 +02:00
babel.config.js rewrite init 2020-10-12 17:29:36 +02:00
CHANGELOG.md added further meta files 2020-10-13 11:23:42 +02:00
composer.json rewrite init 2020-10-12 17:29:36 +02:00
COPYING added further meta files 2020-10-13 11:23:42 +02:00
Makefile rewrite init 2020-10-12 17:29:36 +02:00
package-lock.json add table vue component 2020-10-14 12:51:17 +02:00
package.json add table vue component 2020-10-14 12:51:17 +02:00
README.md Dockerfile: init 2020-10-13 12:43:28 +02:00
screenshot.png added further meta files 2020-10-13 11:23:42 +02:00
stylelint.config.js rewrite init 2020-10-12 17:29:36 +02:00
webpack.js rewrite init 2020-10-12 17:29:36 +02:00

Nextcloud Radio app

This experimental app uses the radio-browser.info api and offers radio stations right in your Nextcloud!

Features

  • Browse hundreds of radio stations world wide and play them directly
  • Save stations to your favorites list
  • Smooth playback with audio transitions
  • Explore new stations in the category section

Maintainers

Installation

From the appstore

The most recent and stable version of the app can be found in the official appstore. For ArchLinux, there is an AUR package available.

From source

Clone the development repository with:

git clone https://git.project-insanity.org/onny/nextcloud-app-radio.git radio

Then run following commands to compile the project:

cd radio
make dev-setup
make build-js

Mount or move the radio folder into your Nextcloud apps/ directory. Go to the apps manager tab in your Nextcloud web interface, and enable the Radio app.

Testing

Can be easily tested using Docker:

docker build -t nextcloud .
docker run -v /tmp/nextcloud-app-radio:/opt/nextcloud/apps/radio -d --name nextcloud-app-radio -p 80:80 nextcloud

First part of -v is the path to the cloned and compiled or downloaded Nextcloud Radio app. Debug running container it with:

docker exec -i -t 665b4a1e17b6 /bin/bash

Where -t specifies the container id. If you further need to access the sqlite-database, logs or files inside the data folder of Nextcloud, that you also have to share this folder with the host:

docker run -v /tmp/dockerdata:/data/data -v /tmp/nextcloud-app-radio:/opt/nextcloud/apps/radio -d --name nextcloud -p 80:80 rootlogin/nextcloud

Development notes

While editing the code, you could run following helper script to automatically compile the project:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p # ref: https://github.com/gatsbyjs/gatsby/issues/11406
make watch-js

Reporting bugs

You can report bugs in the public gitlab repository here and for discussion you can find a section for the app in the offical Nextcloud forums here.

Adding translations

For now only German translations are provided, so please submit your translations if possible :) It's really easy, just git clone this repo and copy the translation files in l10n according to your locale. Merge requests go to this radio repository.

Adding radio stations

This app uses a public and open database of radio stations as its backend, so any station you add in radio-browser.info (no account required), will be also available in this app. Feel free to contribute :)

Credits

  • radio-browser.info database api as backend for this app
  • Python example code to query stream metadata, took from here.

Donation

If you like this app and want to support my work, you can donate to this Bitcoin address:

19mpmuNczGDgdxaBLBn3REEpQLPPcJHZB6