4/09/2012 Simple Regexp para rss

Recientemente me encontraba revisando algo de musica  de los dj's de defcon{1,2,...19} y sus contenidos,yo en mi afan de tener algo de musica en mi celular  deseaba descargar toda la musica de  7 a la 9  para poder descargar la musica o video de alguna CON pasada te dan el link a un archivo rss .


Defcon contents

Eligiendo el  rss

Defcon 9 Music




pero resulta que me encontraba  con algunos problemas:

1.No tenia Itunes por obvias razones...debian,openbsdetc...
2.No me gusta para nada ese reproductor que se me instala con el gdm si rhytmbox,me parece que va algo lento con  la descargar de las canciones,cuando no es eso se me tira todo el  i3,Asi que yo viendo esta situacion pense en bash,y acordandome de @hecky y otros personajes que todo se puede hacer con bash!,la unica limitacion es tu imaginacion.

El archivo rss basicamente tiene una estructura ,pero nos centraremos en obtener todo lo que contenga la url de descarga que se encuentra dentro de  enclosure:

<enclosure url="https://media.defcon.org/dc-9/music/Defcon_9_Club_Saturday_07_Corrupt_Data.mp3" length="55069064" type="audio/mpeg"/>
si deseas mirar un ejemplo de los rss puede revisar este que es el que yo desee descargar:


asi que lo primero sera descargar nuestro archivo en cuestion para realizar el filtrado.

wget https://www.defcon.org/podcast/defcon-9-music.rss -O  defcon9.rss

despues :

cat defcon-9.rss |grep "<enclosure"|awk '{print $2}'|cut -f2 -d ' " '>urls.txt 

y por ultimo descargamos con wget :

wget -i urls.txt 
si todo estuvo bien deberia aparece algo como :




y asi podrias descargar las canciones.hubiera podida usar curl y la url pero no recordaba algunos parametros  y decidi meterme  por el lado largo .Espero les halla gustado el post y si sabes de otra forma de hacerlo pues no dudes en compartir :-P.

pd:Por cierto si deseas ademas de la musica de la 9 la de la 8 y 7 es simplemente el mismo proceso solo que tendrias que usar
>>urls.txt
Digg it StumbleUpon del.icio.us

0 comentarios:

Post a Comment