Script en groovy para descargar ficheros de GoEar

Una de las cosas de Groovy que pueden resultarnos útiles en algunos momentos, es la posibilidad de escribir pequeños scripts para automatizar alguna tarea o para escribir pequeñas utilidades. Es algo muy habitual para lenguajes como Perl o Ruby, y que tienen la ventaja de que comienza antes su ejecución por no tener que arrancar la JVM, cosa que sí necesita Groovy(que esto sea más o menos crítico, que lo decida cada uno :P).

A modo de ejemplo, y basándome en el post Descargando la música de GoEar.com en debugmodeon, se me ocurrió escribir un pequeño script que hiciera prácticamente lo mismo(Extractor.groovy):

Update: Parece que el código se verá mejor en gist

import groovy.util.XmlParser
args.each{ id ->
def songs = new XmlParser().parse("http://www.goear.com/files/xmlfiles/${id[0]}/secm${id}.xml")
def song = songs.song[0]
def mp3 = song.'@path'
def name = (song.'@artist'+"_"+song.'@title').replaceAll(" ","_")
def file = new File("/path-a-un-directorio/${id}-${name}.mp3").newOutputStream()
file << new URL(mp3).openStream()
file.close()
println "${name} has been downloaded"
}

Para utilizarlo, simplemente le pasamos los identificadores de las canciones que queramos descargar, por ejemplo:

groovy Extractor.groovy cd332f6 e96ff20 acee672