Não foi 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, nos últimos dois dias, sempre que tento baixar qualquer vídeo, recebo um erro, como 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?

kernel_panic
fonte
Você está atrás de um proxy?
Jobin
Sim, um que pertence à instituição onde estou estudando e acesso à Internet.
Kernel_panic
A resposta foi útil?
Jobin
2
possível duplicata do youtube-dl parou de funcionar
Andrea Corbellini

Respostas:

20

Tinha 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 a distribuição e precisam atualizar. Pressione enter e você deve estar pronto.

Kristian Jensen
fonte
1

Você precisa exportar suas configurações de proxy antes de poder usar youtube-dlpara 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 nome de usuário, senha, host e port_no pelas suas respectivas variáveis. Lembre-se de substituir qualquer caractere especial, se houver, no seu nome de usuário ou senha pelos 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:mypassword@192.168.1.2:3128/

Você também pode escrever isso em seu ~/.bashrcarquivo para evitar gravá- los repetidamente para sessões futuras.

Tente baixar novamente os vídeos depois de fazer isso.

jobin
fonte
1

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

sudo youtube-dl -U

Recebi uma mensagem dizendo que o youtube-dl havia 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
sureshvv
fonte
-1

Instale youtube-dlcom a sudo apt-get install youtube-dlpartir da linha de comando e use:

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

Certifique-se de usar sudoantes do comando acima!

escuro
fonte