На моем 12.04 LTS я не могу скачать с YouTube через youtube-dl. Раньше я это делал, но недавно (в течение недели) я не умею. Я пробовал много видео, и я получаю тот же вывод:
$ 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
... но это не помогло.
версия youtube-dt 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