ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Может ли SHOUTcast или Icecast брать метаданные из XML файла?

 

9
Smolko @Smolko
Т.е. при вещании со звуковой карты через Simplecast необходимо подсовывать плеерам слушателей метаданные (название песни, артист и пр.). Как заставить SHOUTcast или Icecast брать эти данные не из потока (как это бывает при вещаниии при помощи SAM, например), а из XML файла (или другого какого-то файла)?

1400
Pheoru @Pheoru
Все проще, чем Вы думаете.
В крон вставляется команда вида (в зависимости от сервера, тут некий компромисс, работать она не будет ни там, ни там): wget "http://admin:pass@ip:port/admin.cgi?updatemetadata="ваша_надпись"

9
Smolko @Smolko
[quote=Nick Pheomotion]В крон вставляется команда вида (в зависимости от сервера, тут некий компромисс, работать она не будет ни там, ни там): wget "http://admin:pass@ip:port/admin.cgi?updatemetadata="ваша_надпись"[/quote]
Супер!
Дополнительные вопросы:
1. Что есть такое "крон"
2. http... вот на него уже с XML и подкладывать файлы?

8
GPK @GPK
Icecast или SHOUTcast отправляет метаданные клиентам вместе с потоком аудио определенным образом (синхорнно), а получает их параллельно, то есть асинхронно. через /admin.cgi?updatemetadata...

то есть, имхо, нужно периодически парсить xml и отправлять запрос обновления данных скрипту admin.cgi

периодичность парсинга обеспечивает служба запуска приложений по расписанию - крон.

9
Smolko @Smolko
Так, ну уже почти, почти становится ясно. Крон под винду скачан - проблем нет. Wget также скачан и поставлен. Тоже все ясно. Вот только цепочка так и не ясна. Верно ли я понимаю, что:

Wget должен опрашивать XML и посылать нужные данные скрипту admin.cgi, который, в свою очередь, проапдейтит метаданные на SHOUTcast, а тот уже упакует их в поток?

Что же тогда такое ентот адский скрипт admin.cgi?

8
GPK @GPK
не, наверное, неправильно.
Wget - прога под линух, как и крон
в винде есть "планировщик заданий" и експлорер.
admin.cgi расположен там, где работает шоуткаст
например, если радиостанция вещает на
**********/, то этот путь будет:
**********
Откройте свое радио в плеере и, вызвав в браузере тот путь, проследите за изменением отображаемых плеером данных, а вообще, в документации все описано, я, правда, не сильно ее читал, поэтому погу что-то недоговаривать, и где-то ошибаться.
есть хорошая статья "Протоколы сетевых радиостанций" - в которой в сжвтом виде все объяснено -)

5. Затем источник начинает отправлять mp3-поток.


C. Передача названия (песни) от источника серверу

Сервер получает название песни и URL страницы когда источник делает
вызов URL.

**********:portnumber/admin.cgi?pass=Server%20Password&mode=updinfo&song=Song%20Goes%20here&url=http://someurl.com

Показать текст

**********

8
GPK @GPK
Вот такой бред выходит и не могу понять, почему:
в скрипте написано: file( "http://$host:$pubort/admin.cgi?pass=$pw&mode=updinfo&song=whatever" );
при выполнении скрипта выводит: Warning: file(http://10.25.250.1:9009/admin.cgi?pass=p090909&mode=updinfo&song=whatever): failed to open stream: HTTP request failed! ICY 404 Resource Not Found
Вставляю в браузер строку из этого варнинга и - ********** - и только тогда название обновляется.

причем, если зайти в "командню строку" винды и выполнить сначала телнет на 9009 порт, а потом запрос
GET /admin.cgi?pass=p090909&mode=updinfo&song=whatever HTTP/1.1 (или 1.0), оно выведет тоже 404.

даже курлом пытался отправить - не получается. Что я не так делаю?

8
GPK @GPK
Оказалось, нужно было заголовок User-Agent: Mozilla вставить =|