jueves, 22 de julio de 2010

Bash script para descargar mp3 de GoEar [propio]


Amigos, les dejo el siguiente script que hice en bash para bajar música de goear, basándome en un par que encontré en la web y que ya no funcionaban. Les hice unas cuantas mejoras, para hacerlo más fácil de usar y práctico.

Entre sus funcionalidades, destacan:

- Ya no es necesario conocer el ID del mp3, el script se encarga de buscarlo

- Es posible realizar búsquedas a partir del nombre del tema, del nombre del artista o de ambos a la vez (incluso poniendo sólo parte del nombre)

- Podemos elegir la cantidad máxima de resultados a buscar

- El script se encarga de renombrar el archivo luego de descargarlo, con el nombre del tema y del artista

y algún que otro detalle más...

Copien el contenido del archivo que se encuentra más abajo y péguenlo en un editor de texto. Guardenlo con extensión .sh en la carpeta que deseen.
Luego hacen clic con el botón derecho sobre el ícono => propiedades => permisos y activan la casilla "Permitir ejecutar el archivo como un programa"

Listo. Ahora, para ejecutarlo, hacemos clic sobre el archivo y luego en el botón "Ejecutar en un terminal"

Espero les agrade.

---------------------------------------------------------------------
dijo:


#!/bin/bash

# Script para descargar música de www.goear.com

# Creado por kazad0r basado en los siguientes: http://www.taringa.net/posts/linux/4749240/Bajar-Musica-Goear-%28Bash-Script%29.html y http://github.com/maraujop/GoearBestMatch/blob/master/GoearBestMatch.sh (Creditos a sus respectivos autores)



# --------------------------------------------------------------------------------------------------------------------------



# configurar la búsqueda

clear
echo 'Introduzca el título de la canción a buscar y/o el nombre del artista'
echo ' '
read SONG
clear
echo 'Pesione ENTER para realizar la búsqueda por defecto (hasta 10 resultados), '
echo 'o ingrese un número mayor para intentar una búsqueda más amplia'
echo '(sólo múltiplos de 10).'
echo ' '
read NUMBER
let x="$NUMBER/10"
SONGID=(`echo $SONG | tr ' ' '+'`)

if `test $SONGID`
then
clear
echo 'Buscando...'
echo ' '

# buscar las palabras clave ingresadas y guardar los resultados en archivos temporales

wget -q http://www.goear.com/search.php?q=$SONGID
cat search.php?q=$SONGID | egrep -o 'class="b1">[^<]*</a>' | cut -f 2 -d '>' | cut -f 1 -d '<' >>1
cat search.php?q=$SONGID | egrep -io '<div style="color:[^;]*;font-size:11px;padding-left:13px;">[^<]*</div>' | cut -f 2 -d '>' | cut -f 1 -d '<' >>2
cat search.php?q=$SONGID | egrep -o "listen/([[:digit:]]|[[:alpha:]])*/" | cut -f 2 -d "/" | cut -f 1 -d '/' >>3

a=1
while [ $a -lt $x ]; do
wget -q http://www.goear.com/search.php?q=$SONGID'&'p=${a}
cat search.php?q=$SONGID'&'p=$a | egrep -o 'class="b1">[^<]*</a>' | cut -f 2 -d '>' | cut -f 1 -d '<' >>1
cat search.php?q=$SONGID'&'p=$a | egrep -io '<div style="color:[^;]*;font-size:11px;padding-left:13px;">[^<]*</div>' | cut -f 2 -d '>' | cut -f 1 -d '<' >>2
cat search.php?q=$SONGID'&'p=$a | egrep -o "listen/([[:digit:]]|[[:alpha:]])*/" | cut -f 2 -d "/" | cut -f 1 -d '/' >>3
let a=a+1
done

# imprimir los resultados de la búsqueda en la pantalla

clear
echo 'Resultados encontrados:'
echo ' '

i=1
while read linea ; do
cancion[$i]=${linea}
i=$(($i+1))
done <<< "`cat 1`"

o=1
while read linea ; do
artista[$o]=${linea}
o=$(($o+1))
done <<< "`cat 2`"

p=1
while read linea ; do
ident[$p]=${linea}
p=$(($p+1))
done <<< "`cat 3`"

if [ -s 3 ]
then
n=1

while [ $n -lt $i ]; do
echo -e "$n - ${cancion[$n]}, ${artista[$n]}"
let n=n+1
done

echo ' '
echo 'Introduzca el número correspondiente a la cancion deseada, (o presione ENTER para cancelar):'
echo ' '
read SONG1
wget -q http://www.goear.com/tracker758.php?f=${ident[$SONG1]} -O "${ident[$SONG1]}.xml"


# Comprobar que la opción ingresada no es nula y que no sea un núm mayor que el núm de resultados hallados

if [ ! -z $SONG1 ]
then
if [ $SONG1 -lt $i ]
then

# Realizar la descarga seleccionada

echo 'Descargando... Por favor espere.'
SONGPATH=`grep -o "http://.*mp3" ${ident[$SONG1]}.xml`
ARTIST=`awk -F'"' '{ print $10 }' ${ident[$SONG1]}.xml`
TITLE=`awk -F'"' '{ print $12 }' ${ident[$SONG1]}.xml`
wget $SONGPATH -O "$ARTIST - $TITLE.mp3"
echo 'Terminado.'
echo 'La descarga ha finalizado satisfactoriamente.'

else
echo 'La opción ingresada no es válida. Operación cancelada'
fi


else
echo ' '
echo 'Operación cancelada.'
echo ' '
fi

else
echo 'Sin resultados.'
echo ' '
fi

# borrar los archivos temporales

rm 1
rm 2
rm 3
rm search.php?q=$SONGI*
rm -f ${ident[$SONG1]}.xml

else
echo 'No hay nada que buscar. Operación cancelada'
echo ' '
fi

echo 'Presione ENTER para salir'
read SALIR
exit 0



O también pueden descargar el script listo para ejecutar aquí:


http://www.megaupload.com/?d=0FQMR87C

Pesa 3.67 kB




Saludos!!

No hay comentarios:

Publicar un comentario