1

Тема: как узнать кто в эфире?

Здравствуйте. Хочу создать каталог радиостанций. Пишу на PHP, MySQL, JS.
Как вытянуть ссылку на поток разобрался. Не понятно как определить исполнителя и песню что в данный момент проигрываеться.
Прошу вашего совета.

Отредактировано tegs (19-07-2016 18:31:19)

2

Re: как узнать кто в эфире?

По разному, зависит от сервера

На Shoutcast v.1  = на странице 7.html    //    пример::  http://www.musicradio77.com:9000/7.html
На Shoutcast v.2 = на currentsong?sid=1 (зависит от SID) //пример:  http://1068.wos.lv:8000/currentsong?sid=1 Обычно пишут парсер на XML

На icecast используют PHP Скрипты для вытягивания имени.
пример:

<?php header("Refresh: 10")>

//Display IceCast Server Stats

$server = "direct.x86cam.com"; //IP (x.x.x.x or domain name)
    $iceport = "8000"; //Port
$iceurl = "stream.mp3"; //Mountpoint
    $online = "<font color=green><b>ONLINE</b> </font><br />";
    $offline = "<font color=red><b>OFFLINE</b></font><br />";

    if($fp = @fsockopen($server, $iceport, $errno, $errstr, '1')) {
            fclose($fp);
            $ice_status=$online;
            echo "<p><b>Stream Status:</b> $ice_status";
            $stats = file("http://" . $server . ":" . $iceport . "/status2.xsl");
            $status = explode(",", $stats[5]);
            $artist = explode("-", $status[5]);
    echo "<b>Artist:</b> " . $artist[1];
            echo "<b>Song:</b> " . $artist[2];
    echo "<br />";
            echo "<b>Listeners:</b> <b> " . $status[3] . "</b>";
            echo "</p>";
    //echo "<br />";
    //echo "<p><a href=http://" . $server . ":" . $iceport . "/" . $iceurl . " target=new><b>Listen!</b></a></p>";

     } else {

            $ice_status=$offline;
            echo "<p><b>Stream Status:</b> $ice_status";
    }

?>
<hr />

3

Re: как узнать кто в эфире?

pluta, мой адрес потока http://free.radioheart.ru:8000/r-heart, идущий через Icecast 1&2. Параллельно идет на shoutcast.com/ (в поисковой строке написать RadioBoss Shoutaz), идущий через Shoutcast v.1. Tут я не смог определить Url потока. Если в первом вообще названий нет, то во втором высвечиваются только англоязычные названия. На других языках - нет. А мне нужно чтоб на всех языках названия были видны. Как преодолеть эти 3 проблемы?

Отредактировано Rodos (07-09-2016 15:11:40)