【问题标题】:Youtube_dl : ERROR : YouTube said: Unable to extract video dataYoutube_dl:错误:YouTube 说:无法提取视频数据
【发布时间】:2020-12-28 04:33:57
【问题描述】:

我正在用 Python 3 制作一个小图形界面,它应该下载一个带有 URL 的 youtube 视频。 我为此使用了youtube_dl 模块。 这是我的代码:

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=...")

当我执行我的代码时,我得到了这个错误:

ERROR: YouTube said: Unable to extract video data

我看到here是因为没有找到任何视频信息,我该如何解决这个问题?

【问题讨论】:

  • 如果您能够将其归结为引发此错误的特定部分,您将获得更多的牵引力。我经常担心没有包含足够的数据,但如果它是一个简单的问题,人们通常更有可能参与,而不是乍一看看起来像“为我做这个”的问题。我不会对你进行任何诽谤,但人们会经常点击、浏览和回击这些内容。
  • 是针对任何视频还是特定视频引发了错误? (我想我在 Reddit 上的某个地方读到,这可能是由于年龄限制而发生的)
  • @SolebaySharp 抱歉,只是因为我不确定 youtube_db 外部的东西是否会阻止我的程序
  • @MinionJim 我用多个视频测试了我的程序,但总是遇到同样的错误
  • 我刚刚测试了您的代码,除了网址错误之外,它可以正常工作。首先,你拼错了https(你有htps),其次它应该是/watch而不是?watch,所以你的操作调用线会变成operation("https://youtube.com/watch?v=...")。我认为这只是问题的一个错字,但我希望这能解决它(我无法重现你的错误)

标签: python python-3.x download youtube youtube-dl


【解决方案1】:

更新 youtube-dl 帮助了我。根据您的安装方式,以下是命令:

  • youtube-dl --update(自行更新)
  • pip install -U youtube-dl(通过python)
  • brew upgrade youtube-dl(macOS + 自制软件)
  • choco upgrade youtube-dl(Windows + Chocolatey)

【讨论】:

  • pip install -U youtube-dl
  • brew upgrade youtube-dl 在我的情况下。
  • choco upgrade youtube-dl 在我的情况下
  • 如果您来自 Ubuntu/debian,您最好不要依赖 apt 存储库,而是通过其他方式安装,如 youtube-dl github 上所述:github.com/ytdl-org/youtube-dl#installation
  • 别忘了先运行“youtube-dl --update”并写上“sudo”,否则,你会得到类似的错误:“ERROR: no write permissions on /usr/local/地窖/youtube-dl/2020.03.24/bin/youtube-dl”。这是由权限状态引起的,而不是由 youtube-dl
【解决方案2】:

对于 ubuntu 用户:

sudo apt purge youtube-dl 
sudo pip3 install youtube-dl

【讨论】:

  • 如果您收到错误:“错误:ffprobe/avprobe 和 ffmpeg/avconv 未找到。请安装一个。” ,你可以简单地解决它:sudo apt install ffmpeg
  • 您可能想要的第三个命令:hash youtube-dl
  • @BrentBaccala 这应该添加到答案中。
【解决方案3】:

我在 Ubuntu 20.04 上遇到了同样的错误。 我通过从以下位置下载 .deb 来更新 youtube-dl 解决了这个问题: https://packages.debian.org/sid/all/youtube-dl/download

虽然您也可以在 youtube-dl 的官方网站上获得更新。

【讨论】:

  • 请将您的代码解决方案包含为文本而不是图像
【解决方案4】:

在 Ubuntu 上唯一对我有用的是使用 Debian 包/.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.deb

【讨论】:

  • @CharithJayasanka .deb 文件每隔一段时间就会更新一次...只需下载并安装最新的文件,例如(截至今天)http://ftp.de.debian.org/debian/pool/main/y/youtube-dl/youtube-dl_2021.02.10-1_all.deb
【解决方案5】:

如果您在 MacOsx 上使用 youtube-dl 命令行,请使用此命令进行更新:

sudo youtube-dl --update

【讨论】:

  • 请添加评论而不是写新答案。因为它已经由 Manoj D Bhat 回答,20 年 12 月 10 日 8:30,比您早 11 天。
【解决方案6】:

如果你安装了 pip,你可以用它来更新youtube-dl 这对我有帮助。

sudo pip install --upgrade youtube_dl

【讨论】:

    【解决方案7】:

    您可以尝试添加 cookie 文件,因为某些视频有年龄限制。使用此插件Chrome plugin Cookie.txt 将您的 cookie 下载到一个 txt 文件中,然后使用这些 --cookies /path/to/cookies/file.txt 标志不要忘记将正确的路径放置到您的 cookies.txt 文件中。

    示例:

    youtube-dl -n --cookies ~/Downloads/cookies.txt https://www.youtube.com/watch\?v\=h7Ii7KKapig
    

    Surce

    【讨论】:

    【解决方案8】:

    根据 Manoj D Bhat 的建议,我卸载了重新安装的程序并再次尝试下载 youtube 链接“A”。这行得通,正如预期的那样,我下载了完整的视频。超级棒。

    但是,对于第二个视频 - 视频“B” - 它再次失败并出现同样的错误。 有趣的是,我尝试再次下载视频“A” - 使用我之前使用的相同命令 - 现在失败了。

    下载一个视频并重新安装该程序后,它似乎停止工作了?

    【讨论】:

      【解决方案9】:

      youtube-dl 包正在使用 python 代码,它正在寻找正确的 python 版本来运行。如果你有python3然后输入:

      sudo sed -i '1s/python/python3/' /usr/local/bin/youtube-dl

      【讨论】:

        猜你喜欢
        • 2020-07-29
        • 2012-03-22
        • 2017-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-14
        • 2011-09-27
        • 2020-06-26
        相关资源
        最近更新 更多