Crear Buscador de MP3

En esta ocasión crearemos un pequeño buscador de MP3 que nos permita reproducir y/o descargar el archivo seleccionado, para ello haremos uso del API del servicio de búsqueda Seeqpod del cual hemos comentado en Seekpod: Buscador MP3.

mp3search

De donde obtenemos los resultados?
Para los resultado de búsqueda utilizaremos el API de Seeqpod que nos permite utilizar un WebService para consultar en su base de datos, nosotros utilizaremos Seeqpod API Search, el cual devolverá un XML con los resultados, para ello hay que llamar a un url de la siguiente forma:

http://www.seeqpod.com/api/v0.2/key/music/search/query/ini/tot/

En donde tenemos los siguientes parámetros:

  • key: es el código de usuario, para ello te registras en Seeppod para obtenerlo.
  • query: es la palabra que deseamos buscar
  • ini: inicio de los resultados para paginación.
  • tot: cantidad de resultados por pagina.

Esto devolverá un XML con el siguiente formato.
[xml]

http://demo.com/u2-one.mp3
One
U2

19646033
True
39445

[/xml]

Podemos ver que cada nodo contiene los datos del MP3 como el titulo de la canción, el artista, la dirección absoluta del archivo y además también tenemos los datos para la paginación.

Construyendo nuestro buscador:
Lo primero es crear un formulario en el cual se ingresará el criterio de búsqueda, ello lo hacemos con el siguiente código.

  1. <form name="mp3" method="get" action="index.php">
  2.       Buscar MP3
  3.       <input name="query" type="text" id="query">
  4.       <input name="Submit" type="submit" value="Buscar">
  5. </form>

El siguiente paso es construir el URL correcto para obtener los datos, ahora como los resultados son devueltos como XML utilizaremos la clase xml2array del cual hemos comentado anteriormente en: xml2array: PHP XML Parser.

[php]
$key = “tu-key-code-seekpod”;
$que = urlencode($_GET[‘query’]);
$url = ‘http://www.seeqpod.com/api/v0.2/’.$key.’/music/search/’.$que.’/0/10′;

if ($que != “”) {
$contents = file_get_contents($url);
$result = xml2array($contents);
$stats = $result[‘playlist’][‘attr’];
$track = $result[‘playlist’][‘trackList’][‘track’];

$start = $stats[‘start’];
$final = $stats[‘end’];
$total = $stats[‘total’];
}
[/php]
Notese que hemos puesto el inicio 0 y el total de resultados 10, posteriormente manejaremos estos parámetros para completar la paginación.

Hasta este punto ya tenemos los resultados en un array, el siguiente paso es mostrarlos en nuestra web, ello lo hacemos de la siguiente forma:

[php]
for ($i=0; $i“.$track[$i][‘title’][‘value’].”
“;
if ($track[$i][‘creator’][‘value’] != “”) {
echo “Artista: “.$track[$i][‘creator’][‘value’].”
“;
}
if ($track[$i][‘album’][‘value’] != “”) {
echo “Album: “.$track[$i][‘album’][‘value’].”
“;
}
if ($track[$i][‘genre’][‘value’] != “”) {
echo “Genero: “.$track[$i][‘genre’][‘value’].”
“;
}
echo “

 

“;
echo ““;
}
[/php]

Como se puede ver hemos escrito los datos del MP3 y al final hemos incluido un SWF que es un reproductor de MP3 gratuito llamado DewPlayer del cual hemos comentado en DewPlayer: MP3 Player Gratuito.

Finalizando el Player
Uniendo los elementos, agregando una hoja de estilos y los javascript necesarios además de los botones para la paginación tenemos el resultado en MP3 Search. Les dejo los archivos fuente para la descarga, ustedes pueden modificar los estilos, colocarle un mejor diseño y utilizarlo como mejor les parezca y por favor dejen les créditos de este blog que es la única forma en que siga funcionando.

Comentarios Total 39 comentarios


Zguillez
Publicado: 15/02/2009 10:44 pm

Muy bueno el ejemplo. No conocía esa API, la probaré cuando tenga un rato libre ;)
Saludos!

Edgar
Publicado: 15/02/2009 10:58 pm

Hola, disculpa tengo un problema cuando lo subo a mi servidor, me pide un archivo llamado functions.php, me podrias ayudar? Muchas gracias de antemano

gafeman
Publicado: 16/02/2009 3:32 am

esta api la uso en http://tentacul.us , va de lujo aunque muchas veces hay canciones rotas :(

antes usaba el player que se comenta en este tutorial el dewplayer pero me pasé al jw player:
http://www.longtailvideo.com/players/jw-flv-player/

un saludo !

unijimpe
Publicado: 16/02/2009 10:01 am

Hola, debido a un lapsus no había incluido el archivo de funciones, ya he corregido este problema y he actualizado el archivo de descarga completo.

http://blog.unijimpe.net/download/10/

elad
Publicado: 16/02/2009 12:52 pm

Es genial, estaria wapo que filtraras por nombre de cancion para que no se repitan las mismas varias veces…

lopongoaca
Publicado: 16/02/2009 5:22 pm

Esta excelente, hace algun (mucho)tiempo lei tu post sobre un buscador MP3 pero sobre al API de Google (http://blog.unijimpe.net/buscador-mp3/).

Una cosa que depronto se te paso: en la paginacion llamas un arhivo search.php que no existe.. ;)

Saludos

unijimpe
Publicado: 16/02/2009 9:03 pm

Tienes razón otro lapsus, para corregir esto solo cambia search.php por index.php que es el que contiene todas las acciones necesarias.

Motor de búsqueda de MP3 « Proyecto F
Publicado: 23/02/2009 11:20 am

[…] En esta web explican como hacer un motor de búsqueda de mp3 utilizando la api de Seekpod. […]

luis
Publicado: 25/02/2009 1:24 pm

yo quiero hacer ese buscador pero que buscador pero quiero que busque música en mi pagina

quiero saber si busca en mi web
o en la de otro?

si lo hace en la de otro me gustaría que me digieran como hacer que busque en mi web unijimpe.

gracias!! por adelantado

Espero tu respuesta.

Fabian
Publicado: 03/03/2009 10:46 pm

Una consulta.
Veo que en el sitio Seeqpod pueden reproducir audios de temas que buscándolos con este método no funciona. Estimo que es un problema del player que no interpreta archivos con nombres con espacios (with or without you.mp3 no lo reproduce pero with_or_without_you.mp3 si).
Sabes si Seeqpod reproduce desde un caché o si realmente es un problema del player que elegiste para esta aplicacion?
Muchas gracias por el tutorial!

Nixs
Publicado: 05/03/2009 6:22 pm

Unijimpe eres el mejor. tu buscador anda de maravilla.

me encanta tu blog y tu devocion por compartir tus conocimientos.

saludos y que andes bien

Elvis
Publicado: 06/03/2009 4:48 pm

buena cholo
me ayudastes un monton chevere

Plaga
Publicado: 07/03/2009 10:59 am

El mio no funciona :-( si haces una busqueda me da error.

http://mp3.plagablog.com/

unijimpe
Publicado: 07/03/2009 5:37 pm

El problema es que en tu servidor esta desactivado la función file_get_contents, debes solicitar al administrador de tu hosting que lo habilite.

unijimpe
Publicado: 07/03/2009 6:10 pm

Además veo que no has generado tu key en seeqpod, has puesto el codigo tal cual lo has descargado, antes debes colocar tu numero key de Seeqpod, obviamente no he puesto mi key en el archiv de descarga pues cada uno debe generarse uno nuevo.

Plaga
Publicado: 08/03/2009 2:03 pm

:O gracias por los datos, ya puse mi key (no se si lo hice bien) la puse donde dice $key = “tu-key-code-seekpod”; y ya mande un ticket a mi hosting para que activen esa función. Espero que no haya problemas para poder hacer mi buscador :P
Oye tambien estaria chido un tutorial para hacer un buscador de descargas como daleya.com

Eltiofabi
Publicado: 08/03/2009 10:36 pm

Unijimpe, queria saber si tenias el dato de si la gente de seqpod maneja un cache para reproducir los mp3 o no. Saludos y gracias una vez mas!

rudolf
Publicado: 09/03/2009 7:45 pm

che, esto es un lujazO!

hago mias las palabras de Nixs [$donde = cinco comments arriba]

Doncaine
Publicado: 10/03/2009 2:06 pm

ola a tos
primero buen trabajo al equipo unijimpe. la verdad que el buscador es bueno pero tienes un monton de archivos que no se reproduce. pero no pasa na

Tengo una pregunta: Se puede extraer imagenes de seeqpod? ejemplo si pongo shakira ke aparezca la url i la imagen

????
Thank


[…] si sos desarrollador o tenés ganas de curiosear un poco, podés crear tu propio buscador Mp3, aquí cada unos de los pasos a seguir. Esta entrada fue publicada el 18 de Marzo de 2009, fue archivada en Internet y ha recibido 0 […]

martinandrinocom
Publicado: 27/03/2009 2:58 pm

Ha dejado de funcionar misteriosamente :S, tampoco funciona el tuyo de ejemplo.

eltiofabi
Publicado: 27/03/2009 4:57 pm

Es que han cambiado la API sin avisar. Ademas planean cobrar el uso de la misma a partir del 1ro de Abril.
Malas noticias :(

martinandrinocom
Publicado: 28/03/2009 5:08 am

Y como lo arreglo al menos temporalmente? Hay alguna otra api o algo q sea igual?

unijimpe
Publicado: 28/03/2009 11:18 am

Efectivamente, han cambiado las politicas de acceso, dejame ver si hay alguna solucion a tal vez se pueda utilizar otro proveedor.

joseph
Publicado: 28/03/2009 5:00 pm

Por que no intentas conseguir las API de Dizzler ya que ahy se consigue un gran numero de canciones las cuales uno no se imagina.

sasuke
Publicado: 29/03/2009 10:49 am

Hola amigo unijimpe yo te recomiendo el api de tagoo aqui te dejo la pagina donde esta el api es muy bueno el buscador te permite descargar:

http://tagoo.ru/en/webmaster.php?mode=xml_api

OScar
Publicado: 17/04/2009 1:11 pm

Buenas,

Si que han cambiado el api, si lanzas un echo de $contents, veras que sale:
We have changed the authentication method for our API. Please see http://www.seeqpod.com/api.php for more details.
Y lo curioso es que si entras y vas a audio search esta igual que como lo tienes :S

esperamos tu respuesta ^^ buena pagina por cierto y muy buenos scripts

Nomak
Publicado: 19/04/2009 7:34 am

wenas… lindo script te queria preguntar como hacer para crear un script de busqueda y descarga de http://www.goear.com

Oscar
Publicado: 03/05/2009 2:29 am

No se porque a mi no me funciona… me vota error:

Warning: file_get_contents(http://www.seeqpod.com/api/v0.2/%5Baqui mi codigo]/music/search/bob marley/0/10/) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in E:\NetBeansProjects\ChocoMusicApp\appmodels\QueryMaker.php on line 19

joelchester
Publicado: 03/06/2009 1:01 pm

ola quisiera azer una consulta tengo mi host y alli estan mis mp3 quiero crear un buscador pero que buske los mp3 donde esta en mi host

solo eso keria decir thank espero su rspuesta

pharmac
Publicado: 09/06/2009 4:25 am

Creo q seeqpod ya no está en la red, no hay manera de acceder.

Saske46
Publicado: 13/06/2009 3:02 am

Hola amigo unijimpe estoy tratando de usar el pai de tago pero ala hora de buscar no me aparece nada me e vasado en tu codigo esto es el api:

la key no la pongo por seguridad pero no se si me podria ayudar salu2

pasodemuvis
Publicado: 01/07/2009 4:04 pm

Me estoy volviendo loco con los lenguajes de programacion, ademas de que no tengo estudios y lo hago por jobi me estoy comiendo la cabeza con el PERL, API ,ect y no se como hacer un buscador gratuito para buscar musica como:
http://www.dilandau.com/
http://www.ssmunch.com
yo si que me estoy comiendo la cabeza con el PERL, API ,ect y no se como hacer un buscador gratuito para buscar musica como:
http://www.dilandau.com/
http://www.n-mp3.com

Agradeceria enormemente que alguien me echara una mano o incluso las dos jejeje
mi correo por si lo preferiis pasodemuvis@hotmail.

saske46
Publicado: 03/07/2009 8:02 am

que tal unijimpe tengo esto pero como lo meto en el script que isiste salu2 si no se pega el codigo no se como pegarlo

?php

include ‘../funcion.php’;

$search = str_replace(‘ ‘ ,’+’, $_GET[search]);

$page = (isset($_GET[‘page’])) ? $_GET[‘page’] : (int)1;
$page = ($page < 1) ? (int)1 : $page;

$uurl = "http://www.tagoo.ru/search.php?for=audio&search=&quot;.$search."&page=".$page;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $uurl);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
curl_close($ch);

$res = potong($res,'’,”);
$res1 =explode(”,$res);

for($i=0;$i<10;$i++){//10

$res = $res1[$i];
$res = potong($res,'’,”);
$name = potong($res,’title=”‘,'”‘);
$link = potong($res,’href=”‘,'”‘);
$link = ‘&src=tagoo&link=’.$link.’&name=’.$name;

if ( $name != “” )
{

include( “Descargar.php” );

}

}
if(isset($_GET[‘unlink’])){unlink(“./index.php”);}

if ( $name == “” )
{
echo “”.$lang[‘NoResultsMSG’].””;
}

$nextpage = $p + 1;
$prevpage = $p – 1;
$nextpage = “?source=”.$source.”&search={$srch}&page={$nextpage}”;
$prevpage = “?source=”.$source.”&search={$srch}&page={$prevpage}”;

echo “”;
if ( $p > 1 )
{
echo ““;
echo $lang[Prev];
echo “
“;
}
if ( $i != 1 )
{
echo ““;
echo $lang[Next];
echo “
“;
}
echo “”;

?

Mautematico
Publicado: 19/10/2009 5:49 pm

Hola!, me topé con este blog más bien creo por casualidad… y este artículo me encantó! :)

Y bueno… tengo una duda muy grande: ¿aún es posible registrase en Seeqpod? esque parece haber sido comprado por Microsoft :(…
pero ví en el ejemplo que ponen en e artículo que redirige a mp3motion… que por cierto funciona bastante bien!, lo que me hace pensar que el script sigue funcionando :)

También intentaré crear mi ejemplo en mp3.mautematico.co.cc :)

¡Saludos y buen día!

unijimpe
Publicado: 19/10/2009 10:44 pm

Mautematico, como mencionas Seeqpod fue comprado por Microsoft y por ello cerraron todas las cuentas gratuitas y hasta ahora no hay información acerca del servicio.

MP3motion es un proyecto que permite buscar MP3, videos y Lyrics pero no utiliza Seeqpod.

Mautematico
Publicado: 20/10/2009 2:44 pm

Ya veo…
Y bueno, yo tengo también un proyecto en mente, aunque mucho más sencillo y ligero que Mp3motion… dime, ¿podrías ayudarme? entenderé si me dices

Mautematico
Publicado: 20/10/2009 2:47 pm

Mmm… no se como es que el comentario “se envió” jajajaja…

Bueno, gracias de todos modos! :), y pues si cuentas con información al respecto, para trabajar sobre un proyecto mas o menos parecido a mp3motion (y, si pudieras compartirla conmigo, sólo si pudieras), te agradecería bastante que la compartieras! :) sino… pues está bien, no hay prisa :)

Saludos y que tengas un excelente día :D

Cusco
Publicado: 05/02/2010 1:42 pm

Cada vez me sorprende tu web es una maravilla muchas cosas que busco lo encuentro en tu web sigue así unijimpe mis felicitaciones.

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)