Воспроизведение файла SHOUTcast pls - URL-адрес в файле pls ведет на HTML-страницу?

Я играю на некоторых радиостанциях SHOUTcast в самодельном флешплеере. Поскольку сам flashplayer не понимает файлы pls, я создал программу чтения pls на PHP, которая открывает и читает файл pls и перенаправляет на файл/ссылку, указанную в файле pls. (Я запрашиваю только потоки mpeg/аудио).

Запрос flashplayer для этого файла (в том же домене) будет направлен на поток, указанный в этом файле pls.

например, при «открытии» файла pls в PHP это дает, например, следующую информацию (через http://yp.shoutcast.com/sbin/tunein-station.pls?id=<someid>):

[playlist]
numberofentries=1
File1=http://132.241.56.35:8004
Title1=(#1 - 0/10) KCSC.ASChico.com - 24Kbps MP3
Length1=-1
Version=2

PHP перенаправляет запрос на http://132.241.56.35:8004, но ничего не слышит. Открыв его в браузере, чтобы проверить его существование, это HTML-страница, SHOUTcast D.N.A.S. Страница состояния. Например, при открытии в винампе он воспроизводит поток. Я что-то пропустил здесь?

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

Что я должен сделать, чтобы заставить это работать? Почему ссылка, которая должна быть потоком, является HTML-страницей?


person Codebeat    schedule 08.04.2013    source источник


Ответы (1)


Серверы SHOUTcast проверяют строку вашего пользовательского агента, чтобы определить, является ли он браузером или нет. Причина этого в том, что когда вы переходите по URL-адресу сервера SHOUTcast в браузере, вы попадаете на страницу администратора. Он выполняет это обнаружение, проверяя, есть ли в строке слово Mozilla.

Поскольку ваш Flash-плеер будет использовать строку пользовательского агента браузера, сервер SHOUTcast отправляет вам консоль администратора вместо потока.

Вы можете легко переопределить это поведение, добавив точку с запятой ; в конец запрошенного пути.

http://132.241.56.35:8004/;

Это заставляет сервер SHOUTcast игнорировать вашу строку пользовательского агента и вместо этого использовать MPEG OVERRIDE, который не содержит Mozilla и считается аудиоплеером.

person Brad    schedule 09.04.2013
comment
Огромное спасибо! Работает отлично Спасибо! - person Codebeat; 09.04.2013
comment
Хорошие краткие ответы на мои вопросы тоже, я ценю это. - person Dan; 12.07.2015