Hace ya unos meses quisé/tuvé que buscar letras de canciones. No eran muchas, unas 60, pero me dio por buscarlas con R; por supuesto tardé más tiempo que buscándolas a mano, pero … y lo que aprendí; además, si las hubiese buscado a mano, ahora no habría post. Eso sí, como no lo escribí cuando tocaba, ahora casí no me acuerdo. Time machine start!
En la búsqueda de conocimineto encontré 2 post fantásticos sobre lyrics y R: este y este.El segundo tengo que hacerlo, ya veremos si el año que viene.
Como siempre lo primero fue buscar en internet y me llevó aquí. En ese post, Baykal buscaba letras de canciones en 5 music APIs, ok, ya lo tenía!, pero problema, estaba programado en PHP. Nada, rápidamente le pregunté pero tardó en responderme, así que tuve que buscarme la vida y aprender algo de APIs, etc … Creo que donde finalmente entendí un poquito como funciona esto de las APIs fue aquí, también aprendí algo aquí.
Bueno, en resumiendo que conseguí bajarme lyrics de Chart Lyrics. Probé en varias API, pero esta no pedía API keys, no tenía limite de calls y Baykal decía en su post que era sencilla. Tras unos cuantos prueba-error conseguí bajarme las letras, pero como muchas canciones eran spanish, pues sólo se bajaron around un 30% y lo dejé ahí, el resto las bajé a mano. Como Hadley se entere me quita la licencia de R programmer!
Ok, hasta aquí el background y la biblio, pero ¿cómo se baja la letra de una canción en Chart Lyrics1?
Para buscar una canción concreta se hace …
Veamos un ejemplo con una canción que sé que está(ba) en Chart Lyrics: El hombre que casi conoció a Michi Panero de NV
Almaceno la query en querrye
y la hago con GET()
. Para entender un poco el package httr
ve aquí
OK, tengo la lyrics en aa
, pero en xml/html , así que hay que trabajarlo. Aquí lo aprendí.
Al final hice una función (que funcionaba). Que gusto!
Estaba contento, solo tenía que poner un loop o hacer un apply o un purr y ya estaba, me bajaría las letras de las 60 canciones de golpe, pero …. si metías la función inside a loop ya no chutaba. Yo creo que es porque Chart Lyrics no dejaba hacer calls más que tras haber pasado algo de tiempo (esto es lo que yo quiero creer) y como me dolió en el alma que no funcionase mi función, pues tuve que pedir ayuda. ¿A quien? … en mi entorno, de programming van justitos, así que tuve que recurrir a Stack Overflow y eso me dará para el siguiente post.
Bueno, pues eso es todo amigos. Me he quedado preocupado, ¿qué le habrá pasado a Chart Lyrics?
Bye, que voy a escribir 3 posts del tirón. Que ansia!! Sí, es que me voy a Albacete y me ha dado por arreglar el blog.
FOOTNOTES:
-
Mientras escribo esto he ido a la web de Chart Lyrics y no chuta. ¿Habrá desaparecido o sólo que la gente esta como loca buscando letras y recibe muchas API calls? ↩