перестал работать youtube-dl

9

На моем 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

... но это не помогло.

sydbeat
источник
Вы удалили и переустановили пакет youtude-dl?
Авинаш Радж
Я сделал sudo apt-get --purge remove youtube-dlи sudo apt-get install youtube-dlдажеsudo youtube-dl --update
sydbeat
есть ли внутри .configкаталога каталог youtube-dl (который был в вашем домашнем каталоге)?
Авинаш Радж
нет, это не так
sydbeat
1
Это не по теме, 12.04 не является версией Ubuntu для разработчиков
MrVaykadji

Ответы:

11

Youtube обновляет свою антивирусную систему безопасности довольно обидно. Вы должны держать youtube-dlв курсе. Версия Ubuntu 12.04 Precis устанавливается по умолчанию 2012.02.27 (два года).

Вы можете подписаться на PPA WebUpd8, чтобы получать новые версии, когда они выходят (то есть один или два раза в неделю):

sudo add-apt-repository ppa:nilarimogard/webupd8 -y
sudo apt-get update
sudo apt-get dist-upgrade

Вы также найдете пакет .deb последней версии youtube-dl для этого PPA ( здесь и найдите youtube-dl). Установите его с помощью GUI-инструмента, такого как gdebiUbuntu Software Center или с помощью следующих командных строк:

cd directory/where/you/downloaded/the/package
dpkg -i youtube-dl*
sudo apt-get install -f
MrVaykadji
источник
Спасибо, я установил пакет .deb (2014.03.03), как вы сказали, и теперь он работает ! Спасибо!
sydbeat
2
Это не «неправильно», оно старое ^^ Так как они обновляют его почти каждую неделю, они не будут хранить каждый снимок в репо. По ссылке PPA вы найдете все новые версии .deb. Но спасибо за уведомление, я обновил ответ способом, который должен обходиться довольно долго (ссылка на «архивный» путь в PPA, чтобы вручную получить последнюю версию, если вы не хотите устанавливать PPA)
MrVaykadji
3

Apt-get версия youtube-dl действительно устарела. Если вы не хотите добавлять 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:

sudo apt-get install python-pip3
sudo pip3 install youtube-dl

Чтобы обновить версию pip, выполните следующую команду:

sudo pip3 install youtube-dl --upgrade
mchid
источник