ОсновноеRadiotalkПользовательское
Технологии вещания, софт, скрипты
3   •   Посмотреть все темы

Скрипты для Icecast

 

49
aleksanders @aleksanders
Короче, если что не так, вы хоть не смейтесь. ))) Главное работает...
<?php

$data = file_get_contents('http://127.0.0.1:88/status.xsl?mount=/radio');

function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}

if(antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('http://127.0.0.1:88/status.xsl?mount=/nonstop');}

$Mount_started = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
$Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
$Curr_listens=$Current_listeners2+$Current_listeners+$hellp_curr_listeners;
$Peak_listens=$Peak_listeners2+$Peak_listeners+$hellp_peak_listeners;
$staylst=$Curr_listens+1;
echo ''.$Current_song.'';
?>

112
Юрий @FortNoxBY
а в status.xls как обстоят дела?) выложи код тоже

49
aleksanders @aleksanders
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
<xsl:template match = "/icestats" >
<html>
<head>
<title>Icecast Streaming Media Server</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<h2>Icecast2 Status</h2>
<br />
<!--index header menu -->
<div class="roundcont">
<div class="roundtop">
<img src="/corner_topleft.jpg" class="corner" style="display: none" />
</div>
<table border="0" width="100%" id="table1" cellspacing="0" cellpadding="4">
<tr>
<td bgcolor="#656565">
<a class="nav" href="admin/">Administration</a>
<a class="nav" href="status.xsl">Server Status</a>
<a class="nav" href="server_version.xsl">Version</a></td>
</tr>
</table>
<div class="roundbottom">
<img src="/corner_bottomleft.jpg" class="corner" style="display: none" />
</div>
</div>
<br />
<br />
<!--end index header menu -->
<!--mount point stats-->
<xsl:for-each select="source">
<xsl:choose>
<xsl:when test="listeners">
<div class="roundcont">
<div class="roundtop">
<img src="/corner_topleft.jpg" class="corner" style="display: none" />
</div>
<div class="newscontent">
<div class="streamheader">
<table cellspacing="0" cellpadding="0">
<colgroup align="left" />
<colgroup align="right" width="300" />
<tr>
<td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
<xsl:choose>
<xsl:when test="authenticator">
<td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
</xsl:when>
<xsl:otherwise>
<td align="right"> <a href="{@mount}.m3u">M3U</a> <a href="{@mount}.xspf">XSPF</a></td>
</xsl:otherwise>
</xsl:choose>
</tr></table>
</div>

<table border="0" cellpadding="4">
<xsl:if test="server_name">
<tr><td>Stream Title:</td><td class="streamdata"> <xsl:value-of select="server_name" /></td></tr>
</xsl:if>
<xsl:if test="server_description">
<tr><td>Stream Description:</td><td class="streamdata"> <xsl:value-of select="server_description" /></td></tr>
</xsl:if>
<xsl:if test="server_type">
<tr><td>Content Type:</td><td class="streamdata"><xsl:value-of select="server_type" /></td></tr>
</xsl:if>
<xsl:if test="stream_start">
<tr><td>Mount started:</td><td class="streamdata"><xsl:value-of select="stream_start" /></td></tr>
</xsl:if>
<xsl:if test="bitrate">
<tr><td>Bitrate:</td><td class="streamdata"> <xsl:value-of select="bitrate" /></td></tr>
</xsl:if>
<xsl:if test="quality">
<tr><td>Quality:</td><td class="streamdata"> <xsl:value-of select="quality" /></td></tr>
</xsl:if>
<xsl:if test="video_quality">
<tr><td>Video Quality:</td><td class="streamdata"> <xsl:value-of select="video_quality" /></td></tr>
</xsl:if>
<xsl:if test="frame_size">
<tr><td>Framesize:</td><td class="streamdata"> <xsl:value-of select="frame_size" /></td></tr>
</xsl:if>
<xsl:if test="frame_rate">
<tr><td>Framerate:</td><td class="streamdata"> <xsl:value-of select="frame_rate" /></td></tr>
</xsl:if>
<xsl:if test="listeners">
<tr><td>Current Listeners:</td><td class="streamdata"> <xsl:value-of select="listeners" /></td></tr>
</xsl:if>
<xsl:if test="listener_peak">
<tr><td>Peak Listeners:</td><td class="streamdata"> <xsl:value-of select="listener_peak" /></td></tr>
</xsl:if>
<xsl:if test="genre">
<tr><td>Stream Genre:</td><td class="streamdata"> <xsl:value-of select="genre" /></td></tr>
</xsl:if>
<xsl:if test="server_url">
<tr><td>Stream URL:</td><td class="streamdata"> <a target="_blank" href="{server_url}"><xsl:value-of select="server_url" /></a></td></tr>
</xsl:if>
<tr><td>Current Song:</td><td class="streamdata">
<xsl:if test="artist"><xsl:value-of select="artist" /> - </xsl:if><xsl:value-of select="title" /></td></tr>
</table>
</div>
<div class="roundbottom">
<img src="/corner_bottomleft.jpg" class="corner" style="display: none" />
</div>
</div>
<br />
<br />
</xsl:when>
<xsl:otherwise>
<h3><xsl:value-of select="@mount" /> - Not Connected</h3>
</xsl:otherwise>
</xsl:choose>

</xsl:for-each>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;


<div class="poster">Support icecast development at <a class="nav" target="_blank" href="http://www.icecast.org">www.icecast.org</a></div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

6245
Тарас @tarasian666
Короче, если что не так, вы хоть не смейтесь. ))) Главное работает...

а что смеятся то, все правильно сделал

вот интересная история об функции antara, я ее нашел на форуме shoutcast где парсили ответ sc_trans2 через его API
а теперь она расползлась по рунету...

112
Юрий @FortNoxBY
aleksanders? спасибо большое.
а айс ты используешь скаченный с оф.сайта я так понимаю?

49
aleksanders @aleksanders
Так точно. Сервер скачивал с оф. сайта, версии 2.3.2

349
Юрий @Всё-просто
Помогите с вопросом... Как в данном скрипте вывести тайтл радиостанции?
<?php
$file_name='http://иппорт';
$r=fopen($file_name,'r');
$text=fread($r,2000);
fclose($r);
$mass=explode(",", $text);
echo $mass [16] ."<br>";
echo $mass [14] ."<br>";
?>


Пробовал поменять $mass но ничего нужного не выдавало... Как с помощью него вывести название радио?

Отредактировано Всё-просто - 05.02.2012
112
Юрий @FortNoxBY
aleksanders, большое тебе человеческое спасибо!!!!
и конечно и тебе tarasian666

6245
Тарас @tarasian666
Всё-просто пишет:

Помогите с вопросом... Как в данном скрипте вывести тайтл радиостанции?
<?php
$file_name='http://иппорт';
$r=fopen($file_name,'r');
$text=fread($r,2000);
fclose($r);
$mass=explode(",", $text);
echo $mass [16] ."<br>";
echo $mass [14] ."<br>";
?>


Пробовал поменять $mass но ничего нужного не выдавало... Как с помощью него вывести название радио?

там не иппорт а ип:порт/status2xsl?mount=/маунт

349
Юрий @Всё-просто
tarasian666 пишет:

Всё-просто пишет:

Помогите с вопросом... Как в данном скрипте вывести тайтл радиостанции?
<?php
$file_name='http://иппорт';
$r=fopen($file_name,'r');
$text=fread($r,2000);
fclose($r);
$mass=explode(",", $text);
echo $mass [16] ."<br>";
echo $mass [14] ."<br>";
?>


Пробовал поменять $mass но ничего нужного не выдавало... Как с помощью него вывести название радио?

там не иппорт а ип:порт/status2xsl?mount=/маунт


Это я знаю )

6245
Тарас @tarasian666
надо брать конкретно используемый status2.xsl и считать на каком месте стоит название, так как в trunk и kh они тоже отличаются

95
Артур @NoExist
Проблема с фоллбеком... Я все сделал, все работает, но, при подключении FrostFMSZ.OGG & FrostFMSZ другие 2 FrostFM.OGG & FrostFM не отключаются, их надо отключить вручную и только тогда слушателей перенаправляет на фоллбеки, как это исправить?

<mount>
<mount-name>/FrostFM.OGG</mount-name>
<password>7539514682</password>
<max-listeners>2000</max-listeners>
<fallback-mount>/FrostFMSZ.OGG</fallback-mount>
<fallback-override>1</fallback-override>
<charset>cp1251</charset>
</mount>

<mount>
<mount-name>/FrostFMSZ.OGG</mount-name>
<password>7539514682</password>
<max-listeners>2000</max-listeners>
<charset>cp1251</charset>
</mount>
<mount>
<mount-name>/FrostFM</mount-name>
<password>7539514682</password>
<max-listeners>2000</max-listeners>
<fallback-mount>/FrostFMSZ</fallback-mount>
<fallback-override>1</fallback-override>
<charset>cp1251</charset>
</mount>

<mount>
<mount-name>/FrostFMSZ</mount-name>
<password>7539514682</password>
<max-listeners>2000</max-listeners>
<charset>cp1251</charset>
</mount>

6245
Тарас @tarasian666
а собственно почему они должны отключаться?

слушателям подключаться только к тем маунтам в которых есть строки fallback, то есть к маунтам live а не нонстоп
я ж об этом уже говорил

95
Артур @NoExist
Все разобрался по твоей наводке))) Я случайно мануты не там прописал)))

19
JaST @JaST
всем привет,читать не успеваю,времени мало,пожалуйста подскажите скрипт который может считывать информацию с сервера находящегося не на той же машине

6245
Тарас @tarasian666
любой может, пару постов выше есть скрипты

19
JaST @JaST
не хотят никак считывать информацию с потока giss tv

6245
Тарас @tarasian666
а где запускаешь? Много зависит от доступов хостинга

19
JaST @JaST
проверял скриптом
Ваш хостинг <?php if (!fopen("http://giss.tv", "r")) print("не"); ?> поддерживает исходящие соединения!

исходящее соединение с giss.tv нормально идёт

Отредактировано JaST - 18.03.2012
19
JaST @JaST
блин ребят ну вы можете помочь!?
Скрипт нужен для считывания статистики с **********