自托管VTune Internet广播服务仿真
ycast的Python项目详细描述
ycast
ycast是许多avr使用的"VTune网络广播服务"的自托管替代品。 它模拟VTune后端,为您的AVR提供必要的信息,以便播放自定义分类的Internet广播电台,并收听在社区广播浏览器索引中列出的广播电台
Ycast是为您准备的,如果:
- 您不想使用专有的流媒体服务
- 您厌倦了加载"VTune"服务的延迟和/或停机时间
- 您不确定是否继续使用"VTune"服务
支持的设备
理论上,ycast应该适用于支持vtuner的大多数avr。
继续测试,请将结果报告给我们:)
确认工作
- 雅马哈RX-VX73系列(RX-V373、RX-V473、RX-V573、RX-V673、RX-V773)
- 雅马哈R-N500
- 雅马哈RX-A820
- 雅马哈RX-A830
- Onkyo TX-NR414
- Marantz Melody Media M-CR610
未确认/实验性
- 雅马哈RX-VX75系列(RX-V375、RX-V475、RX-V575、RX-V675、RX-V775)
- 雅马哈RX-VX77系列(RX-V377、RX-V477、RX-V577、RX-V677、RX-V777)
- 雅马哈RX-VX79系列(RX-V379、RX-V479、RX-V579、RX-V679、RX-V779)
- 雅马哈RX-VX81系列(RX-V381、RX-V481、RX-V581、RX-V681、RX-V781)
- 雅马哈RX-S600D
- 雅马哈RX-S601D
- 雅马哈WX-030
- 雅马哈RX-A1060
- 雅马哈RX-V2700
- 雅马哈RX-V3800
- 雅马哈CX-A5000
依赖关系:
python版本:3
python包:
请求
烧瓶
pyyaml
用法
ycast真的不需要太多的计算能力和带宽。它只是为AVR提供信息。流媒体 它本身直接由avr处理,也就是说,你可以在一个低规格的risc机器上运行它,比如树莓p i。
DNS条目
您需要在您的dns服务器中创建一个手动条目(对于大多数家庭用户,请阅读"路由器")。vtuner.com
应该指向ycast正在运行的机器。或者,如果您只想转发特定的供应商,可以配置以下条目:
- 雅马哈AVRS:
radioyamaha.vtuner.com
(也可以选择radioyamaha2.vtuner.com
) - onkyo avrs:
onkyo.vtuner.com
(也可以选择onkyo2.vtuner.com
) - denon/marantz avrs:
denon.vtuner.com
(也可以选择denon2.vtuner.com
)
运行服务器
带有内置Web服务器
您可以使用flask的内置开发服务器来运行ycast(不推荐用于生产,但(tm)应该足以供您的私人家庭使用):只需运行包:python-m ycast
虽然您只需使用根权限在端口80上侦听所有接口即可运行ycast,但由于各种原因,这可能不是必需的。
如果已经在目标计算机上运行http服务器,则可以更改侦听地址和端口(分别通过-l
和-p
)
和/或希望代理或限制ycast访问。
如果可以的话,建议在ycast前面使用合适的web服务器(例如nginx)。
然后,您也不需要以根用户身份运行ycast,并且可以将请求代理到只监听localhost
您可以重定向所有发往原始请求url的流量(例如radioyamaha.vtuner.com
,onkyo.vtuner.com
),或者需要将以下url从Web服务器重定向到ycast:
/setupapp<
/ycast
注意:不要透明地重写请求。ycast需要完整的url(即包括/ycast
或/setupapp
)。它还需要一个完整的host
header;因此,如果要代理ycast,则需要传递原始header。对于nginx,这可以通过proxy\u set\u header host$host;
来实现。
如果您正在使用(或计划使用)nginx代理请求,请查看此示例。 这可以与此Systemd服务示例一起使用,以实现功能全面的部署。
使用wsgi
自定义电台
如果要在全局无线电索引之外使用"我的电台"功能,请创建一个stations.yml
并使用-c
开关运行ycast以指定指向它的路径。配置遵循基本的yaml结构(见下文)。
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
您还可以查看提供的示例以更好地了解配置。
防火墙规则
- 您的AVR需要访问Internet(即您定义的站点URL)。
- 您的avr需要到达运行ycast的机器的端口
80
。 - 如果您想使用RadioBrowser电台,运行Ycast的机器需要访问Internet。
注意事项
- 与VTune兼容的AVR不执行https。因此,ycast盲目地将每个https站点url重写为http。大多数站 为其站点使用https的提供者也提供http流。因此,必须使用https站点。
- 某些电台徽标与"VTune前端"不兼容。
- 内置书签功能目前不起作用。您现在需要手动添加喜爱的电台。