Não é possível baixar vídeos usando o youtube-dl ('sig error'), como corrigir?

12

Eu costumava baixar vídeos usando a ferramenta de linha de comando youtube-dl, dos últimos dois dias sempre que eu tento fazer o download de um vídeo, recebo um erro, conforme mostrado abaixo.

$ 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'

o que está acontecendo?

    
por kernel_panic 08.03.2014 / 23:07

4 respostas

20

Tive exatamente o mesmo problema.

Atualizado youtube-dl via:

sudo youtube-dl -U

Execute o youtube-dl via sudo

sudo youtube-dl e informará que eles mudaram de distribuição e precisam atualizar. Pressione enter e você deve estar pronto para ir.

    
por Kristian Jensen 17.03.2014 / 22:05
1

Você precisa exportar suas configurações de proxy antes de poder usar youtube-dl para baixar vídeos do youtube. Para fazer isso, exporte as configurações de proxy usando:

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/

Substitua username, password, host e port_no por suas respectivas variáveis. Lembre-se de substituir quaisquer caracteres especiais, se houver, em seu nome de usuário ou senha com seus códigos HTML. Ignore o nome de usuário e a senha se você não tiver um e exporte-os como:

export HTTP_PROXY=http://host:port_no/

etc.

Por exemplo:

export HTTP_PROXY=http://123431212:[email protected]:3128/

Você também pode escrever isso no seu arquivo ~/.bashrc para evitar escrevê-los novamente para sessões futuras.

Tente novamente o download de vídeos depois de fazer isso.

    
por jobin 08.03.2014 / 23:29
1

Quando tentei atualizar com o sudo, conforme indicado na outra resposta:

sudo youtube-dl -U

Recebi uma mensagem dizendo que o youtube-dl tinha sido instalado usando um gerenciador de pacotes e eu deveria usar o mesmo para atualizá-lo. Mas eu já tinha feito

sudo easy_install -U youtube-dl

No final, apenas usando o sudo para executá-lo funcionou.

sudo youtube-dl
    
por sureshvv 31.03.2014 / 17:20
-1

Instale youtube-dl com sudo apt-get install youtube-dl da linha de comando e use:

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

Certifique-se de usar sudo antes do comando acima!

    
por dimid 05.05.2014 / 17:51