Cómo descargar videos de YouTube utilizando Python

Cómo descargar videos de YouTube utilizando Python

Videos en tu ordenador, en cuestión de segundos.

Descargar videos de YouTube puede ser útil en una gran variedad de escenarios. Puede ocurrir que tengamos una conexión lenta a internet o que vayamos a estar algunos días en un lugar sin acceso al mismo. Quizás solo querramos tener una copia del video en nuestros dispositivos electrónicos en caso de que sea eliminado de la plataforma online, o nos resulte más sencillo mostrárselo a un amigo sin tener que estar pendiente de los anuncios.

Entre los usos más profesionales destacan tener los videos para extraer información de los mismos, como el audio o los subtítulos, para luego procesar esos datos y utilizarlos en algún estudio científico. Además, usando Python se puede automatizar el proceso de descarga de videos, lo cual resulta muy útil para proyectos que tengan que ver con el análisis de datos o el aprendizaje automático.

Sea cual sea tu motivación, te brindaremos una alternativa fácil para descargar videos de Youtube en cuestión de segundos. Nunca más querrás utilizar plataformas online externas para que realicen este trabajo por ti. ¡Te lo aseguramos!

Sin embargo, es importante tener en cuenta que descargar videos de YouTube va en contra de sus términos de servicio y solo debe hacerse con el permiso explícito del titular del derecho de autor del video.

La biblioteca pytube

Nuestra principal herramienta para descargar videos de YouTube utilizando Python, será la biblioteca pytube. Esta biblioteca nos permite descargar videos de YouTube de forma fácil y eficiente, utilizando una sintaxis muy simple. Con pytube, se pueden descargar fácilmente videos, audio y subtítulos, y también filtrar el video teniendo en cuenta la resolución.

Esta biblioteca es muy fácil de usar y oculta la complejidad de interactuar con la API de YouTube, lo que lo convierte en una opción conveniente para los desarrolladores que buscan agregar funcionalidad de descarga de video a sus proyectos en Python. Además, soporta la descarga de video en bloques y permite descargar video en diferentes formatos como mp4, mp3, etc.

Construyendo la solución

El primer paso para construir nuestro descargador de videos es instalar la biblioteca pytube en nuestro ordenador. Para ello, ejecutamos el comando pip install pytube en la consola de nuestro sistema operativo.

Una vez la instalación haya terminado, podemos crear el siguiente programa en Python, que descargará el video de YouTube que deseemos:

import pytube

video_url = "" # Agregar la url del video a descargar

yt = pytube.YouTube(video_url)

stream = yt.streams.first()

stream.download()

Veamos cómo funciona este programa paso por paso:

  1. Primero, importamos la biblioteca pytube en nuestro programa. Esto se realiza mediante la línea import pytube que aparece en la parte superior del programa.

  2. Luego, creamos la variable video_url que será donde almacenaremos la url del video que vamos a descargar. En el ejemplo anterior la variable tienen valor "". Para que funcione correctamente el programa, es importante que se sustituya este valor por el de una url válida.

  3. Una vez tengamos la url del video almacenada, creamos una instancia de la clase YouTube que nos brinda pytube. Esta clase recibe como argumento la url del video que vamos a descargar.

  4. Luego hacemos uso de la propiedad streams para obtener una lista de los diferentes formatos y calidades que tiene el video en cuestión. De esta manera podemos seleccionar la versión que necesitemos, antes de descargar el video. En nuestro caso, estamos escogiendo la primera opción disponible, sin tener nada más en consideración.

  5. Finalmente, llamamos al método download que nos brinda la propiedad stream para iniciar la descarga.

Una vez termine de ejecutarse este programa, el video estará descargado en el mismo directorio donde se encuentre el archivo de Python. Si queremos especificar la ubicación donde descargar el video, podemos modificar el llamado a la función download , pasando como argumento un directorio en nuestro ordenador.

Veamos una versión del código anterior donde resultará más cómodo especificar la url del video a descargar y el directorio donde almacenar el mismo, una vez descargado:

import pytube

def download_video(video_url, save_location):
    yt = pytube.YouTube(video_url)
    stream = yt.streams.first()
    stream.download(save_location)
    print(f'{yt.title} ha sido descargado en {save_location}')

def main():
    video_url = "" # Agregar la url del video a descargar
    save_location = r"" # Agregar el directorio de descarga
    download_video(video_url, save_location)

if __name__ == "__main__":
    main()

Una vez más, para hacer que este ejemplo funcione correctamente, debemos sustituir los valores que se asignan a las variables video_url y save_location por la url del video de YouTube y el directorio donde descargar el video, respectivamente. Esto permite desvincular el directorio de descarga del directorio donde se encuentra nuestro programa en Python.

Conclusiones

En este artículo hemos visto cómo descargar videos de YouTube, utilizando el lenguaje de programación Python.

Específicamente, hicimos uso de la biblioteca pytube, la cual permite crear instancias de clases representando un video de YouTube y acceder a diferentes versiones del mismo, teniendo en cuenta la resolución, entre otros factores. Además, vimos cómo descargar el video en la versión que deseemos y cómo especificar el directorio donde almacenarlo en nuestro ordenador.

Así que la próxima vez que quieras tener un video de YouTube en tu posesión, no vayas corriendo a otra plataforma online para que realice el trabajo por ti. Crea tu programa en Python, especifica el video que quieres y dónde lo quieres almacenar. En cuestión de unos segundos tendrás tu copia del video en la calidad que quieras, sin depender de terceros.

¡Todo esto y más, nos permite el mundo de la Programación!

También te puede interesar:

Did you find this article valuable?

Support Blog CodeXL by becoming a sponsor. Any amount is appreciated!