没有status.xsl的icecast流标题
我想在一些icecast流媒体中获取标题(艺术家 - 歌曲)。这里有很多讨论,大多数人只是查看status.xsl文件(就像Icecast Now Playing PHP脚本那样)。
但是:
- 很多流媒体不允许其他脚本读取这个文件(例如
http://95.81.147.3/status.xsl?mount=/fip/all/fiphautdebit.mp3
)
- 正如ePirat所说,像这样解析HTML并不安全。不过他提出的解决方案只有在我们能访问服务器时才有效。
根据我所读到的内容:icecast流媒体本身有元数据,但这个解决方案只适用于shoutcast。所以对于这个链接也是如此。
我找到的最接近的东西是这个代码审查,但尽管标题提到icecast,我看到的只是带有Icy-MetaData检查的shoutcast代码。
这个非常完整的链接可能会有用(“带外标准”部分),但它解释说这仍然无法工作。
问题基本上是:为了获取艺术家 - 歌曲的信息,如何读取icecast流媒体的元数据,当:
- 我不是服务器的管理员
- 我不想/不能解析status.xsl?
谢谢你的帮助
1 个回答
从Icecast 2.4开始,获取服务器上运行的流的机器可读元数据的推荐方式是使用status-json.xsl。这个JSON接口在所有安装中默认是开启的。
如果status-json.xsl返回404错误,说明服务器管理员故意选择关闭了访问。在这种情况下,或者在一些老版本的Icecast(2.3.x)中,这些版本不会更新为支持JSON接口(管理员只需将status-json.xsl和xml2json.xslt复制到web目录就可以了),那么尝试直接解析流来获取元数据的方法虽然不太好,但也是可行的。不过,大家可能会想,如果管理员选择不允许访问元数据,那他们是否也同意在简单收听之外,其他人使用他们的流呢?