Estoy haciendo una pequeña interfaz gráfica con Python 3 que debería descargar un video de YouTube con su URL. Usé el módulo youtube_dl para eso. Este es mi código:
import youtube_dl # Youtube_dl is used for download the video ydl_opt = {"outtmpl" : "/videos/%(title)s.%(ext)s", "format": "bestaudio/best"} # Here we give some advanced settings. outtmpl is used to define the path of the video that we are going to download def operation(link): """ Start the download operation """ try: with youtube_dl.YoutubeDL(ydl_opt) as yd: # The method YoutubeDL() take one argument which is a dictionary for changing default settings video = yd.download([link]) # Start the download result.set("Your video has been downloaded !") except Exception: result.set("Sorry, we got an error.") operation("https://youtube.com/watch?v=...")Cuando ejecuto mi código, me sale este error:
ERROR: YouTube said: Unable to extract video dataVi aquí que era porque no encuentra ninguna información de video, ¿cómo puedo resolver este problema?
Si tiene pip instalado, puede usarlo para actualizar youtube-dl que me ayudó.
sudo pip install --upgrade youtube_dl
La forma más sencilla y rápida de resolver este problema sin correr y probar miles de soluciones diferentes es eliminar por completo Youtube-dl y reinstalarlo usando el archivo .deb y apt. Primero, púrguelo de su sistema.
sudo apt purge youtube-dlO
sudo pip3 uninstall youtube-dlA continuación, vaya AQUÍ ( http://ftp.us.debian.org/debian/pool/main/y/youtube-dl/youtube-dl_2021.12.17-1_all.deb ) para descargar el archivo .deb. Una vez descargado el archivo, instálelo usando apt con el siguiente comando. Esto resolverá tu problema. Obviamente, se asegurará de que su número de versión y nombre de archivo sean correctos.
sudo apt install ./youtube-dl_2021.12.17-1_all.debSi esta solución funciona para usted, POR FAVOR vote para que otros puedan encontrarla fácilmente.
El paquete youtube-dl usa código python y busca la versión correcta de python para ejecutar. Si tiene python3, ingrese:
sudo sed -i '1s/python/python3/' /usr/local/bin/youtube-dl
Actualizar youtube-dl me ayudó. Dependiendo de la forma en que lo instaló, aquí están los comandos:
youtube-dl --update (actualización automática)pip install -U youtube-dl (a través de python)brew upgrade youtube-dl (macOS + homebrew)choco upgrade youtube-dl (Windows + Chocolatey)Si está utilizando la línea de comando youtube-dl en la actualización de MacOsx usando este comando:
sudo youtube-dl --updateTuve el mismo error en Ubuntu 20.04. Lo resolví actualizando youtube-dl descargando un .deb desde: https://packages.debian.org/sid/all/youtube-dl/download
Aunque también puede obtener la actualización en el sitio oficial de youtube-dl.
Para usuarios de ubuntu:
sudo apt purge youtube-dl sudo pip3 install youtube-dl hash youtube-dlLo único que funcionó para mí en Ubuntu fue instalar usando el paquete Debian/archivo .deb:
wget http://ftp.de.debian.org/debian/pool/main/y/youtube-dl/youtube-dl_2021.02.04.1-1_all.deb sudo apt install ./youtube-dl_2021.02.04.1-1_all.debPuede intentar agregar un archivo de cookies ya que algunos videos tienen restricciones de edad. Use este complemento de Chrome Cookie.txt para descargar sus cookies en un archivo txt y luego use estas banderas --cookies /path/to/cookies/file.txt sin olvidar poner la ruta correcta al archivo de sus cookies.txt.
Muestra:
youtube-dl -n --cookies ~/Downloads/cookies.txt https://www.youtube.com/watch\?v\=h7Ii7KKapig