Actualizado! Han cambiado algunas cosas de la página, así que actualizaré con la nueva información, para los interesados, siguiendo los pasos que había escrito se podría obtener una nueva/o forma/script para descargar los mp3. De todas formas hay que decir que este código no es complejo, en otras webs el procedimiento para hacer estas cosas se complica de forma considerable.
Esto es algo que está publicado ya en otros lugares, de hecho
lo escribí en el foro de WordPress hace más de un año, pero voy a intentar detallar algo más.
Si habéis buscado cómo se descarga de Goear, seguramente os habéis encontrado con páginas que le indicas la dirección y se descarga o instrucciones para descargar (están más abajo), pero antes de eso, seguro que alguien se pregunta… ¿cómo se llega a saber esas instrucciones? Supongo que habrá varios métodos más o menos complicados, este se basa simplemente en leer código fuente y al no tener mucha idea, pues probar mucho, vamos con el ejemplo de Goear:
Primero vamos a una oir Apologize que parece que está de moda con el anuncio, entramos en la página y miramos el código fuente, la idea es buscar donde debe estar la canción que está sonando, en este caso hay reproductor, lo buscamos (una forma de buscarlo es viendo que estará en el código fuente debajo de “Open in small window”) y nos dice que la dirección del reproductor es files/r.swf files/local.swf y no hay una dirección al archivo mp3, por lo que miramos el reproductor que estará en:
http://goear.com/files/r.swf
http://goear.com/files/local.swf
Entramos y sale el reproductor en grande, nos bajamos el archivo .swf (Archivo->Guardar como…)
Una vez lo tienes hay que “mirarlo por dentro”, para ello se puede usar Flare, es fácil de usar, una vez instalado pinchas con el derecho al .swf que quieras y seleccionas Decompile y te creará en la misma carpeta que el archivo .swf un archivo .flr con el mismo nombre.
Este archivo ya lo podemos abrir con el editor de texto que quieras, yo uso y recomiendo Notepad++. Ahora tenemos otro código que revisar, una de las cosas buenas de Notepad++ y otros del mismo tipo es que colorea las palabras clave y tal (si no lo hace por defecto, se puede ir en el menú de arriba a Lenguaje y seleccionar el que toque, en nuestro caso Flash actionScript) y resulta más fácil leerlo. Entre todo el código ahora hay que buscar algo que nos pueda servir, como por ejemplo direcciones a archivos, buscando nos encontramos con:
playlist = ‘files/sst/secm’ + _root.file + ‘.xml’;
my_str = _root.file;
mySubstring = my_str.substr(0, 1);
data_xml.load('files/xmlfiles/' + mySubstring + '/secm' + _root.file + '.xml');
La función load de data_xml no sabemos lo que hace, por el nombre se podría deducir, pero no entraremos, lo que nos interesa es que hay una dirección y tiene buena pinta.
La función substr devuelve, de la cadena desde donde se invoca, el número de carácteres especificados en el segundo parámetro de la función a partir del primero, es decir que si los parámetros son (0,1) devolverá el primer carácter, por lo que mySubstring será el primer carácter de _root.file.
Parece bastante interesante, en el código fuente de la web de la canción de goear, en la parte que corresponde al reproductor, además de la dirección hay varios parámetros y uno es flashvars=”file=8b20ef6″ con lo que podríamos probar a sustituir _root.file por 8b20ef6 y nos quedaría “files/sst/secm8b20ef6.xml” “files/xmlfiles/8/secm8b20ef6.xml” y con dirección completa:
http://goear.com/files/sst/secm8b20ef6.xml
http://goear.com/files/xmlfiles/8/secm8b20ef6.xml
Abrimos esta dirección y como vemos es un archivo xml, que lleva información de la canción como es el path, el título y el artista. Lo que nos interesa es el path, esa es la dirección directa el mp3 que puedes usar para descargarlo, insertar en blogs y tal. Y así es como se descarga manualmente de Goear, ya que el parámetro file=XXXXXX que se le pasa al reproductor es el mismo que está en la dirección de la canción, en este caso:
http://goear.com/listen.php?v=8b20ef6
Entonces una vez leído todo esto o para el que haya pasado y busque como hacerlo, los pasos para bajar un mp3 y obtener la dirección directa es:
1. Copiar el identificador de la canción que se encuentra en la dirección (en negrita): http://goear.com/listen.php?v=8b20ef6
2. Ir a http://goear.com/files/sst/secmXXXXXX.xml siendo XXXXXX el identificador anterior, de forma que quedaría:
http://goear.com/files/sst/secm8b20ef6.xml
2. Ir a http://goear.com/files/xmlfiles/1/secm123456.xml siendo la cadena “123456″ el identificador anterior y “1″ (el de antes de /secm…) el primer carácter del identificador, de forma que quedaría:
http://goear.com/files/xmlfiles/8/secm8b20ef6.xml
3. Una vez abierto el xml, copiar la dirección path y abrirla en el navegador o utilizarla para lo que se desee.
Vale ¿y en el título eso de PHP? Hace unos días me dio por mirarme un manual de PHP y he hecho un script que hace estos pasos directamente pasándole la dirección de la canción, seguro que hay formas mejores y tal, pero es el primero que hago jeje, lo he probado en mi servidor y parece que va, el tema es que no tengo donde colgarlo, así que dejo el código (para ajustar el script a los cambios de la web, sólo hay que cambiar el valor de la variable $nomFich):
<?
if (!$_POST){// si no hay datos enviados de un formulario, mostramos el formulario
?>
<FORM METHOD="post" ACTION="<?PHP $_SERVER['PHP_SELF']; ?>">
Introduce la dirección de Goear (p.e. http://goear.com/listen.php?v=8b20ef6)
<p><input type="text" name="direccion" size="35">
<input type="submit" value="Enviar" name="enviar"></p>
</FORM>
<?
}else{// si hay datos enviados del formulario
$dir=$HTTP_POST_VARS["direccion"]; //se recoge la direccion escrita
$id = substr(strrchr($dir, '='), 1); //nos quedamos con el identificador
if (empty($id)){
echo "No has escrito bien la direccion<br>";
echo "<a href=".$_SERVER['PHP_SELF'].">Volver a introducirla</a>";
}
else {
//$nomFich="http://goear.com/files/sst/secm".$id.".xml"; para la version antigua
$nomFich="http://goear.com/files/xmlfiles/".$id{0}."/secm".$id.".xml";
$xml = @simplexml_load_file($nomFich);
if (is_object($xml)){
$attrs=$xml->song->attributes();
echo "<a href=".$attrs[path].">".$attrs[artist]."-".$attrs[title]."</a>";
}
else {
echo "La direccion que has escrito es incorrecta<br>";
echo "<a href=".$_SERVER['PHP_SELF'].">Volver a introducirla</a>";
}
}
}
?>
Comentarios recientes