intellexapps / shoutcast
解析 SHOUTcast 的 '/7.html' 信息页面为可用的数据
Requires
- php: >=7.1
This package is auto-updated.
Last update: 2024-09-23 05:58:37 UTC
README
原因
SHOUTcast 流信息是我们见过的最荒谬的信息 API。就这样。
所以我们每次遇到它时,不是伤害我们的大脑,而是构建了这个解析器。一切都是为了一个简单的7个元素逗号分隔的一行 :)
我们“喜欢”它,因为
- 信息位于
7.html
页面(似乎很随机) - 信息实际上是一行 CSV(我们喜欢这样),但它被包裹在 HTML 中 (WT#!)
- 信息中元素的顺序是完全随机的
无论如何,这个库的使用方法
最简单的方法是提供 SHOUTcast 流 URL,然后使用检索到的结果。
注意:在幕后,信息是通过标准 HTTP 请求检索的。
<?php // Load the info $streamURL = "https://8.8.8.8:8080/stream"; $streamInfo = \Intellex\SHOUTcast\Info::parse($streamURL); // Use the info $streamInfo->isOnline(); // True if the stream is running, false otherwise $streamInfo->currentListeners(); // The number of currently active listeners $streamInfo->uniqueCurrentListeners(); // The number of currently connected unique clients $streamInfo->peakListeners(); // The maximum number of simultaneous listeners ever $streamInfo->maxConnections(); // The maximum number of connections supported by this stream $streamInfo->quality(); // The quality of the stream, as bitrate $streamInfo->onAir(); // The name of the current song or show (can be null)
或者您也可以手动加载原始 SHOUTcast 信息,然后仅使用此库来解析它
<?php $rawInfo = file_get_contents("https://8.8.8.8:8080/7.html"); $streamInfo = \Intellex\SHOUTcast\Info::parseStreamURL($rawInfo); // $streamInfo is the same as in the example above
SHOUTcast 流信息
SHOUTcast 流信息可以在任何 SHOUTcast 上找到,并且可以通过简单的 HTTP 请求读取。
URL
可以通过在流 URL 的末尾将 /stream
替换为 /7.html
来检索信息 URL。
例如 https://8.8.8.8:5050/stream
变为 https://8.8.8.8:5050/7.html
。
格式
Ahhhh yiiiiiis....
如果您还在阅读此内容,我们相当确信您将在几分钟内放弃 :)
例如
<html><body>7263,1,11932,14000,5721,256,PINKFONG - Baby Shark</body></html>
是的,它被包裹在 HTML 中,原因...我想...
解释
格式如下(不包括 HTML 容器)
CURR,ONLINE,PEAK,MAX,UNIQ,BIT,NAME
其中
- CURR - 当前收听者数量,作为整数
- ONLINE - 如果流正在运行则值为 1,否则为 0,作为整数。
- PEAK - 最多同时收听的听众数量,作为整数
- MAX - 服务器能够处理的最大连接数,作为整数
- UNIQ - 当前调谐的独特客户端数量(始终 <= CURR),作为整数
- BIT - 流的比特率,作为整数
- NAME - 当前的歌曲或节目,作为字符串(唯一的可选参数)
我提到过它也被包裹在 HTML 中吗? :D
Now we will give you a moment to appreciate the ordering of the elements :)
许可
MIT 许可证
版权所有 (c) 2021 Intellex
特此授予任何获得此软件和相关文档副本(“软件”)的人免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向获得该软件的人提供使用该软件的权利,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
该软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论是由于该软件或其使用或任何与之相关的操作而产生的。
致谢
脚本由 Intellex 团队编写。