Невозможно загрузить видео с помощью youtube-dl ('sig error'), как исправить?

Я использовал для загрузки видео с помощью инструмента командной строки youtube-dl, последние два дня, когда я пытаюсь загрузить любое видео, я получаю сообщение об ошибке, как показано ниже.

$ youtube-dl https://www.youtube.com/watch?v=bFew8mgQJ9o
[youtube] Setting language
[youtube] bFew8mgQJ9o: Downloading video webpage
[youtube] bFew8mgQJ9o: Downloading video info webpage
[youtube] bFew8mgQJ9o: 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'

что происходит?

12
задан 8 July 2014 в 14:07

4 ответа

Имел точно ту же проблему.

Обновленный youtube-dl через:

sudo youtube-dl -U

youtube-dl Выполнения через sudo

sudo youtube-dl и это сообщит, что они изменили распределение и потребность обновить. Нажмите Enter, и необходимо быть хорошими для движения.

0
ответ дан 8 July 2014 в 14:07

Необходимо экспортировать настройки прокси, прежде чем можно будет использовать youtube-dl загружать видео с YouTube. Чтобы сделать это, экспортируйте использование настроек прокси:

export http_proxy=http://username:password@host:port_no/
export https_proxy=https://username:password@host:port_no/
export HTTP_PROXY=http://username:password@host:port_no/
export HTTPS_PROXY=https://username:password@host:port_no/

Замените имя пользователя, пароль, хост и port_no с Вашими соответствующими переменными. Не забудьте заменять любые специальные символы, если таковые имеются, в Вашем имени пользователя или пароле с их HTML-кодами. Проигнорируйте имя пользователя и пароль, если Вы не имеете один и экспортируете их как:

export HTTP_PROXY=http://host:port_no/

и т.д.

Поскольку исключая:

export HTTP_PROXY=http://123431212:mypassword@192.168.1.2:3128/

Можно также записать это в Ваш ~/.bashrc файл, чтобы не писать им снова и снова для будущих сессий.

Повторите видео загрузки после выполнения этого.

1
ответ дан 8 July 2014 в 14:07

Когда я пытался обновить с sudo, как обозначено в другом ответе:

sudo youtube-dl -U

я получил сообщение, говоря, что youtube-dl был установлен с помощью диспетчера пакетов, и я должен использовать то же для обновления его. Но я уже сделал

sudo easy_install -U youtube-dl

В конце, просто использование sudo для выполнения его работало.

sudo youtube-dl
0
ответ дан 8 July 2014 в 14:07

Установка youtube-dl с sudo apt-get install youtube-dl от командной строки, затем используйте:

sudo youtube-dl "https://www.youtube.com/watch?v=bFew8mgQJ9o"

Удостоверяются, который Вы используете sudo перед вышеупомянутой командой!

0
ответ дан 8 July 2014 в 14:07

Другие вопросы по тегам:

Похожие вопросы: