BOMBOLOM.COM

(mix) Rádios que não querem ser ouvidas!

Pediram-me para gravar uma entrevista que uma pessoa conhecida ia dar na Rádio Nova Antena. Obviamente que a primeira coisa que fiz foi ver se esta rádio fazia o stream da respectiva emissão a partir da Internet. As boas notícias é que de facto a rádio tem a sua emissão on-line. As más notícias é que parece que esta rádio não quer que o pessoal ouça a emissão se utilizar o Firefox ou o Konqueror.

Habituado que estou a problemas deste género e seguindo a máxima de não atribuir à malicia o que mais facilmente se pode atribuir à estupidez foi consultar o código fonte da página que dá accesso ao stream da emissão. Eis que me deparo com o seguinte:

<HTML>
<HEAD>
<SCRIPT LANGUAGE="Javascript">
<!--
var Words = "%3Ctitle%3ERNA%20 [ESTA ERA UMA STRING COM UNS 22kB QUE CORTO AQUI]
function SetNewWords()
{
     var NewWords;
     NewWords = unescape(Words);
     document.write(NewWords);
} 
SetNewWords();
// -->
<SCRIPT>
<HEAD>
<BODY>
<BODY>
<HTML>

Estamos pois perante uma tentativa bastante fraca de esconder o conteúdo da página! Este tipo de atitude não leva, obviamente a nada. A Internet é um meio aberto (esta abertura foi exactamente o que lhe proporcionou o crescimento explosivo que teve nestes últimos anos), por isto o código fonte da página não pode estar muito distante. Se os donos desta rádio não querem que ela seja ouvida, o melhor mesmo é tira-la do ar. Enfim, adiante...

A página consiste nos headers e no código suficiente para carregar e executar a função SetNewWords(). Esta função, o que faz, é simplesmente pegar na string Words, fazer o unescape da mesma e escreve-la para o documento corrente, gerando desta forma a página.

Como resolver então este problema?

Até foi bastante fácil. O passo um consistiu em instalar um interpretador de JavaScript (usei o NGS), no Kubuntu isto implica fazer o seguinte como root:

apt-get install ngs-js

A seguir altera-se, ligeiramente o código fonte da página, para:

var Words = "%3Ctitle%3ERNA%20 [ESTA ERA UMA STRING COM UNS 22kB QUE CORTO AQUI]
var out = System.stdout;
function SetNewWords()
{
     var NewWords;
     NewWords = unescape(Words);
     out.writeln(NewWords)

}
SetNewWords();

E grava-se num ficheiro, no caso chamei-lhe "porcaria.js".

As alterações consistiram em retirar as tags html e redireccionar o output para o standard output.

Agora vamos correr o programa:

$ ngs-js porcaria.js > porcaria.html

No ficheiro porcaria.html temos o html da página, bem formatado e tudo! Fazendo uma análise rápida a esta página, facilmente se encontra o URL da stream de audio. na linha seguinte:

<param name="Filename" value="mms://stream.radio.com.pt/ROLI-ENC-138" ref>

Ou seja:

mms://stream.radio.com.pt/ROLI-ENC-138

Também fica claro porque é que a stream não funciona em browsers diferentes do IE. Só utilizaram o formato para IE, quando deviam ter acrescentado qualquer coisa como o seguinte dentro da tag object que já lá têm, para funcionar também nos outros browsers (ou seja nos browsers que seguem os standards da web).

<embed type="application/x-mplayer2" 
     ID="MediaPlayer" WIDTH="0" HEIGHT="0"
     src="mms://stream.radio.com.pt/ROLI-ENC-138" 
     autostart="1" 
     transparentatstart="1"
     showcontrols="0" 
     showdisplay="0" 
     showstatusbar="0"
     animationatstart="0"></embed>

Para ouvir a stream basta fazer:

$ mplayer mms://stream.radio.com.pt/ROLI-ENC-138

Para gravar a stream:

$ mplayer -dumpfile rna.asf -dumpstream mms://stream.radio.com.pt/ROLI-ENC-138

Já está! Problema resolvido... Já agora também quero dizer que não creio que o site tenha sido feito desta forma por uma questão de malícia!

28.05.2007 | Ler mais | Comentários | Tags ,

Voltar à Página principal | Made with PyBlosxom