Devoogle: descarga el audio de las charlas de programación

Manu Pijierro
5 min readMar 3, 2019

Mitad reto técnico, mitad funcionalidad que aportara valor. Estos dos aspectos han sido los objetivos que puse en el horizonte cuando inicié el desarrollo de la mejora en Devoogle para poder descargar el audio de vídeos de Youtube de una forma más o menos inmediata, sin usar servicios de terceros, de cualquier charla técnica o de negocio que tuviera indexada en Devoogle.

Como he comentado en más de una ocasión, buena parte del tiempo de mi formación como programador está invertido en escuchar audios relacionados con el desarrollo de software. Soy usuario de Ivoox y tengo localizados varios podcasts en los que se habla de programación pero, a decir verdad, mi principal fuente de conocimiento viene de las charlas y conferencias que están en Youtube. Cada vez que localizaba algo interesante, usaba algún servicio de terceros para descargar únicamente el audio del vídeo y así aprovechar los viajes en coche, las horas haciendo deporte o de ocio para ir escuchando algo que me resultara interesante y así aprender mientras hacía otras cosas.

Disclaimer: Si quieres conocer más sobre este proyecto, puedes leer este artículo.

Objetivos

Esta nueva funcionalidad para descargar el audio de vídeos de Youtube, ha tenido dos objetivos fundamentales:

  • Aportar valor a los programadores de manera que puedan aprovechar mejor su tiempo de formación ofreciéndoles el audio de vídeos relacionados con el desarrollo de software.
  • Programar por diversión, mejorar habilidades de programación e intentar aprender lo máximo posible del reto técnico que ha supuesto implementar esta funcionalidad.

Funcionamiento

El manual para el usuario en este caso es muy simple . De forma general, junto a cada recurso de la página, siempre que sea un vídeo de cualquiera de los canales de Youtube indexado en Devoogle, aparece un enlace ‘Descargar audio’.

Descargar audio de un vídeo de programación

Cuando un usuario hace click en dicho enlace pueden ocurrir dos cosas.

  1. Si es la primera vez que se intenta obtener el audio, aparece una ventana modal en la que se le pide al usuario una dirección de correo electrónico. El motivo es que el proceso de obtención y conversión del audio se hace en un proceso ‘background’, ya que no es algo inmediato de conseguir y puede tardar unos minutos dependiendo de varios factores como por ejemplo el tamaño del vídeo…etc. Una vez esté el audio disponible se envía un correo al usuario con el enlace de descarga y a continuación la dirección de correo electrónico que introdujo anteriormente, por supuesto, es eliminada del sistema. No se guarda ningún dato.
  2. Si el audio ya ha sido procesado anteriormente, simplemente se descarga.

De manera que, en el peor de los casos, podemos disponer del audio en unos pocos minutos y en el mejor de los casos en el mismo momento (sin tener en cuenta tiempos de descarga que esto ya dependerá de la conexión de cada uno).

Restricciones

A decir verdad, no está disponible para descargar el audio de todos los enlaces de Youtube. Hay vídeos (sobre todo los del canal de Autentia), que llevan en su descripción un enlace hacia su versión audio en Ivoox. Con el ánimo de mantener todo lo posible la referencia hacia los creadores de contenido he respetado ese enlace, y, en aquellos vídeos en los que ha sido detectado, he querido que este sea el único enlace disponible para acceder al formato audio del vídeo. De esta manera, he pretendido no ‘robar’ ni un solo click a ningún creador de contenido cuando ya haya aportado el audio del vídeo.

¿Qué ocurre en background?

Lo más interesante a nivel de programación ocurre cuando el audio no ha sido descargado nunca y hay que obtenerlo. En el momento en el que usuario introduce su dirección de correo electrónico y solicita el audio, se genera un evento que pasa a encolarse en una cola de eventos que está siendo procesada constantemente en el sistema operativo mediante un ‘supervisor’.

Cada evento guarda la dirección de correo electrónico que introdujo el usuario y el identificador del vídeo. Cuando a uno de esos eventos le toca ser procesado, en la lógica de negocio se llama a un comando del sistema “youtube-dl” que obtiene y procesa el audio del vídeo dejándolo en una carpeta. Una vez youtube-dl ha terminado su tarea, se envía un correo electrónico al usuario con el enlace de descarga y se almacena el audio a modo de ‘caché’ durante un tiempo.

Youtube-dl

En realidad, la magia de todo este proceso está implementada por Youtube-dl. Iba a explicar que hace este comando pero la verdad, en su página web lo explican perfectamente así que lo copio de allí y lo pego aquí:

youtube-dl is a command-line program to download videos from YouTube.com and a few more sites. It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is not platform specific. It should work on your Unix box, on Windows or on macOS. It is released to the public domain, which means you can modify it, redistribute it or use it however you like.

Y, en la lógica de negocio de Devoogle, hay un punto en el que se hace lo siguiente:

Comando para extraer el audio de un vídeo de Youtube

En primer lugar se le pasa como parámetro la ruta y el nombre del archivo que tendrá cuando finalice el proceso y, como segundo parámetro, la url del vídeo.

Resumen

Espero que esta nueva funcionalidad le sea de utilidad a muchos programadores. Para mi lo es ya que como he comentado anteriormente, soy un consumidor constante de audios relacionados con el desarrollo de software, pero, sobre todo, me ha servido para programar, aprender y divertirme que al final es el objetivo de este proyecto.

Como siempre, cualquier comentario, sugerencia o aportación será bienvenida y, por supuesto, Devoogle está abierto a pull request en su repositorio de Github.

¡Chimpún!

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response