Google+ Seguidores

viernes, 20 de octubre de 2017

Descargar vídeos de YoutTube con Python y Pafy

Introducción:

YouTube es una plataforma que nos permite disfrutar de vídeos informativos, películas, música y mucho, mucho más.

Siempre que escuchamos una canción queremos descargarla, si vemos un vídeo también queremos descargarlo, de esta manera podríamos verlos desde donde queramos sin necesidad de una conexión a Internet.

Hoy te enseñare a descargar vídeos y audios de el sitio web conocido como YoutTube, esto lo lograremos haciendo uso de una librería llamada Pafy, si aun no tienes la librería Pafy, puedes descargarla ingresando al siguiente enlace: Librería Pafy.


Resultado de imagen para youtube

Usando Pafy:

Pafy una biblioteca de Python para descargar contenido de YouTube y recuperar metadatos.

Antes de descargar contenido, usaremos a Pafy para obtener información de un vídeo especifico.

A continuación te mostrare un ejemplo para obtener el titulo de un vídeo.



import pafy

url_video = "https://www.youtube.com/watch?v=JkK8g6FMEXE"

video = pafy.new(url_video)

print(video.title)


Analicemos el código: Lo primero que hacemos es importar a Pafy, luego creamos una variable con el identificar url_video con el link del video de tu elección, creamos una variable llamada video la cual instanciará a pafy.new al cual le pasamos como argumento la variable url_vide. Luego de este procedimiento, usamos la función print para imprimir el titulo del vídeo, el cual conseguimos usando el método title. El resultado debería ser el siguiente:



Como pueden observar, mi resultado es "Aerosmith - I Don't Want to Miss a Thing", el cual es vídeo que he seleccionado para esta prueba.

Si quieres ver la descripción del vídeo en vez del titulo, el procedimiento es el mismo, pero en vez de usar el método title, usamos el método "description".



Como pueden observar, el resultado es el deseado.

¿Que otras cosas podemos lograr con Pafy?

A continuación les mostrare otros métodos con los que podemos obtener más datos de un vídeo de Youtube:


 
import pafy

url_video = "https://www.youtube.com/watch?v=JkK8g6FMEXE"

video = pafy.new(url_video)

video.viewcount #Este método nos devuelve el numero de visitas del vídeo

video.category #Este método nos devuelve el tipo de categoría del vídeo

video.author #Este método nos devuelve el nombre del canal que subió el vídeo

video.duration #Este método nos devuelve la duración del vídeo

video.published #Este método nos devuelve la fecha en la que fue publicado el vídeo

video.likes #Este método nos devuelve el numero de likes del vídeo

vdieo.dislikes #Este método nos devuelve el numero de dislike del vídeo

video.keywords #Este método nos devuelve una lista con todas las etiquetas del vídeo

video.thumb #Este método nos devuelve una url la cual es la miniatura del vídeo

video.videoid #Este método nos devuelve el identificador del vídeo


Estos son algunos de los métodos que Pafy nos proporciona.


Descargando Vídeos y Música de YouTube.

Llegamos a la parte que todos estaban esperando, usaremos algunos métodos para descargar vídeo y audios de los vídeo que queramos.

Empecemos por descargar nuestro primer vídeo.

import pafy

video = pafy.new("https://www.youtube.com/watch?v=JkK8g6FMEXE")

best = video.getbest(preftype="mp4")

best.download()


Como pueden observar, estamos repitiendo el mismo procedimiento de antes, pero ahora estamos haciendo uso del método getbest, el cual nos devuelve la mejor resolución del vídeo, le pasamos como argumento a preftype con el formato del vídeo en este caso sera mp4. Luego usamos el método download para empezar la descarga, luego de este veremos el progresa de la descarga, el resultado debería quedarnos algo así:



Luego de que termine el proceso, el archivo con formato mp4 debería estar en el directorio actual del programa:



Ahora veamos un ejemplo de como seria el procedimiento para descargar el audio de este video:

import pafy

video = pafy.new("https://www.youtube.com/watch?v=JkK8g6FMEXE")

bestaudio = video.getbestaudio()

bestaudio.download()


Como pueden observar el procedimiento es el mismo, pero con el uso del método getbestaudio. Y nos volvería a mostrar el progreso de la descarga:




Bueno, eso a sido todo de parte por hoy, esta librería es muy interesante y de mucha utilidad.

Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes.

15 comentarios :
Write comentarios
  1. No Puedo Instalar,Nesecito Su Ayuda.

    ResponderEliminar
  2. hola me pasa lo mismo WARNING:root:pafy: youtube-dl not found; falling back to internal backend. This is not as well maintained as the youtube-dl backend. To hide this message, set the environmental variable PAFY_BACKEND to "internal".
    Traceback (most recent call last):

    ResponderEliminar
    Respuestas
    1. Ese mensaje no es de error, la cuestión es que no instalamos youtube-dl, como lo indica el mensaje, podríamos esconder el mensaje cambiando la variable PAFY_BACKEND a "internal", pero puedes usar la librería normalmente.

      Eliminar
  3. Como se puede cancelar la descarga?

    ResponderEliminar
  4. Se puede elegir la carpeta donde guardar?

    ResponderEliminar
    Respuestas
    1. Sí, fue una de las partes que me falto explicar, al método download puedes pasarle el argumento filepath asignándole la ruta en la cual quieres que el contenido se descargue.

      Ejemplo: best.download(filepath="/tmp/")

      Eliminar
    2. Muy bien Gracias, me gusta mucho el blog. ��

      Eliminar
  5. hola buenas tardes, magnifico blog, yo me hice un script basandome en este para descargar video de youtube, y los audios mp3, con una interfaz grafica de wxpython y lo compile con pyinstaller para crear el ejecutable y le añadi otras opciones, pero todo partiendo de este maravilloso blog.

    ResponderEliminar
    Respuestas
    1. Excelente, es bueno saber que ayudamos a otros a crear sus proyectos, Saludos :D

      Eliminar
  6. disculpa, lo que pasa es que cuando descargo el audio se descarga en (webm) y no se me reproduce, como puedo hacer que descargue en mp3

    ResponderEliminar
  7. Buenos días.
    Conozco este blog desde hace muy poquito, y la verdad, que me está ayudando bastante para crear un bot para telegram.
    Lo que quería comentar, o vaya casualidad, es que el vídeo que utilice de ejemplo para descargar el audio, me funcionó a la primera, pero hay amigos...pero a partir del segundo, sólo me sale errores y no descarga el audio.
    Se puede tener una idea de por que?

    Gracias por el blog.

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

Powered by Blogger .