MainRadiotalkCustom
Общие вопросы по интернет радио вещанию
4   •   Посмотреть все темы

получить название группы

 

37
Sluchayno @Sluchayno
Здравствуйте ребята, запустил сервер icecast2 + ices 0.4(надеюсь это не старые версии? )
нашел скрипт, который выводит мне информацию о играющем треке, но не выводит мне названия группы.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="xml2json.xslt"/>
<xsl:output indent="no" omit-xml-declaration="yes" method="text" encoding="UTF-8" media-type="application/json"/>
<xsl:strip-space elements="*"/>

<!-- override imported transform variable to enable output -->
<xsl:variable name="output">true</xsl:variable>

<!-- hide certain nodes from all sources -->
<xsl:template match="icestats/source/max_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/public"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/source_ip"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/slow_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/*[contains(name(), 'total_bytes')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/user_agent" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/listener" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>

<!-- hide certain global nodes -->
<xsl:template match="icestats/sources"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/clients"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/stats"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="node()[contains(name(), 'connections')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
</xsl:stylesheet>


Как добавить сюда вывод artist?

Отредактировано Sluchayno - 09.08.2019
419
gyurgin_ @gyurgin_
Да это же status-json обыкновенный, отдает он все. У Вас вещалка просто его не передает.

37
Sluchayno @Sluchayno
gyurgin_ пишет:

Да это же status-json обыкновенный, отдает он все. У Вас вещалка просто его не передает.

Спасибо за ответ. Но не много не понятно, что значит вещалка его не отдает? ices 0.4 или icecast2? Как настроить чтоб она отдавала эти параметры?

37
Sluchayno @Sluchayno
вот какой резултат я получаю

{"icestats":{"admin":"icemaster@localhost","host":"my host","location":"Ufa","server_id":"Icecast 2.4.2","server_start":"Sat, 10 Aug 2019 10:13:13 +0000","server_start_iso8601":"2019-08-10T10:13:13+0000","source":{"audio_info":"bitrate=128","bitrate":128,"genre":" ","listener_peak":2,"listeners":0,"listenurl":"http://myhost:8000/List","server_description":"Default description","server_name":"Radio Name","server_type":"audio/mpeg","server_url":"http://url.ru","stream_start":"Sat, 10 Aug 2019 10:17:11 +0000","stream_start_iso8601":"2019-08-10T10:17:11+0000","title":"Bestiality Business 2016 - Infant - Devil's Incarnate","dummy":null}}}

Подправил некоторые поля чтоб не посчитали за рекламу, но в целом выводится это.

419
gyurgin_ @gyurgin_
Дайте ну хоть в личку поток посмотреть. Тут просто artist не передается. У меня с Вашим файлом все выводит.

419
gyurgin_ @gyurgin_
Ices ну это не проф вариант совсем, а Вы чето еще хотите. Можно сделать, но нужно ли.

419
gyurgin_ @gyurgin_
И еще, ну дергайте вы icecast, метаданные на сайт надо отдавать как нибудь его каждый раз не передергивая. Способов вагон.

37
Sluchayno @Sluchayno
НЕ могли бы вы рассказать хотя бы про 1 способ как правильно передавать метаданные? ) Я отписался вам в личные сообщения.

37
Sluchayno @Sluchayno
Вообще на данный момент я получаю названия так

$('.playstop').click(function() {
aud.src= adres + "/song";
aud.play();
getStats();
timeout = 5;
setInterval(getStats, timeout * 1000);
});

function getStats(){
$.ajax({
url: adres+"/status-json.xsl",
success: function(data){
$('.song marquee').text(data.icestats.source.artist +" - " + data.icestats.source.title);
}
});
}

Это нормальный способ?

419
gyurgin_ @gyurgin_
$('.song marquee').text(data.icestats.source.yp_currently_playing);
Не? Код конечно ужасен, да и давать слушателям дергать айскаст... Но не мое это дело.

37
Sluchayno @Sluchayno
Так поделитесь секретом, как сделать лучше? Как выводить название песен не дергая все время icecast? Песни у меня играются рандомно ices 0.4 так что списка нет и заранее что играть будет я не знаю.