adinan-cenci / radio-browser
一个从 radio-browser.info 目录获取电台的库。
Requires
- php: >=7.0
- guzzlehttp/guzzle: ^7.4
README
使用项目 API radio-browser.info 从互联网电台目录 radio-browser.info 获取数据的库。
use \AdinanCenci\RadioBrowser\RadioBrowser; $browser = new RadioBrowser(); $tag = 'metal'; $orderBy = 'name'; $descendingOrder = true; $stations = $browser->getStationsByTag($tag, $orderBy, $descendingOrder); print_r($stations);
示例
请参阅 "examples" 目录中的使用示例。
类和实例化
关联数组 / 对象
根据构造函数中提供的 $associative 参数,\AdinanCenci\RadioBrowser\RadioBrowser 的方法将返回关联数组或 stdObjects。
Xml, json, csv 等...
如果您需要以特定格式表示数据,请使用 \AdinanCenci\RadioBrowser\RarioBrowserApi。不同的方法将返回以下格式的数据:json, xml, csv, m3u, pls, xspf 和 ttl。
电台
按 UUID 获取电台
::getStationsByUuid($uuids) 搜索具有指定 ID 的电台。
按 URL 获取电台
::getStationsByUrl($url) 方法通过网页搜索电台。
按点击量获取电台
::getStationsByClicks($offset, $limit, $hideBroken) 方法返回最热门的电台。
按投票数获取电台
::getStationsByVotes($offset, $limit, $hideBroken) 方法返回最受欢迎的电台。
获取最近点击的电台
::getStationsByRecentClicks($offset, $limit, $hideBroken) 方法返回当前最受欢迎的电台。
获取最近更新的电台
::getStationsByLastChange($offset, $limit, $hideBroken) 方法返回最近更新的电台。
获取旧版本电台
::getStationOlderVersions($lastChangeUuid, $limit) 方法返回过去 30 天内的电台旧版本。
获取损坏的电台
::getBrokenStations($offset, $limit) 方法返回未通过连接测试的电台。
按 ... 获取电台
本节中所有方法共享以下参数
仅获取所有电台
::getStations($order, $reverse, $hideBroken, $offset, $limit) 方法将返回所有电台。
按名称获取电台
::getStationsByName($name, $order, $reverse, $hideBroken, $offset, $limit) 方法返回描述为 $name 的电台。
按精确名称获取电台
::getStationsByExactName($name, $order, $rev... 方法返回与 $name 精确匹配的电台。
按编解码器获取电台
::getStationsByCodec($codec, $order, $rev... 方法返回描述为 $codec 的电台。
按精确编解码器获取电台
::getStationsByExactCodec($codec, $order, $rev... 方法返回与 $codec 精确匹配的电台。
按国家获取电台
::getStationsByCountry($country, $order, $rev...
按精确国家获取电台
::getStationsByExactCountry($country, $order, $rev...
按州获取电台
::getStationsByState($state, $order, $rev...
按精确州获取电台
::getStationsByExactState($state, $order, $rev...
按语言获取电台
::getStationsByLanguage($language, $order, $rev...
按精确语言获取电台
::getStationsByExactLanguage($language, $order, $rev....
按标签获取电台
::getStationsByTag($tag, $order, $rev...
按精确标签获取电台
::getStationsByExactTag($tag, $order, $rev...
搜索电台
方法 ::searchStation($searchTerms) 允许我们细化搜索。它接收一个关联数组,其中包含以下键,所有键都是可选的:
获取站检信息
方法 ::getStationCheckResults($stationUuid, $lastCheckUuid, $seconds, $limit) 返回站检结果列表。如果提供了站UUID,则返回整个历史记录,否则发送所有站的最后检查列表(不包括更早的检查结果)。
获取站点击量
方法 ::getStationClicks($stationUuid, $lastCheckUuid, $seconds) 返回站点击量列表。如果提供了站UUID,则只返回该站的点击量,否则发送所有站的点击量列表(chunksize 10000)。
添加站
方法 ::addStation($name, $url, $homePage, $favIcon, $countryCode, $state, $language, $tags, $geoLat, $geoLong) 允许我们插入新站。
它接收一个关联数组,其中包含以下键,所有键都是可选的:
排名
听众
每次用户开始播放流时,必须调用 ::clickStation($stationUuid) 方法,这有助于Radio Browser对每个站的流行程度进行排序。 重要:来自同一IP地址和同一站的每次调用每天只计数一次。
投票
方法 ::voteStation($stationUuid) 将投票数增加1。 重要:它只能从同一IP地址为同一广播站调用一次,每次调用间隔10分钟。
一般信息
以下方法共享以下参数:
获取编解码器
方法 ::getCodecs($filter, $order, $reverse, $hideBroken) 返回编解码器列表以及使用它们的站的数量。
获取语言
方法 ::getLanguages($filter, $ord...) 返回语言列表以及使用该语言的站的数量。
获取标签
方法 ::getTags($filter, $ord...) 返回标签列表以及使用这些标签描述的站的数量。
获取国家代码
方法 ::getCountryCodes($filter, $ord...) 返回国家代码列表以及使用这些代码描述的站的数量。
获取国家
方法 ::getCountries($filter, $ord...) 返回国家列表以及使用这些国家描述的站的数量。
获取状态
方法 ::getStates($filter, $country, $order, $reverse, $hideBroken) 返回州列表以及使用这些州描述的站的数量。
服务器
获取服务器的统计信息
::getServerStats()
获取服务器的镜像
::getServerMirrors()
获取服务器的配置
::getServerConfig()
获取服务器的度量
::getServerMetrics()
获取DNS记录
静态方法 ::getDnsRecords() 返回可用服务器的DNS信息。
获取服务器IP
静态方法 ::getServerIps() 返回可用服务器的IP数组。
获取服务器
静态方法 ::getServers() 返回可用服务器的URL数组。
选择服务器
静态方法 ::pickAServer() 返回随机服务器的URL。
安装
使用composer。
composer require adinan-cenci/radio-browser
许可证
MIT