Qué es PyWebDj (versión corta y oficial)
Es un programa sin ánimo de lucro que permite extraer el audio de ficheros alojados en internet por terceros.

Qué es PyWebDj (versión larga también conocida como: qué fumas?)
No lea el siguiente párrafo a no ser que esté muy aburrido (o trabajando)
Es la confirmación de que puedo ser un vago, lo que a su vez demuestra que puedo llegar a ser informático, sí, uno más de esos.
Después de este comienzo tan poco gracioso me explico: aproximadamente hace un mes me preguntaron si podía encontrar (vía eDonkey2000, ares, bittorrent…ponga aquí su protocolo p2p favorito) una canción. Nada, no la encontraba, era algo fuera de lo común y no lo encontraba, pero al preguntar dónde habían escuchado esa canción me dijeron que en un vídeo de YouTube. Así que me puse el mono de trabajo, bajé el vídeo, tiré de ffmpeg y saqué un mp3 con la canción en cuestión, una versión rock del canon de Pachelbel.

Hace unos días me volvieron a pedir algo parecido, así que antes de que esto se convirtiese en el Raúl puedes pasarte a formatear mi ordenador 2.0, decidí que tenía que hacer un programita chorra como regalo de reyes para todo el mundo y además me ahorrase el trabajo. En un principio iba a ser algo en plan: meto la URL, que baje el vídeo a cañón y que le saque el audio. Eso era feo y además lo tendría que seguir haciendo yo, sino podría pasar la de… Consola? Qué Consola? Yo sólo tengo una Play2, me vale esa? (Era un chiste geek, si no te ha hecho gracia, no hace falta que lo entiendas). Así que la siguiente idea fue Java + SWT, pero bueno ya se sabe, lo bonito de Java es que puedes odiarlo. Así que tras tener prácticamente todo lo necesario para bajar y extraer el audio, me puse a pegarme con SWT durante un buen rato (3 minutos), no está hecho para programarlo (sí, SWT se programa, no se diseña :D) a las tantas de la mañana o la tarde de un domingo.

Por qué no usar…dotNet, que te preparas una interfaz en 5 minutos con WinForms? Porque quería que fuese multiplataforma*. De ahí la idea de la aplicación para línea de comandos, y luego Java + SWT.

Entonces…? Python (webpy), SQLite, ffmpeg, XML, Flash, HTML, x cervezas, 500gr de pistachos, dos tardes de ayer salí y una noche un poco larga. Y como resultado una aplicación web con buscador de canciones, gestor de descargas y gestor de biblioteca musical. Probablemente no sea la mejor solución, pero era la más cómoda para mi, y al final la aplicación cumple con su función: bajar música.

*Habrá versión para Mac OS X y Linux es unos días (espero).

Licencia
Aunque todavía no he publicado el código, lo haré espero que pronto, de momento le he colocado una licencia Apache Version 2.0. Si alguien quiere hacer alguna sugerencia sobre la licencia más oportuna para esta aplicación, por favor, como siempre a través de los comentarios.

Sí, no todo es maravilloso
La aplicación es bastante mejorable, muy mejorable. Sé que tiene problemas (y fallos) pero no quería alargarme, más que nada porque durante los próximos días prefiero no dedicarle más tiempo a esto. Pero ya se sabe aquello de Release early, release often, yo de momento voy a cumplir la primera parte.
Por ejemplo, la calidad del audio está condicionada por los archivos de vídeo, así que no esperéis calidades altas. Todavía sólo he preparado la versión para Microsoft Windows. Seguramente en Internet Explorer no funcione (algún día lo hará).

No prometo NADA
Viene un mes un tanto duro para mi, así que no prometo mejoras, ni corregir errores hasta que al menos llegue el 15 de febrero, más o menos.

Sugerencias, quejas y dudas
Como siempre a través de los comentarios. Se bonificarán ;-).

Sobre lo legal, lo ilegal y lo alegal
Yo sólo pongo la cama, y creo que es cómoda. Nada más que decir.

Download PyWebDj for Windows
v0.100, Apache License, Version 2.0.

P.D.:
Podría haberme extendido más, pero estoy con el portátil en la cama y me estoy quedando sin batería. Así que perdonadme las faltas y que no haya hablado de cositas como Adobe AIR (entre otras). Y si probáis la aplicación se agradecería un comentario.

It seems the greasemonkey script isn’t working properly since a few days ago, maybe the latest release of Mozilla Firefox (2.0.0.6) or maybe some changes into the Google Reader intern JavaScript code have managed it to run in a bad behaviour.

This weekend I have just rewriting some parts of the script. Stealing some code from the GReader so now the results page uses the same UI Google Reader is using for showing results.

It could be better, but it’s a bug fix release, I’ll try to improve it in next releases.

Special thanks go to:

  • Marcin Jaworski, about the _USER_ID issue.
  • San Angove, about function.toString().
  • Raymon, lux and Oroaetus for advising me about the troubles with the latest Firefox release (2.0.0.6).
  • rondador for his tips.

Download Google Reader Gears Search
v0.130, licencia GPL.

Actualización: una nueva versión corrige algunos bugs. Por favor comprueba el nuevo GReader Gears Search Bug Fixed Edition. El enlace de descarga en esta entrada apunta a la nueva versión también.

Qué es Google Reader Gears Search
Es un script de Greasemonkey que nos facilita la búsqueda dentro de Google Reader, el lector de feeds de Google, haciendo uso de Google Gears. Este User Script ha sido probado satisfactoriamente en Mozilla Firefox bajo Ubuntu Linux, Mac OSX y Hasefroch XP.

Google Reader Gears Search

Qué necesito
Tienes que tener instalado Greasemonkey y Google Gears, además de haber pasado a modo offline en Google Reader en al menos una ocasión.

Qué limitaciones tiene
Su uso está limitado a los navegadores que soporten Google Gears y la extensión Greasemonkey. Además la búsqueda solamente se realiza sobre los 2.000 items almacenados en la base de datos de Google Gears para Google Reader.

Qué se podría mejorar
Actualmente se utiliza la misma tabla usada por Google Reader para los items, sobre dicha tabla no se pueden realizar búsquedas de tipo Full-Text, por lo que usa una consulta muy básica y muy pobre con el operador like. Una idea es replicar dicha tabla de modo que se puedan hacer consultas de tipo Full-Text. Además se podría adaptar más la presentación de los resultados a la interfaz de Google Reader. También se debería poder hacer una paginación de resultados Ya añadida!.Todas estas mejoras están en mi mente, pero ando un poco justo de tiempo, al menos hasta que acaben los exámenes, pero creo que como primera aproximación no está mal del todo.

Cómo surgió la idea
La semana pasada estuve en el Google Developer Day 2007 de Madrid (este es otro tema sobre el que debería hablar), y tuve la oportunidad de hablar con Chris Wetherell, el creador de Google Reader y el encargado de presentarnos Google Gears en Madrid. Una de mis preguntas a Chris fue sobre la posibilidad/dificultad de incluir un buscador dentro de Google Reader (para cada usuario se supone), no tardó mucho más de un segundo en explicarme los múltiples problemas asociados a este tipo de búsquedas.Yo estaba un poco lento, quizás por encontrarme rodeado de Googlers así que no pude hacer otra cosa que quedarme con su respuesta. Pero durante la fiesta (sí, también hubo fiesta) se me ocurrió que no debía ser muy difícil hacer uso de Google Gears, que el propio Chris había presentado por la tarde, realizando las búsquedas en la base de datos SQLite local. Chris, aparte de ser un genio y un gran tipo, me sirvió de inspiración para crear un script de Greasemonkey que básicamente se dedique a buscar en la base de datos local.

Última hora
Mientras redactaba esta entrada se me ha ocurrido que se podrían mantener en una tabla todos los items, y no sólo los 2.000 que sincroniza actualmente Google Reader. De momento se queda como otra idea más, así no me olvido de ella.

Feedback
Como siempre se aceptan todo tipo de sugerencias y críticas a través de los comentarios de esta entrada o a través de mi dirección de correo: i@rau1.com.

Actualización: una nueva versión corrige algunos bugs. Por favor comprueba el nuevo GReader Gears Search Bug Fixed Edition. El enlace de descarga en esta entrada apunta a la nueva versión también.

Download Google Reader Gears Search
v0.100, licencia GPL.



About Raúl

Raúl Ochoa, a spaniard working for Tuenti in Madrid, Spain. More about me.

Subscribe to the feed

If you want to receive a notification when I update the website, you only have to add the feed to your reader, or submit your email address and I'll let you know.

Twitter

Raúl's Twitter: Non-tweetable RegEx(s) make me cry :'-(. 3 days ago

Categories