在我的 12.04 LTS 上,我无法通过 youtube-dl 从 YouTube 下载。我以前可以这样做,但最近(一周)我无法这样做。我尝试了许多视频,但得到了相同的输出:
$ youtube-dl -t http://www.youtube.com/watch?v=Sh0ciyuXbJA
[youtube] Setting language
[youtube] Sh0ciyuXbJA: Downloading video webpage
[youtube] Sh0ciyuXbJA: Downloading video info webpage
[youtube] Sh0ciyuXbJA: Extracting video information
Traceback (most recent call last):
File "/usr/bin/youtube-dl", line 4645, in <module>
main()
File "/usr/bin/youtube-dl", line 4636, in main
_real_main()
File "/usr/bin/youtube-dl", line 4620, in _real_main
retcode = fd.download(all_urls)
File "/usr/bin/youtube-dl", line 869, in download
ie.extract(url)
File "/usr/bin/youtube-dl", line 1135, in extract
return self._real_extract(url)
File "/usr/bin/youtube-dl", line 1406, in _real_extract
url_map = dict((ud['itag'][0], ud['url'][0] + '&signature=' + ud['sig'][0]) for ud in url_data)
File "/usr/bin/youtube-dl", line 1406, in <genexpr>
url_map = dict((ud['itag'][0], ud['url'][0] + '&signature=' + ud['sig'][0]) for ud in url_data)
KeyError: 'sig'
似乎是一些签名问题。我仍然可以通过 vlc 下载视频。但我喜欢 youtube-dl - 它更快。我已经这样做了:
sudo apt-get --purge remove youtube-dl
sudo apt-get install youtube-dl
sudo youtube-dl --update
...但是没有帮助。
答案1
Youtube 经常更新其反下载安全系统。您应该保持更新youtube-dl
。Ubuntu 12.04 Precis 默认安装的版本是 2012.02.27(两年前)。
您可以订阅WebUpd8 PPA在新版本发布时获取它们(每周一次或两次):
sudo add-apt-repository ppa:nilarimogard/webupd8 -y
sudo apt-get update
sudo apt-get dist-upgrade
您还可以在该 PPA 上找到最新 youtube-dl 版本的 .deb 包(这里并搜索 youtube-dl)。使用 GUI 工具(如gdebi
Ubuntu 软件中心)或以下命令行进行安装:
cd directory/where/you/downloaded/the/package
dpkg -i youtube-dl*
sudo apt-get install -f
答案2
youtube-dl 的 apt-get 版本确实过时了。如果您不想添加 ppa,可以使用 git 安装。
首先,删除过时的版本:
sudo apt-get purge youtube-dl
接下来运行以下命令进行安装:
git clone https://github.com/rg3/youtube-dl.git
cd youtube-dl
make
sudo make install
现在,要将 youtube-dl 更新到最新版本,只需运行以下命令:
sudo youtube-dl -U
或者,你可以从 pypi python 存储库安装新版本:
sudo apt-get install python-pip3
sudo pip3 install youtube-dl
要更新 pip 版本,请运行以下命令:
sudo pip3 install youtube-dl --upgrade