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?
Puede 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\=h7Ii7KKapigActualizar 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.
Si tiene pip instalado, puede usarlo para actualizar youtube-dl que me ayudó.
sudo pip install --upgrade 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.debEl 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
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.