icecast 流的标题(没有 status.xsl)
Posted
技术标签:
【中文标题】icecast 流的标题(没有 status.xsl)【英文标题】:Title of icecast stream (without status.xsl) 【发布时间】:2014-12-24 14:55:41 【问题描述】:我尝试为一些 icecast 流设置标题(艺术家 - 歌曲)。
这里有很多关于它的讨论,其中大多数只是检查 status.xsl(就像 Icecast Now Playing php 脚本一样)。
但是:
- 大量流不允许其他脚本读取此文件(例如http://95.81.147.3/status.xsl?mount=/fip/all/fiphautdebit.mp3
)
- 正如 ePirat 所说的那样,像这样解析 html 是不安全的。但他只在我们可以访问服务器时才提出解决方案。
根据我阅读的内容:there is metadata in icecast stream itself 但该解决方案仅适用于广播。所以for this link. 我找到的最接近的东西是this code review,但虽然标题说是icecast,但我只是看到了带有Icy-MetaData 检查的shoutcast 代码。
这个very complete link 可能很有用(带外标准部分),但说明它仍然不起作用。
问题基本上是:为了获取艺术家 - 歌曲信息,如何读取 icecast 流的元数据,何时:- 我不是服务器的管理员 - 我不想要/ 无法解析 status.xsl ?
感谢您的帮助
【问题讨论】:
我在您链接到的问题中给出的答案适用于 SHOUTcast 和 Icecast 流。他们使用完全相同的元数据方法。如果您无法实现,我有一个 API 可以很好地以 JSON 格式返回元数据。你可以在这里访问它:audiopump.co/accounts/products/manage/api 来自@Brad 的链接不再起作用。 【参考方案1】:从 Icecast 2.4 开始,获取有关通过服务器运行的流的机器可读元数据的首选方法是 status-json.xsl。此 JSON API 在所有安装中默认启用。
如果 status-json.xsl 返回 404,则服务器管理员有意识地选择禁用访问。在这种情况下,如果旧的 Icecast 安装 (2.3.x) 不会使用 JSON API 进行改造(管理员复制 status-json.xsl 和 xml2json.xslt 到 web 目录)尝试解析流本身以获取元数据的方法是一种丑陋但可能的方法。人们不得不怀疑管理员是否选择了禁止元数据访问,他们是否可以在一般情况下使用他们的流而不是简单地收听。
【讨论】:
是的,如果文件不存在,该消息也会出现。在这种情况下,通过查看pub8.radiotunes.com/server_version.xsl 很容易确认 - 这表明这是 2.3.3-kh7。只有当有人手动将文件复制到 Icecast 的 webroot 时才会有这个。以上是关于icecast 流的标题(没有 status.xsl)的主要内容,如果未能解决你的问题,请参考以下文章