Go to file
2021-04-07 12:07:11 +02:00
.tx add translation infrastructure 2020-10-18 12:10:17 +02:00
appinfo update npm modules (fixes #269) 2021-04-07 12:07:11 +02:00
css update copyright year 2021-01-15 11:21:53 +01:00
img fix navigation and search routing 2020-11-11 15:53:42 +01:00
l10n add make translations to CI, fix test errors 2020-12-03 11:07:03 +01:00
lib add export favorite stations as playlist (fixes #105) 2021-03-13 13:37:15 +01:00
src update npm modules (fixes #269) 2021-04-07 12:07:11 +02:00
templates update copyright year 2021-01-15 11:21:53 +01:00
translationfiles update copyright year 2021-01-15 11:21:53 +01:00
utils add utils 2020-10-28 21:22:46 +01:00
.editorconfig rewrite init 2020-10-12 17:29:36 +02:00
.eslintrc.js eslint: enable console 2020-10-17 12:10:09 +02:00
.gitignore rewrite init 2020-10-12 17:29:36 +02:00
.gitlab-ci.yml trying to fix gitlab-ci 2021-03-10 18:30:52 +01:00
.l10nignore add translation infrastructure 2020-10-18 12:20:25 +02:00
.nextcloudignore test release v1.0.0.17-pre 2020-12-03 11:59:06 +01: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 update npm modules (fixes #269) 2021-04-07 12:07:11 +02:00
composer.json add krankerl publish to makefile, initial code signing support 2020-11-29 11:07:27 +01:00
COPYING add agpl license headers, fix #206 2020-11-24 15:16:53 +01:00
krankerl.toml test release v1.0.0.18-pre 2020-12-05 09:34:45 +01:00
Makefile add make translations to CI, fix test errors 2020-12-03 11:07:03 +01:00
package-lock.json update npm modules (fixes #269) 2021-04-07 12:07:11 +02:00
package.json update npm modules (fixes #269) 2021-04-07 12:07:11 +02:00
postcss.config.js use autoprefix to support legacy browsers css 2020-11-24 15:50:12 +01:00
README.md update npm modules (fixes #269) 2021-04-07 12:07:11 +02:00
Release.md release v1.0.3 2021-03-13 13:44:08 +01:00
screenshot-thumbnail.jpg test release v1.0.0.5 2020-11-27 11:23:13 +01:00
screenshot.png test release v1.0.0.5 2020-11-27 11:23:13 +01:00
stylelint.config.js rewrite init 2020-10-12 17:29:36 +02:00
webpack.js use autoprefix to support legacy browsers css 2020-11-24 15:50:12 +01: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
  • Explore new stations in the category section
  • Smooth playback with audio transitions
  • Save stations to your favorites list
  • Export favorites as playlist
  • Add your own radio streams

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 https://git.project-insanity.org/onny/docker-nextcloud.git
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

General

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

Translations

Manually generate translations. The following commands will require the dependency packages gettext and php.

cd nextcloud-app-radio
git clone https://github.com/nextcloud/docker-ci.git utils/docker-ci
make translations

Use the source file translationfiles/template/radio.pot to create translations. For example, contribute translations via Transifex.

Put the translated language file into the corresponding template folder. For example the German language file should be placed at translationfiles/de/radio.po. Run make translations again.

Prepare a release

Consoult Release.md on how to prepare a release for Gitlab and the app store.

Contribute

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

Donation

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

19mpmuNczGDgdxaBLBn3REEpQLPPcJHZB6

Credits

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