Попытка получить название песни из Shoutcast несколькими способами, ни один из которых не работает. Пожалуйста, посмотри

Я искал по всему Интернету сценарии и методы, которые могут получать информацию о песнях из потоков громкой передачи с использованием php. Хотя все они отлично работают на локальном хосте, все они терпят неудачу при загрузке на веб-хост (кстати, это 000webhost.com).

Вот методы, которые я использовал:

  1. с помощью fsockopen... В этом случае выдает ошибку "Время ожидания подключения истекло". При поиске в Интернете я узнал, что веб-хост может блокировать исходящие соединения.

  2. Затем я перешел к методу file_get_contents. Здесь возвращаемое значение становится ложным. Я уже проверил, что allow_url_fopen включен через phpinfo()

  3. Затем я перешел к использованию curl через следующий код:

    $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://s8.voscast.com:8562/"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2'); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true ); curl_setopt($curl, CURLOPT_TIMEOUT, 20); //curl_setopt($curl, CURLOPT_FOLLOWLOCATION,true); $shoutcast=curl_exec($curl);

Опять же, это возвращает false. Обратите внимание, что я закомментировал CURLOPT_FOLLOWLOCATION, потому что этот оператор выдает ошибку, что его нельзя использовать, когда php работает в безопасном режиме.

Неужели нет другого пути? Какие бы скрипты/методы/учебники/предложения я не обнаружил, используйте один из этих трех методов, когда они вообще не работают для меня.

Обратите внимание, что они работают ПРОСТО ОТЛИЧНО на моем компьютере, то есть на локальном хосте. Но как только они загружаются на веб-хостинг, он перестает работать.

Есть ли другой способ/обходной путь/метод, который мы можем попробовать? Мне просто нужно получить название воспроизводимой песни и ничего больше.

Большое спасибо!


person finitenessofinfinity    schedule 03.03.2014    source источник


Ответы (1)


Чтобы определить метаданные, вы должны каким-либо образом подключиться к серверу SHOUTcast. К сожалению, 000webhost.com — довольно ужасный хостинг-провайдер, предоставляющий уровень обслуживания, недостаточный для ваших нужд. Они ограничивают количество подключений, которые вы можете установить, что, вероятно, является проблемой, с которой вы столкнулись.

Единственный способ обойти это — использовать хостинг-провайдера, который позволяет вам подключаться к другим серверам. Обратите внимание, что даже провайдеры, которые позволяют вам устанавливать соединения, иногда не разрешают соединения за пределами порта 80. Если вы хотите быть уверены, что можете делать то, что хотите, рассмотрите экземпляр VPS за 5 долларов от Digital Ocean или аналогичный.

В качестве альтернативы всему этому у меня есть бесплатный сервис, который может отправлять ваши метаданные SHOUTcast вашим клиентам через AJAX. Затем вы можете использовать любой хост, который вы хотите.

person Brad    schedule 04.03.2014