103 lines
4.4 KiB
Markdown
103 lines
4.4 KiB
Markdown
# Nextcloud Radio app
|
|
This experimental app uses the radio-browser.info api and offers radio stations right in your Nextcloud!
|
|
|
|
[![](https://git.project-insanity.org/onny/nextcloud-app-radio/raw/master/screenshot.png)](https://git.project-insanity.org/onny/nextcloud-app-radio/raw/master/screenshot.png)
|
|
|
|
## Features
|
|
|
|
- [x] Browse hundreds of radio stations world wide and play them directly
|
|
- [x] Explore new stations in the category section
|
|
- [x] Smooth playback with audio transitions
|
|
- [x] Save stations to your favorites list
|
|
- [x] Export favorites as playlist
|
|
- [x] Add your own radio streams
|
|
|
|
## Maintainers
|
|
* [Jonas Heinrich](https://github.com/onny)
|
|
|
|
## Installation
|
|
|
|
**From the appstore**
|
|
|
|
The most recent and stable version of the app can be found in the [official appstore](https://apps.nextcloud.com/apps/radio). For ArchLinux, there is an [AUR package](https://aur.archlinux.org/packages/nextcloud-app-radio-git/) 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](https://www.transifex.com/project-insanityorg/radio-2/dashboard/).
|
|
|
|
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](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](https://git.project-insanity.org/onny/nextcloud-app-radio/issues) and for discussion you can find a section for the app in the offical Nextcloud forums [here](https://help.nextcloud.com/c/apps/radio).
|
|
|
|
### 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](https://git.project-insanity.org/onny/nextcloud-app-radio).
|
|
|
|
### 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](http://www.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](http://www.radio-browser.info/) database api as backend for this app
|
|
* Python example code to query stream metadata, took from [here](https://anton.logvinenko.name/en/blog/how-to-get-title-from-audio-stream-with-python.html).
|