Ir al contenido principal

YT Browser

yt-browser

Hace un tiempo, aproximadamente un més para ser exactos, que estoy desarrollando esta aplicación con Python (lenguaje del que se muy poco). La idea surgió ya que mi novia Eugenia frecuentemente me pedía si podía descargar algunos videos de la plataforma de vídeos Youtube. Si bien no me molestaba el hacerlo, quería facilitarle la tarea así puede usarlo a todo momento.

YT-Browser en Ruby

Arranque esta tarea en Ruby, que es un lenguaje que conozco bastante, pero de a poco se empezaron a ver los problemas. Primeramente la documentación de GTK y Ruby es escasa. En especial en lo que a GTK3 se refiere. Por lo tanto luego de casí desistir por no-me-acuerdo-qué problema decidí darle una oportunidad a Python.

Pasando a Python

Sorprendentemente en muy poco tiempo ya tenía la base de la aplicación implementada. Utilizaba la API de Youtube para buscar videos y luego Youtube-DL para descargarlos, en el proceso aprendí bastante de Python, como por ejemplo utilizar threads. Eventualmente aprendí a utilizar distutils de python para generar paquetes DEB y RPM. Aún tengo problemas que no se como solucionar con la resolución de dependencias pero es muy probable que pida ayuda en la lista de PyAr.

Mejorando la interfaz

Hace poco subí otra actualización que mejora la interfaz, y convierte la aplicación en una Gtk.Application, esto es un framework que provee GTK para tareas comunes. En el proceso añadí un listado de videos descargados con una barra de progreso que muestra el estado. El objetivo final de la aplicación es proporcionar una forma conveniente y rápida de descargar los videos, pero por sobre todo que sea fácil. He visto que hay varias interfaces para Youtube-DL pero ninguna orientada a usuarios finales. Actualmente estoy tomando mucha inspiración de aplicaciones del proyecto GNOME, y estoy comenzando a entender el por qué de ciertas decisiones de diseño que han tomado.

Para hacer

La aplicación dista de estar terminada, mi idea es añadir:

  • Diálogo de preferencias con opciones más avanzadas.
  • Soporte para múltiples backends (otros servicios como vimeo, etc.)
  • Guardar preferencias y listados de descarga en los archivos de configuración de usuario.
  • Explorar que otras opciones se pueden añadir sin complicar la interfaz.

Comentarios

Comments powered by Disqus