如何更新youtube-dl?

我使用youtube-dl来下载视频以便离线观看。通常情况下,它运行良好。然而,由于视频网站的频繁更改,有时需要进行快速更新。在13.04版本之前这不是问题,但升级到13.10版本后,出现了以下错误信息:
# youtube-dl -U
It looks like you installed youtube-dl with a package manager, pip, setup.py or a tarball. Please use that to update.

我尝试通过apt-get更新,但没有新的软件包。所以应用程序的更新机制已被禁用,维护者们也没有跟进,有什么解决办法?如何更新它? 而且为什么要改变呢?在raring中,它完全可以正常更新软件包管理器版本。
我已经遇到了兼容性问题。
$ youtube-dl "http://vimeo.com/55784152"
[vimeo] 55784152: Downloading webpage
[vimeo] 55784152: Extracting information
ERROR: Unable to extract info section; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.

快速更新:

根据要求,

# type youtube-dl
youtube-dl is hashed (/usr/bin/youtube-dl)

# apt-cache policy youtube-dl
youtube-dl:
  Installed: 2013.08.29-1
  Candidate: 2013.08.29-1
  Version table:
 *** 2013.08.29-1 0
        500 http://pl.archive.ubuntu.com/ubuntu/ saucy/universe amd64 Packages
        100 /var/lib/dpkg/status

type youtube-dl的输出是什么?以及apt-cache policy youtube-dl的输出是什么? - Braiam
我已将输出添加到问题中。应该都是标准的。 - Damn Terminal
11个回答

首先,卸载apt版本。
sudo apt-get remove youtube-dl

然后,使用pip安装youtube-dl。
sudo apt-get install python3-pip
pip3 install --user youtube-dl

要在之后更新它,对于Ubuntu 20.04+(Python 3是默认的Python),请尝试:

pip3 install --upgrade youtube-dl

如果您正在使用较旧版本的Ubuntu,或者特别想使用Python2,请尝试以下方法:
pip install --upgrade youtube-dl

注意:这假设您已经安装了pippip3。避免使用sudo pip3请改用virtualenv)。

使用pip是安装youtube-dl的一种方法,正如官方youtube-dl网站所述,--upgrade选项确保您安装的是最新版本。

要找出youtube-dl的安装位置,可以使用pip3 show youtube-dl命令(参见这里这里)。


如果未安装pip,您可以通过sudo apt install python-pip进行安装。 - Pandya
在Ubuntu 20.04上,运行pip3 install --upgrade youtube-dl来安装或升级youtube-dl。 - chovy
这让我有两个youtube-dl的实例。一个是通过apt-get安装的旧版本,另一个是通过pip安装的最新版本。但是当在命令行中输入youtube-dl时运行的是apt-get安装的旧版本。有什么解决办法吗? - inspirednz
1@inspirednz 如果在调用 youtube-dl 时仍然没有显示出来,请删除 apt-get 版本并重新安装 pip 版本。 - Archisman Panigrahi
如何启动 pip 版本的 yt dl?它位于 dist-packages 目录中,最简单的方法是使用 python -m youtube-dl 命令,并设置一个别名,例如 yt - Timo
使用sudo apt remove youtube-dl命令来删除旧的apt安装的二进制文件。然后,您可能需要将~/.local/bin添加到您的搜索路径中。 - JEPrice
关闭你的终端并重新启动它以使更改生效。 - andromeda
如何升级到Ubuntu 22.04的最新版本?即使在执行pip3 install --upgrade youtube-dl之后,youtube-dl --version仍然显示为2021.12.17 - Harry McKenzie

我按照官方主页的指示安装了youtube-dlhttps://ytdl-org.github.io/youtube-dl/download.html,因为通过sudo apt-get install安装的youtube-dl无法使用sudo youtube-dl -U命令。
要从源代码获取youtube-dl
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl

sudo chmod a+rx /usr/local/bin/youtube-dl

现在,sudo youtube-dl -U 已经可以正常运行,我目前看到的是:
$ youtube-dl --version
2021.12.17

在那里,你还可以找到使用wgetpip3Homebrew的替代方法。

1是的,最后我把他们网站上的二进制文件放到了~/bin目录下。它能正常运行,并且可能会自动更新(即使没有sudo/root权限),但我不能说这是一个令人满意的解决方案。 - Damn Terminal
当你不使用sudo时怎么办? - Anthony
@Anthony 如果你不能使用 sudo,你可以使用 pip3 或者 brew。我一直建议使用官方方式来安装和更新。 - Pablo Bianchi

尝试使用ppa:nilarimogard/webupd8。 我每隔几天都会进行升级,根据您收到的消息,我认为它应该解决/回答您的问题。 如果您从13.04升级到13.10,您可能忘记(我猜)更新sources-list.d文件夹,例如,如果您之前使用过WebUpd8。
sudo apt-add-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install youtube-dl

我也曾遇到youtube-dl的类似问题。

尝试以超级用户权限更新它可能会解决你的问题:

sudo youtube-dl -U

2我正在以root身份运行它。请注意#提示符。 - Damn Terminal
抱歉,我没有看出来。 - hytromo
这是方法 - capdragon
安装apt时无法工作。出现错误:youtube-dl: error: 在Debian上禁用了youtube-dl的自更新机制。 - synkro

尝试以下方法:
sudo apt-get install python-setuptools
sudo easy_install pip
sudo pip install --upgrade youtube-dl

如果你仍然遇到错误,那么请按照以下步骤操作:
wget -O - https://yt-dl.org/downloads/latest/youtube-dl | sudo tee /usr/local/bin/youtube-dl >/dev/null
sudo chmod a+x /usr/local/bin/youtube-dl

Ubuntu 14.04 及以上版本

youtube-dl 的 snap 包(youtube-dl)在目前支持的所有 Ubuntu 版本中会自动更新。要安装它,请打开终端并输入:

sudo snap install youtube-dl # 开始使用 snap run youtube-dl

使用 snap run youtube-dl --version 命令显示 youtube-dl snap 包的版本。

Gydl(图形化的 Youtube-dl)是一个围绕已有的 youtube-dl 程序的 GUI 封装。要在目前支持的所有 Ubuntu 版本中安装 Gydl,请打开终端并输入:

sudo snap install gydl

使用Gydl时,您可以选择将YouTube视频下载为视频音频

enter image description here


更新:使用yt-dlp代替youtube-dl!它是youtube-dl的一个分支,维护得更好,功能也更强大!
这些步骤也可以解决这个错误。
WARNING: unable to download video info webpage: HTTP Error 410: Gone

从我在这里的回答顶部开始:如何从youtube-dl中选择视频质量?

如何安装youtube-dl最新版本

请参考以下链接:

  1. https://github.com/ytdl-org/youtube-dl/#installation
  2. https://github.com/ytdl-org/youtube-dl/#how-do-i-update-youtube-dl

运行以下命令:

# 在Linux Ubuntu上:

# 1. 检查当前版本
youtube-dl --version

# 2. 如果需要,卸载当前版本
sudo apt remove -y youtube-dl

# 3. 现在,安装最新版本
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

# 4. 检查当前版本以确保已更新
youtube-dl --version

现在使用它来下载视频:
youtube-dl -f best 'https://youtu.be/FWGC9SqA3J0'

由于youtube-dl的自动更新已禁用,请尝试以下方法:
sudo apt upgrade youtube-dl

要获取最新版本youtube-dl,可以安装GetDeb 存储库。有关在Ubuntu 16.04 LTS中安装的详细信息,请参阅此处

要了解getdeb官方Ubuntu版本的youtube-dl之间的区别,请考虑此输出(截至2016年9月23日):

$ apt-cache policy youtube-dl
youtube-dl:
  Installed: 1:2016.09.19-1~getdeb1
  Candidate: 1:2016.09.19-1~getdeb1
  Version table:
 *** 1:2016.09.19-1~getdeb1 500
       500 http://archive.getdeb.net/ubuntu xenial-getdeb/apps amd64 Packages
       500 http://archive.getdeb.net/ubuntu xenial-getdeb/apps i386 Packages
       100 /var/lib/dpkg/status
     2016.02.22-1 500
       500 http://ubuntu.mirror.lrz.de/ubuntu xenial/universe amd64 Packages
       500 http://ubuntu.mirror.lrz.de/ubuntu xenial/universe i386 Packages

在上面的输出中,2016.09.19-1显示了getdeb版本,而2016.02.22-1则显示了官方Ubuntu版本。

我在Ubuntu 22.04上使用最新版本的youtube-dl下载YouTube视频时遇到了问题。我使用apt软件包管理器从Ubuntu存储库安装的youtube-dl版本是2021-12-17。这是最新的youtube-dl版本,并且已经更新到了Ubuntu存储库中。
为了解决这个问题,我安装了yt-dlp(一个youtube-dl的分支),使用以下命令:
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp  # Make executable

然而,当我运行时,出现了这个错误信息。
yt-dlp --version

它给了我。
/usr/bin/env: ‘python’: No such file or directory

为了解决这个问题,我不得不使用"whereis"命令找到python3,并创建一个符号链接。
sudo ln -s /usr/bin/python3 /usr/bin/python

在这样做之后,我能够再次使用yt-dlp无需任何问题地下载YouTube视频。 感谢youtube-dl和yt-dlp的开发人员。