自托管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.comonkyo.vtuner.com),或者需要将以下url从Web服务器重定向到ycast:

  • /setupapp<
  • /ycast

注意:不要透明地重写请求。ycast需要完整的url(即包括/ycast/setupapp)。它还需要一个完整的hostheader;因此,如果要代理ycast,则需要传递原始header。对于nginx,这可以通过proxy\u set\u header host$host;来实现。

如果您正在使用(或计划使用)nginx代理请求,请查看此示例。 这可以与此Systemd服务示例一起使用,以实现功能全面的部署。

使用wsgi

您还可以设置正确的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

您还可以查看提供的示例以更好地了解配置。

防火墙规则

注意事项

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javajexcel包装文本问题   EclipseJavaEnum缩进超过左括号。如何让它看起来更正常?   java有办法包含Tomcat 6 catalina。out和localhost。在网络应用的日志文件中记录内容?   java如何永久性地阻止JavaFX代码在eclipse中被突出显示为错误?   如何在java中优化两个for循环(for循环中的for循环)   java如何在我的windows机器上从jar文件创建mac osx的可执行文件   使用记忆化/动态规划的Java组合学   Java中的游荡对象垃圾收集   java为什么我在JSP和JDBC和MySQL中遇到连接失败错误   java轮询Pod的就绪状态   如何创建电子邮件并将其发送到Java中的特定地址?   java如何修复Dagger 2错误“。。。无法提供[…]”?   java Android单选按钮看起来太轻   Android Studio:开发在应用程序之间共享的通用java库