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

Скрипт срочно

 

6245
Тарас @tarasian666
1. плейлист на модуле perl (или python)
2. см. п.1
3. если ices то см. п.1 + mysql
4. в программе для вещания ввести ip port mount пароль и вперед, а какой именно софт - выбирать вам, и они все с инструкцией, но часто на англ.

0
82
external @external
tarasian666 пишет:

см. п.1

где этот пункт 1 у вас на форуме как на свалке ничего не найдёшь

0
6245
Тарас @tarasian666
на форуме нет, есть в гугле. Тем более нужны познания perl или python
А свалка от пользователей которые пишут почти куда попало

0
82
external @external
Прописал в конфиге ices,

<Mountpoint>/stream1</Mountpoint>
<Name>Radio</Name>
<Source>/var/www/html/site/fm/media/intro.mp3</Source>

что бы при подключении к каналу проигрывался файл интро. Но почемуто не проигрывается правльно ли я прописал?

0
6245
Тарас @tarasian666
не там, надо в конфиге icecast

0
243
Владислав @VladokZzz
создал маунт на 1 сервере (SAM + icecast) и он вещает, затем пытаюсь добавить маунт на другом сервере, вбиваю ип, порт, маунт а encoder не хочет коннектиться, говорит ошибка (200) Что это а ошибка? пароль верный

0
6245
Тарас @tarasian666
зачем добавлять маунт на другом сервере?

0
82
external @external
я тоже этого понять не могу, 1 сервера мало?

0
243
Владислав @VladokZzz
а что бы сделать так:
основной сервер radio.ru:8128/live
к нему подтягиваются маунты с других источников:
radio.ru:8128/live2
radio.ru:8128/live3 и т.д.
это все можно сделать с помощью relay но между релаями фоллбэк настроить не удается. а между маунтами фоллбэк работает на ура

0
6245
Тарас @tarasian666
зачем relay ? пусть сразу будут все маунты на основном

0
144
Руся @Ruskat
tarasian666, Благодарю за подсказку. С твоей помощью родился такой вот скрипт:
  1. $data = file_get_contents('http://4m.net.ua:8000/status.xsl?mount=/ZED-FM');
  2. $data2 = file_get_contents('http://4m.net.ua:8000/status.xsl?mount=/ruskat');
  3. $data3 = file_get_contents('http://62.149.27.186:8000/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. $data = iconv("utf-8", "cp1251", $data);
  13. $title = antara($data, "Stream Title:</td>\n<td class=\"streamdata\">","</td>");
  14. $description = antara($data, "Stream Description:</td>\n<td class=\"streamdata\">","</td>");
  15. $content_type = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
  16. $Mount_started = antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>");
  17. $Bitrate = antara($data, "Bitrate:</td>\n<td class=\"streamdata\">","</td>");
  18. $Current_listeners = antara($data, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
  19. $Peak_listeners = antara($data, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
  20. $Stream_genre = antara($data, "Stream Genre:</td>\n<td class=\"streamdata\">","</td>");
  21. $Stream_url = antara($data, "Stream URL:</td>\n<td class=\"streamdata\">","</td>");
  22. $Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
  23. //========якщо маунтів декілька============//
  24. $Current_listeners2 = antara($data2, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
  25. $Peak_listeners2 = antara($data2, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
  26. //-----------------//
  27. $data3_curr_listeners = antara($data2, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
  28. $data3_peak_listeners = antara($data2, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
  29. //======сумуємо в загальну кількість слухачів та піки=======//
  30. $Curr_listens=$Current_listeners2+$Current_listeners+$data3_curr_listeners;
  31. $Peak_listens=$Peak_listeners2+$Peak_listeners+$data3_peak_listeners;
  32. $staylst=$Curr_listens+1;
  33. echo ''.$title.' <br> '.$description.' <br> '.$content_type.' <br> '.$Mount_started.' <br> '.$Bitrate.' <br> '.$Curr_listens.' <br> '.$Peak_listens.' <br> '.$Stream_genre.' <br> '.$Stream_url.' <br> '.$Current_song.' <br><br>Слухачі по маунтам <br>
  34. Маунт-1: зараз '.$Current_listeners.', всього '.$Peak_listeners.'.<br>
  35. Маунт-2: зараз '.$Current_listeners2.', всього '.$Peak_listeners2.'.<br>
  36. Маунт-3: зараз '.$data3_curr_listeners.', всього '.$data3_peak_listeners.'.<br>
  37. ';

А как еще бы реализовать, вывод АЙПИ июзер-агента?

0
6245
Тарас @tarasian666
Ruskat молодець, всі б так ))


насчет ip - надо парсить admin/listclients.xsl?mount=/{mount}
доступ на страницу как на ftp - логин:пароль@ip:port

0
144
Руся @Ruskat
tarasian666? а именно **********
Каким кодом выводить список юзер-агентов, а не один, и список всех активных маунтов в айсе?

0
6245
Тарас @tarasian666
список юзер-агентов и так выводится таблицой,
список всех маунтов - listmounts.xsl

0
144
Руся @Ruskat
tarasian666, немножко по другому...
  1. $data = file_get_contents('http://логин:пароль@сервер:8000/admin/listclients.xsl?mount=/ZED-FM');
  2. function antara($string, $start, $end){
  3. $string = " ".$string;
  4. $ini = strpos($string,$start);
  5. if ($ini == 0) return "";
  6. $ini += strlen($start);
  7. $len = strpos($string,$end,$ini) - $ini;
  8. return substr($string,$ini,$len);
  9. }
  10. $data = iconv("utf-8", "cp1251", $data);
  11. $data = antara($data, "<table border=\"0\" cellpadding=\"1\" cellspacing=\"5\" bgcolor=\"444444\"><tr><td align=\"center\">","</tr>\n</table>");
  12. //$data = substr_replace (Action, "5", $data);
  13. $data=preg_replace('|<a[^>]+>([^<]+)</a>|ism',' ',$data);
  14. echo ''.$data.'
  15. ';

С обрезанием ссылок. Тока вот не могу ячейку Action удалить.
Как мона сделать вывод страниц, типа как тут ********** ?

0
6245
Тарас @tarasian666
поколупать веб странички icecast и продумать парсинг

0
14
sassaraev @sassaraev
Ruskat? Спасибо скрипт просто класс работает как нужно! Я ещё под себя настроил! :)

0
144
Руся @Ruskat
tarasian666, а как поставить условие, что если сервер или несколько не работают по тех-причинам, то выдавало бы из того, что работает, или же в низу чтобы выводить надпись, что сервер ******* не работает?

0
221
Дмитрий @ElectroNik
tarasian666 пишет:

  1. <?PHP
  2. $data = file_get_contents("http:/ip:port/status2.xsl?mount=/ваш_маунт");
  3. $mass = explode(",",$data);
  4. $title = $mass[16];
  5. $listeners = $mass[14];
  6. echo "сейчас играет: ".$title." слушают: ".$listeners;
  7. ?>


Привет, подскажи как скриптом можно вывести общее кол-во слушателей по нескольким каналам, которые находятся на разных серверах

0
144
Руся @Ruskat
ElectroNik, в посте #51 изображено именно то, что тебе нужно. Даже общий подсчёт слушателей прилагается :)

0





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

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