Hace tiempo que publiqué en este blog mi primer programita para descargar vídeos, concretamente fue el de la cadena TV3 de Cataluña, y recuerdo bien el proceso porque me supuso un par de noches en vela.

La idea surgió porque el sistema de descarga de vídeos desde TV3 era muy complejo, publiqué una entrada en el blog contando paso a paso cómo hacerlo y para mi sorpresa se convirtió en una de las más populares. Sin embargo los comentarios con dudas eran cada vez mayores, así que decidí hacer un pequeño script para hacerle la vida más fácil a los usuarios menos técnicos.

Para hacerlo elegí Python, es un lenguaje que por entonces ya me gustaba gracias a los plugins, aunque tuve que aprender a hacer la parte visual usando una librería llamada Tkinter. Y también tuve que aprender a hacer los instaladores para diferentes plataformas.

Reconozco que la experiencia de esta primera versión en Tkinter fue interesante, la aplicación cumplió su papel, incluso hice algunas versiones más para otras cadenas (Aragón TV, El Trece, …), pero ni el resultado ni la librería acabaron de gustarme.

Insistiendo en el tema tiempo después volví a sentarme y esbocé un par de pantallas en un papel de cómo debería ser una versión más avanzada del programita… Sin embargo a la hora de pasar del papel al código me costó un trabajo enorme, la dificultad de pasar a Tkinter mis ideas fue agotador, y el resultado fue bastante decepcionante. Así que la cosa no pasó de ahí.

La idea llevaba desde entonces en mi cabeza, y el papel con el boceto seguía dando vueltas en mi mesa, por lo que cada vez que leía sobre una librería para hacer aplicaciones de escritorio en Python me entraban ganas de ponerme con ello. Y cuando vi los últimos resultados que se habían conseguido con Kivy llegué a la conclusión de que era lo que necesitaba.

Estudié un poco, me puse a ello y conseguí progresar lo suficiente para hacer un primer prototipo basado en la descarga de vídeos de Aragón TV. En pocas horas tenía listo algo que superaba aquel primer esbozo que me había costado días y días en Tkinter, y en un par de días más ya tenía una aplicación que tenía buen aspecto.

Y reconozco que además me lo pasé muy bien en el proceso, me instalé el resultado en el móvil y estuve entretenido probando diferentes técnicas sólo por ver cuál quedaba mejor. No olvidemos que se trata de un hobby al fin y al cabo 🙂

Hace un par de días decidí sentarme a terminar el programita, y aunque sigue habiendo cosas mejorables cumple con su función que es descargar el vídeo.

Descarga en 3 pasos

La mecánica de este programita de descarga es sencilla, tampoco hay que complicarlo demasiado. En un primer paso se pide la URL donde está el vídeo que quieres descargar, así como el destino de la descarga.

[image src=»https://blog.tvalacarta.info/wp-content/uploads/2016/03/descargar-aragontv-paso1.png» responsive=»true»]

En un segundo paso el programa accede a la web de Aragón TV, para descargar la información y así confirmar visualmente cuál es el vídeo elegido.

[image src=»https://blog.tvalacarta.info/wp-content/uploads/2016/03/descargar-aragontv-paso2.png» responsive=»true»]

Y en un tercer paso se realiza la descarga usando la herramienta «rtmpdump».

[image src=»https://blog.tvalacarta.info/wp-content/uploads/2016/03/descargar-aragontv-paso3.png» responsive=»true»]

Sencillo, ¿no?

Versiones disponibles

Una de las cosas geniales de Kivy es que permite distribuir aplicaciones en Python destinadas tanto a equipos de escritorio (Windows / Linux / Mac OS) como a dispositivos móviles (Android / iOS).

El sistema que se utiliza para hacer los instaladores está un poco verde aún, y lo mismo me pasa a mí ya que todo esto me resulta un poco nuevo… casi me ha costado más trabajo empaquetar todas las versiones que hacer el programita en sí.

Así que en la página de descarga puedes encontrar instaladores (para Windows y Android), un ZIP con la aplicación lista para usar sin instalación (Windows y Mac OS X), y los ficheros para Linux donde tendrás que instalar previamente Kivy y rtmpdump.

Y por supuesto, puedes obtener el código fuente en GitHub.