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

Скрипты для Icecast

 

1572
KyPIIaToB @KyPIIaToB
JaST пишет:

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

Ссылку нормальную на поток давай.
Да и не вижу проблем, выше готовые скрипты, бери и используй на свой вкус, если лень пару страниц полистать и почитать, твои проблемы)

Отредактировано KyPIIaToB - 18.03.2012
0
129
UAFM @UAFM
<?php
$file_name='ip:9001/status2.xsl?mount=/test;

$r=fopen($file_name,'r');
$text=fread($r,2000);
fclose($r);
$mass=explode(",", $text);
echo substr(iconv("UTF-8","cp1251",$mass [17]),3);

?>

Вот есть скрипт , а как сделать если у меня еще один маунт - нонстоп ??? Тему пересмотрел , есть такие но они не работают у меня.

0
8
Иван @zim0vik
tarasian666 пишет:

  1.  
  2. <?php
  3. $data = file_get_contents('url/status.xsl?mount=/live');
  4. function antara($string, $start, $end){
  5. $string = " ".$string;
  6. $ini = strpos($string,$start);
  7. if ($ini == 0) return "";
  8. $ini += strlen($start);
  9. $len = strpos($string,$end,$ini) - $ini;
  10. return substr($string,$ini,$len);
  11. }
  12. if(antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('url:88/status.xsl?mount=/nonstop');}
  13. $data = iconv("utf-8", "cp1251", $data);
  14. $title = antara($data, "Stream Title:</td>\n<td class=\"streamdata\">","</td>");
  15. $description = antara($data, "Stream Description:</td>\n<td class=\"streamdata\">","</td>");
  16. $content_type = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
  17. $Mount_started = antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>");
  18. $Bitrate = antara($data, "Bitrate:</td>\n<td class=\"streamdata\">","</td>");
  19. $Current_listeners = antara($data, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
  20. $Peak_listeners = antara($data, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
  21. $Stream_genre = antara($data, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
  22. $Stream_url = antara($data, "Stream URL:</td>\n<td class=\"streamdata\">","</td>");
  23. $Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
  24. $hellp_curr_listeners = antara($hellp, "Сейчас слушают:</td>\n<td class=\"streamdata\">","</td>");
  25. $hellp_peak_listeners = antara($hellp, "Максимум было</td>\n<td class=\"streamdata\">","</td>");
  26. $Curr_listens=$Current_listeners2+$Current_listeners+$hellp_curr_listeners;
  27. $Peak_listens=$Peak_listeners2+$Peak_listeners+$hellp_peak_listeners;
  28. $staylst=$Curr_listens+1;
  29. echo '<span style="font-size: 0.72em; font-family:Trebuchet MS, Tahoma, Arial, sans-serif; color:#3090c3"><b>Название радио:</b> '.$title.' <br>
  30. <b>За пультом:</b> '.$description.' <br>
  31. <b>Битрейт:</b> '.$Bitrate.' <br>
  32. <b>Сейчас слушают:</b> '.$Curr_listens.' <br>
  33. <b>Максимум слушало:</b> '.$Peak_listens.' <br>
  34. <b>Сейчас в эфире:</b> '.$Current_song.' <br>
  35. <br>
  36. <center><input type="button" value="Слушать радио" onclick="location.href=\'url:88/live.m3u\'" /></center>';
  37. ?>


Доброе время суток!
Есть два маунта /live и /nonstop и есть этот скрипт. Если Эр-джей(ДиДжей да как угодно) подключается к эфиру(на маунт /live) то в скрипте всё равно отображается статистика /nonstop'a. Хотелось бы что бы скрипт сам переключался на ту инфу где Эр-джей(ДиДжей да как угодно) и после окончания эфира, обратно на /nonstop.
Спасибо!

0
168
Jon-coool @Jon-coool
Друзья!
А есть у кого нибудь скрипт который выводит отигравшие песни?

0
8
Иван @zim0vik
Jon-coool пишет:

Друзья!
А есть у кого нибудь скрипт который выводит отигравшие песни?


Нашёл в этой теме
  1. <?php
  2. function get_title ($mount){
  3. $r=fopen($mount,'r');
  4. $text=fread($r,2000);
  5. fclose($r);
  6. $mass=explode(",", $text);
  7. return $mass [16];
  8. }
  9. $mount1 = "ссылка на status2xsl первого маунта";
  10. $mount2 = "--//-- второго --//--";
  11. $mount3 = "--//-- третьего --//--";
  12. if(get_title($mount1) !='')
  13. {
  14. echo get_title($mount1);
  15. }
  16. elseif(get_title($mount2) !='')
  17. {
  18. echo get_title($mount2);
  19. }
  20. else
  21. {
  22. echo get_title($mount3);
  23. }
  24. ?>

0
223
Игорь @devilben
Jon-coool пишет:

Друзья!
А есть у кого нибудь скрипт который выводит отигравшие песни?

Можно сделать через Last.fm, в этой теме есть скрипт на php который парсит статус icecast и скробблит на Last.fm.
На сайт можно потом выводить с помощью ********** jqury-плагина

0
168
Jon-coool @Jon-coool
aleksanders пишет:

Короче, если что не так, вы хоть не смейтесь. ))) Главное работает...
  1. <?php
  2. $data = file_get_contents('http://127.0.0.1:88/status.xsl?mount=/radio');
  3. function antara($string, $start, $end){
  4. $string = " ".$string;
  5. $ini = strpos($string,$start);
  6. if ($ini == 0) return "";
  7. $ini += strlen($start);
  8. $len = strpos($string,$end,$ini) - $ini;
  9. return substr($string,$ini,$len);
  10. }
  11. 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');}
  12. $Mount_started = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
  13. $Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
  14. $Curr_listens=$Current_listeners2+$Current_listeners+$hellp_curr_listeners;
  15. $Peak_listens=$Peak_listeners2+$Peak_listeners+$hellp_peak_listeners;
  16. $staylst=$Curr_listens+1;
  17. echo ''.$Current_song.'';
  18. ?>

Почему при русской песни пишет какие то иероглифы, как исправить?

0
1572
KyPIIaToB @KyPIIaToB
Jon-coool пишет:

aleksanders пишет:

Короче, если что не так, вы хоть не смейтесь. ))) Главное работает...
  1. <?php
  2. $data = file_get_contents('http://127.0.0.1:88/status.xsl?mount=/radio');
  3. function antara($string, $start, $end){
  4. $string = " ".$string;
  5. $ini = strpos($string,$start);
  6. if ($ini == 0) return "";
  7. $ini += strlen($start);
  8. $len = strpos($string,$end,$ini) - $ini;
  9. return substr($string,$ini,$len);
  10. }
  11. 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');}
  12. $Mount_started = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
  13. $Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
  14. $Curr_listens=$Current_listeners2+$Current_listeners+$hellp_curr_listeners;
  15. $Peak_listens=$Peak_listeners2+$Peak_listeners+$hellp_peak_listeners;
  16. $staylst=$Curr_listens+1;
  17. echo ''.$Current_song.'';
  18. ?>

Почему при русской песни пишет какие то иероглифы, как исправить?

Если на странице icecast иероглифы, то разбирайся с тем, чем ты вещаешь, елси в айсе норм, но криво на сайте, то ковыряйся в кодировке.. вообще по кодировке тем полно, поиск в помощь

0
168
Jon-coool @Jon-coool
Скрипт 10 треков не выводит ничего. Хотя в базе данных все нормально. и странциу выводит в иегоглифами.

0
168
Jon-coool @Jon-coool
В файле track.php изменил на нужное.

0
11
onix007 @onix007
Народ помогите пожалуйста !! нужен скрипт для айс каста ститистики! что б показывало кто из Dj онлайн и скоко слушателей! плиз помогите найди скрипт) Зарание спс!!!

0
6245
Тарас @tarasian666
на предыдущей странице есть подходящий скрипт

0
11
onix007 @onix007
да поставил их не роботают почему!((( мне над что б видел и нон стоп и бродкастер!

0
11
onix007 @onix007
плизк ктонить кинте сюда)

0
6245
Тарас @tarasian666
onix007 пишет:

да поставил их не роботают почему!((( мне над что б видел и нон стоп и бродкастер!

он как раз это и умеет делать

0
11
onix007 @onix007
какой именно кинте сюда

0
1572
KyPIIaToB @KyPIIaToB
onix007 пишет:

какой именно кинте сюда

Ну неужели так было тяжело прочитать всю страницу обсуждения?!!! Тебе сказали, на предыдущей странице
**********

0
1572
KyPIIaToB @KyPIIaToB
dimajak пишет:

Нужен был список маунтов с внешнего Icecast, обычные скрипты не работали из-за наличия символа запятой в названии трека:
  1. $mass=explode(",", $text);

набросал небольшой скрипт:
  1. <?php
  2. function add_mnt($val) {
  3. $mnt_p = array();
  4. for($i = 0, $pos = 0; $i < 6; $i++) {
  5. $pos = strpos($val, ',');
  6. $znach = ($pos == 0 ? ($i==5 ? $val : '') : substr($val, 0, $pos));
  7. switch($i) {
  8. case 0:
  9. $mnt_p['mnt'] = $znach;
  10. break;
  11. case 3:
  12. $mnt_p['lst'] = $znach;
  13. break;
  14. case 5:
  15. $mnt_p['cur'] = $znach;
  16. break;
  17. }
  18. $val = substr($val, $pos+1);
  19. }
  20. return $mnt_p;
  21. }
  22. $handle = file("http://192.168.0.1:8000/status2.xsl");
  23. $mass = $handle[5];
  24. $mnt = array();
  25. while($mass<>'') {
  26. $pos = strpos($mass, ',/');
  27. if($pos == 0) {
  28. $mnt[] = add_mnt($mass);
  29. break;
  30. } else {
  31. $mnt[] = add_mnt(substr($mass, 0, $pos));
  32. $mass = substr($mass, $pos+1);
  33. }
  34. }
  35. foreach ($mnt as $val) {
  36. echo $val['mnt'] ." ". $val['lst']."<br>";
  37. }
  38. echo "Stations=".count($mnt).'<br>';
  39. ?>

на выходе $mnt['mnt'] - маунт, $mnt['lst'] - количество текущих слушателей, $mnt['cur'] - текущий трек.
Может кому пригодится.

Забыл сказать, что он сделан под стандартный веб айса, под KH не подойдет.

0
1572
KyPIIaToB @KyPIIaToB
dimajak пишет:

KyPIIaToB пишет:

Забыл сказать, что он сделан под стандартный веб айса, под KH не подойдет.

Про KH не знаю совсем ничего, что это? Где про него почитать?.


**********
У него чутка веб другой, как пример **********

0
11
onix007 @onix007
народ помогите пожалуйста как мне в етом скрипте вывести кто в эфире и как туда пихнуть накрутку слушателей в 7 раз !


?php
///////////////////////////////////////////////////
//icecast2 status refined v1.1 xsl refined
// Author: that dude over there at casterclub.com
// Bugs: post in the forums at casterclub
//////////////////////////////////////////////////
//start the madness already
//////////////////////////////////////////////////
//start the configurations
$ip = "78.46.15.217"; //your server address in the form of mydomain.com or 192.161.1.1
$port = "8000"; //the port of your server
$ice2_station = "RpgFm"; // your station or stream name






////////////////start the parsin action\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//opening socket
$fp = fsockopen("$ip", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) {
$success=2; //set if no connection



//edit html to fit your stations site, this display is for offline status
echo'<table>
<tr>
<td width="100%" colspan="2">
<img border="0" src="images/offline.gif" width="22" height="22">
<b><font face="Arial" size="2" color="#FF0000">'.$ice2_station.' is currently offline</font></b></td>
</tr>
</table>';
}




if($success!=2){ //if connection
fputs($fp,"GET /status2.xsl HTTP/1.0\r
User-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r
\r
"); //get status2.xsl
while(!feof($fp)) {
$page .= fgets($fp, 1000);
}
fclose($fp); //close connection
$page = ereg_replace(".*<pre>", "", $page); //extract data
$page = ereg_replace("</pre>.*", ",", $page); //extract data

$numbers = explode(",",$page); //bomb it and extract data
$mount = $numbers[0];
$connections = $numbers[1];
$stream_n = $numbers[2];
$listeners = $numbers[3];
$desc = $numbers[4];
$cur_song = $numbers[5];
$str_url = $numbers[6];
$client_info = $numbers[7];
$test1 = $numbers[8]; //set vars that where empty and still dont know what the heck those values are ;-)
$test2 = $numbers[9]; //set vars that where empty and still dont know what the heck those values are ;-)
$test3 = $numbers[10]; //set vars that where empty and still dont know what the heck those values are ;-)
$mount = $numbers[11];
$connections = $numbers[12];
$station =$numbers[13];
$listeners = $numbers[14];
$description = $numbers[15];
$cur_song = $numbers[16];
$www_url = $numbers[17];


//edit html to fit your stations site, this display is for online status
echo'


<fieldset><legend>Информация о радио</legend>
<html>
<head>
</head>
<body>
<font size=1><font color=white>Радиостанция:</font></font><font size=1> <font color=#0ee63b><b>Работает</b></font><div class=line></div><font color=white>Cлушает: </font><font color=white> - 3'.$listeners.' - </font><div class=line></div><font color=white>В эфире:</font> <font color=red><b>'.$connections.'</b></font> <div class=line></div><center><marquee scrolldelay=20 scrollamount=1 truespeed width=100%><font color=#00FF00 style=font-size:11px;font-family: tahoma;><b><font color=#fff></font></b></font></marquee></font></center>
</body>
</html>
<center><marquee scrolldelay=20 scrollamount=1 truespeed width=100%><font color=#00FF00 style=font-size:11px;font-family: tahoma;><b><font color=white>'.$cur_song.'</font></b></font></marquee></center>
';
}


?>

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.