Self hosted vTuner internet radio service emulation
YCast is a self hosted replacement for the vTuner internet radio service which many AVRs use. It emulates a vTuner backend to provide your AVR with the necessary information to play self defined categorized internet radio stations and listen to Radio stations listed in the Community Radio Browser index.
YCast is for you if: * You do not want to use a proprietary streaming service * You are sick of loading delays and/or downtimes of the vTuner service * You do not want to pay for a feature which was free before * You are unsure about the continuation of the vTuner service
Theoretically, YCast should work for most AVRs which support vTuner. Most AVRs with network connectivity that were produced between 2011 and 2017 have vTuner support built-in.
Go ahead, test it with yours and kindly report the results back. Any reported device helps the community to see which AVRs work properly and which may have issues.
Python packages: *
YCast really does not need much computing power nor bandwidth, i.e. you can run it on a low-spec RISC machine like a Raspberry Pi or a home router.
You need to create a manual entry in your DNS server (read 'Router' for most home users). The
*.vtuner.comdomain should point to the machine YCast is running on. Specifically the following entries may be configured instead of a wildcard entry:
You can run YCast by using the built-in development server of Flask (not recommended for production use, but should™ be enough for your private home use):
python -m ycast
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
-prespectively) if you are already running a HTTP server on the target machine and/or want to proxy or restrict YCast access.
It is advised to use a proper webserver (e.g. Nginx) in front of YCast if you can. Then, you also don't need to run YCast as root and can proxy the requests to YCast running on a higher port (>1024) listening only on
You can redirect all traffic destined for the original request URL (e.g.
onkyo.vtuner.com) or need to redirect the following URLs from your webserver to YCast: *
Attention: Do not rewrite the requests transparently. YCast expects the complete URL (i.e. including
/setupapp). It also need an intact
Hostheader; 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;.
You can also setup a proper WSGI server. See the official Flask documentation.
If you want to use the 'My Stations' feature, create a
stations.ymland run YCast with the
-cswitch 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 to better understand the configuration.
80of the machine running YCast.