Название потока icecast (без status.xsl)

Я стараюсь иметь название (исполнитель - песня) для некоторых потоков icecast. Здесь много дискуссий по этому поводу, и большинство из них просто проверяют статус.xsl (как это делает PHP-скрипт Icecast Now Playing).
Но :
- много потоков не позволяет другому скрипту прочитать этот файл ( например
http://95.81.147.3/status.xsl?mount=/fip/all/fiphautdebit.mp3 )
- как много говорит ePirat, парсить html таким образом небезопасно. Но он предлагает решение только тогда, когда у нас есть доступ к серверу.

Из того, что я прочитал: в самом потоке icecast есть метаданные, но решение дает работает только для Shoutcast. Итак, как для этой ссылки.
Самое близкое, что я нашел, это этот обзор кода, но, хотя в заголовке написано icecast, я просто вижу код Shoutcast с Icy -Проверка метаданных.

Эта очень полная ссылка может быть полезно (раздел внеполосных стандартов), но поясняется, что это не работает до сих пор.

Вопрос в основном: чтобы получить информацию об исполнителе - песне, как читать метаданные потока icecast, когда:
- я не администратор сервера
- я не хочу / не могу' t анализировать status.xsl?

Спасибо за вашу помощь


person bernardo    schedule 29.10.2014    source источник
comment
Ответ, который я дал в вопросе, на который вы ссылались, работает для потоков SHOUTcast и Icecast. Они используют один и тот же метод метаданных. Если вы не можете реализовать, у меня есть API, который прекрасно возвращает метаданные в JSON. Вы можете получить к нему доступ здесь: audiopump.co/accounts/products/manage/api   -  person Brad    schedule 30.10.2014
comment
ссылка от @Brad больше не работает.   -  person Bombelman    schedule 08.07.2019


Ответы (1)


Начиная с Icecast 2.4 предпочтительным способом получения машиночитаемых метаданных о потоках, проходящих через сервер, является status-json.xsl. Этот JSON API включен по умолчанию во всех установках.

Если status-json.xsl возвращает ошибку 404, значит, администратор сервера намеренно отключил доступ. В таком случае и в случае старых установок Icecast (2.3.x), которые не будут дооснащены JSON API (администратору будет достаточно скопировать status-json.xsl и < em>xml2json.xslt в каталог web) попытка проанализировать сам поток на наличие метаданных некрасива, но возможна. Однако следует задаться вопросом, решил ли администратор запретить доступ к метаданным, если они в целом в порядке с использованием своего потока помимо простого прослушивания.

person TBR    schedule 14.11.2014
comment
Да, это сообщение также появляется, если файла нет. В этом случае легко убедиться, просмотрев pub8.radiotunes.com/server_version.xsl, который показывает что это 2.3.3-х7. Это было бы только в том случае, если бы кто-то вручную скопировал файлы в корневой каталог Icecast. - person TBR; 18.03.2015