PHP: Descargar canciones de Goear

3 09 2008

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>";
			}
			}
		}
?>
Anuncios

Acciones

Information

5 responses

13 10 2008
MioTraGus

Curiosamente otro asunto me ha traido hasta aquí y debo decir que haces al flare me a ayudado muchísimo en un proyecto, esto demuestra cada día mas que no hacen falta programas complicados y caros para hacer radiografías a nuestros queridísimos archivos flash.

Gracias.

5 02 2009
noFunciona

Parece ser que los de goear se han pasado pro este foro y han cambiado algo las cosas porque ya no va el tema:

solo ver el ejemplo y da un error HTTP 404 Not FOund

http://goear.com/files/sst/secm8b20ef6.xml

15 02 2009
juanca1718

interesante ste script… aunq ia no funka.. te agradeceria mucho si lo actualizas

5 03 2009
Sebastián Fredes

Yo cree un script para descargar los archivos de Goear
esta dividido en dos partes. La primera es el formulario en el cual colocas la dirección del archivo a descargar y la segunda parte es la que procesa los datos ingresados en el formulario.

Aqui va.
formulario en HTML

Goear Downloader

 

 

Ingrese la direccion del archivo de Goear a descargar.
Ejemplo: http://www.goear.com/listen.php?v=8808553

 

 

Script en php que procesa el formulario

<?php
$goear_url = $_POST[‘url’];

$extract = explode(‘v=’,$goear_url);

$file = $extract[1];
$car = substr($file,0, 1);

$site=”http://www.goear.com/files/xmlfiles”;
$xml_url= “$site/$car/secm$file.xml”;

/*Funcion para obtener la direccion del mp3 */
$g_xml = @file_get_contents($xml_url);
$gps = explode(‘

26 03 2009
Oddo Tagliatelle

Ya no se puede, lo hago todo y me marca http no encontrado error 404, què hagoooooooooooo???????????????”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: