update readme and prep for prerelease rollout
This commit is contained in:
parent
6eba2c8ec2
commit
b1dca83e51
3 changed files with 32 additions and 30 deletions
58
README.md
58
README.md
|
@ -52,38 +52,21 @@ Python packages:
|
|||
YCast really does not need much computing power nor bandwidth. It just serves the information to the AVR. The streaming
|
||||
itself gets handled by the AVR directly, i.e. you can run it on a low-spec RISC machine like a Raspberry Pi.
|
||||
|
||||
### DNS entries
|
||||
|
||||
You need to create a manual entry in your DNS server (read 'Router' for most home users). `vtuner.com` should point to the machine YCast is running on. Alternatively, in case you only want to forward specific vendors, the following entries may be configured:
|
||||
|
||||
* Yamaha AVRs: `radioyamaha.vtuner.com` (and optionally `radioyamaha2.vtuner.com`)
|
||||
* Onkyo AVRs: `onkyo.vtuner.com` (and optionally `onkyo2.vtuner.com`)
|
||||
* Denon/Marantz AVRs: `denon.vtuner.com` (and optionally `denon2.vtuner.com`)
|
||||
|
||||
If you want to use the 'My Stations' feature besides the global radio index, create a `stations.yml` and run YCast with the `-c` switch to specify the path to it. The config follows a basic YAML structure (see below).
|
||||
|
||||
### stations.yml
|
||||
```
|
||||
Category one name:
|
||||
First awesome station name: first.awesome/station/URL
|
||||
Second awesome station name: second.awesome/station/URL
|
||||
### Running the server
|
||||
|
||||
Category two name:
|
||||
Third awesome station name: third.awesome/station/URL
|
||||
Fourth awesome station name: fourth.awesome/station/URL
|
||||
```
|
||||
|
||||
### Running
|
||||
#### With built-in webserver
|
||||
|
||||
You can run YCast by using the built-in development server of Flask (not recommended for production use, but should(tm) be enough for your private home use): Just run the package: `python -m ycast`
|
||||
|
||||
Alternatively you can also setup a proper WSGI server.
|
||||
|
||||
-- TODO: WSGI stuff
|
||||
|
||||
You can also have a look at the provided [example](examples/stations.yml.example) to better understand the configuration.
|
||||
|
||||
|
||||
## Web server configuration
|
||||
|
||||
While you can simply run YCast with root permissions listening on all interfaces on port 80, this may not be desired for various reasons.
|
||||
|
||||
You can change the listen address and port (via `-l` and `-p` respectively) if you are already running a HTTP server on the target machine
|
||||
|
@ -96,21 +79,40 @@ You can redirect all traffic destined for the original request URL (e.g. `radioy
|
|||
* `/setupapp`
|
||||
* `/ycast`
|
||||
|
||||
__Attention__: Do not rewrite the request transparently. YCast expects the complete URL (i.e. including `/ycast` or `/setupapp`). It also need an intact `Host` header; so if you're proxying YCast you need to pass the original header on. For Nginx, this can be accomplished with `proxy_set_header Host $host;`.
|
||||
__Attention__: Do not rewrite the requests transparently. YCast expects the complete URL (i.e. including `/ycast` or `/setupapp`). It also need an intact `Host` header; so if you're proxying YCast you need to pass the original header on. For Nginx, this can be accomplished with `proxy_set_header Host $host;`.
|
||||
|
||||
In case you are using (or plan on using) Nginx to proxy requests, have a look at [this example](examples/nginx-ycast.conf.example).
|
||||
This can be used together with [this systemd service example](examples/ycast.service.example) for a fully functional deployment.
|
||||
|
||||
#### With WSGI
|
||||
|
||||
You can also setup a proper WSGI server. See the [official Flask documentation](https://flask.palletsprojects.com/en/1.1.x/deploying/).
|
||||
|
||||
### Custom stations
|
||||
|
||||
If you want to use the 'My Stations' feature besides the global radio index, create a `stations.yml` and run YCast with the `-c` switch to specify the path to it. The config follows a basic YAML structure (see below).
|
||||
|
||||
```
|
||||
Category one name:
|
||||
First awesome station name: first.awesome/station/URL
|
||||
Second awesome station name: second.awesome/station/URL
|
||||
|
||||
Category two name:
|
||||
Third awesome station name: third.awesome/station/URL
|
||||
Fourth awesome station name: fourth.awesome/station/URL
|
||||
```
|
||||
|
||||
You can also have a look at the provided [example](examples/stations.yml.example) to better understand the configuration.
|
||||
|
||||
## Firewall rules
|
||||
|
||||
* The server running YCast does __not__ need internet access.
|
||||
* Your AVR needs access to the internet (i.e. to the station URLs you defined).
|
||||
* Your AVR needs to reach port `80` of the machine running YCast.
|
||||
* If you want to use Radiobrowser stations, the machine running YCast needs internet access.
|
||||
|
||||
## Caveats
|
||||
|
||||
YCast was a quick and dirty project to lay the foundation for having a self hosted vTuner emulation.
|
||||
|
||||
It is a barebone service at the moment. It provides your AVR with the basic info it needs to play internet radio stations.
|
||||
Maybe this will change in the future, maybe not.
|
||||
For now just station names and URLs; no web-based management interface, no coverart, no cute kittens, no fancy stuff.
|
||||
* vTuner compatible AVRs don't do HTTPS. As such, YCast blindly rewrites every HTTPS station URL to HTTP. Most station
|
||||
providers which utilize HTTPS for their stations also provide an HTTP stream. Thus, must HTTPS stations should work.
|
||||
* Some station logos are not compatible with the vTuner frontend.
|
||||
* The built-in bookmark function does not work at the moment. You need to manually add your favourite stations for now.
|
||||
|
|
|
@ -6,7 +6,7 @@ After=network.target
|
|||
Type=simple
|
||||
User=ycast
|
||||
Group=ycast
|
||||
ExecStart=/opt/ycast/ycast.py -l 127.0.0.1 -p 8010
|
||||
ExecStart=/usr/bin/python3 -m ycast -l 127.0.0.1 -p 8010
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
2
setup.py
2
setup.py
|
@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
|||
|
||||
setup(
|
||||
name='ycast',
|
||||
version='1.0.0',
|
||||
version='0.9.8',
|
||||
author='Micha LaQua',
|
||||
author_email='micha.laqua@gmail.com',
|
||||
description='Self hosted vTuner internet radio service emulation',
|
||||
|
|
Loading…
Reference in a new issue