ERRO: Não é possível extrair a seção de informações ao baixar vídeos do YouTube com o youtube-dl

1

IMHO Eu não acho que essa questão seja uma duplicata de aquela pelas seguintes razões:

  1. Vamos começar considerando os títulos: Como posso atualizar o youtube-dl? , claramente se concentra em um único procedimento de aplicativo / atualização, em vez de um relatório de falha de download não focado em apenas um aplicação.
  2. Tags: essa pergunta: vídeo, downloads, youtube . O outro: apt, updates, youtube . Eles só têm a tag youtube em comum.
  3. As duas perguntas têm tópicos sobrepostos, mas não são questões idênticas porque o tópico da outra pergunta é um subconjunto do tópico desta.

Agora vamos ver mais argumentos (entre parênteses):

Estou tentando baixar alguns vídeos do YouTube primeiro pelo Firefox + Video DownloadHelper, depois pelo VLC e finalmente pelo programa youtube-dl e há algo que está bloqueando-os.

( O outro: " eu uso o youtube-dl para baixar vídeos para assistir mais tarde off-line ", mais uma vez, essa questão se concentra no bloqueio de downloads no YouTube, independentemente do aplicativo e do outro uma única aplicação (youtube-dl) )

Nas telas de descrição, não vejo restrição quanto ao download.

( Isto não é mencionado na outra questão. )

Um exemplo: estou tentando baixar dois vídeos com a mesma categoria / licença, o primeiro funciona bem e o segundo retorna uma exceção:

luis@jupiter:~$ youtube-dl "https://www.youtube.com/watch?v=wo6Sq1h2DI4"
[youtube] wo6Sq1h2DI4: Downloading webpage
[youtube] wo6Sq1h2DI4: Downloading video info webpage
[youtube] wo6Sq1h2DI4: Extracting video information
[youtube] wo6Sq1h2DI4: Downloading MPD manifest
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
[download] Destination: SÂNSCRITO - Aula 6 (Consoantes Mudas Dentais) com Jonas Masetti-wo6Sq1h2DI4.f137.mp4
[download] 100% of 142.54MiB in 04:11
[download] Destination: SÂNSCRITO - Aula 6 (Consoantes Mudas Dentais) com Jonas Masetti-wo6Sq1h2DI4.f251.webm
[download] 100% of 8.75MiB in 00:16
[ffmpeg] Merging formats into "SÂNSCRITO - Aula 6 (Consoantes Mudas Dentais) com Jonas Masetti-wo6Sq1h2DI4.mkv"
Deleting original file SÂNSCRITO - Aula 6 (Consoantes Mudas Dentais) com Jonas Masetti-wo6Sq1h2DI4.f137.mp4 (pass -k to keep)
Deleting original file SÂNSCRITO - Aula 6 (Consoantes Mudas Dentais) com Jonas Masetti-wo6Sq1h2DI4.f251.webm (pass -k to keep)
luis@jupiter:~$ youtube-dl "https://www.youtube.com/watch?v=BbbhZl8xqVY"
[youtube] BbbhZl8xqVY: Downloading webpage
[youtube] BbbhZl8xqVY: Downloading video info webpage
[youtube] BbbhZl8xqVY: Extracting video information
[youtube] BbbhZl8xqVY: Downloading js player en_US-vflHuW2fm
ERROR: Signature extraction failed: Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 905, in _decrypt_signature
    video_id, player_url, s
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 820, in _extract_signature_function
    res = self._parse_sig_js(code)
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 883, in _parse_sig_js
    initial_function = jsi.extract_function(funcname)
  File "/usr/lib/python2.7/dist-packages/youtube_dl/jsinterp.py", line 241, in extract_function
    raise ExtractorError('Could not find JS function %r' % funcname)
ExtractorError: Could not find JS function u'Ny'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
 (caused by ExtractorError(u"Could not find JS function u'Ny'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

É uma restrição do YouTube, um problema de codificação de vídeo ou um problema de assinatura do Ubuntu? Se esta é uma restrição do YouTube, isso é uma restrição para todos os vídeos do YouTube ou a restrição opera seletivamente, por exemplo, para vídeos enviados recentemente, mas não para vídeos que foram enviados anos atrás?

A saída da outra questão:

  

ERROR: Unable to extract info section; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type youtube-dl -U to update.

( A saída é um pouco diferente, não é? )

Finalmente, há mais duas questões a serem consideradas :

  • Embora a atualização do youtube-dl tenha me ajudado a resolver o meu problema, ele não respondeu a este item da minha pergunta: Estou tentando baixar dois vídeos com a mesma categoria / licença, o primeiro funciona bem e o segundo retorna uma exceção.
  • A outra pergunta foi escrita em 2013 e acredito que, desde então, algumas coisas mudaram no modo como o serviço do YouTube e os aplicativos o acessam .
por gwarah 07.08.2016 / 21:08

2 respostas

4

O primeiro vídeo foi baixado com sucesso com uma versão atualizada do youtube-dl que eu instalei com python-pip usando python pip install youtube-dl dentro de um ambiente virtual Python ( python-virtualenv ). Para obter informações sobre como configurar e usar um ambiente virtual Python, consulte Como configurar e usar um ambiente virtual python no Ubuntu? .

O comando que eu usei para mostrar os formatos de vídeo disponíveis era:

youtube-dl -F "https://www.youtube.com/watch?v=wo6Sq1h2DI4"

O comando que eu usei para baixar o primeiro vídeo do YouTube foi:

youtube-dl -f 18 "https://www.youtube.com/watch?v=wo6Sq1h2DI4"

O segundo vídeo não pôde ser baixado usando o youtube-dl, mas eu não desisti. Eu atualizei meu youtube-dl para a versão mais recente executando:

pip install --upgrade youtube-dl  # inside the Python virtual environment

Eu não precisei usar sudo porque meu ambiente virtual Python foi instalado dentro do meu próprio diretório de usuários ( ~/my-Python-virtual-env ). Depois de atualizar o youtube-dl, executei este comando para baixar o segundo vídeo do YouTube:

youtube-dl -f 18 "https://www.youtube.com/watch?v=BbbhZl8xqVY"
  

Por que não usar simplesmente sudo pip install --upgrade youtube-dl ?

Uma das razões pelas quais eu uso o Ubuntu é escapar da loucura da maneira como o Windows instala aplicativos. Eu instalo pacotes dos repositórios padrão do Ubuntu sempre que possível. Neste caso eu sei que o youtube-dl é um programa em Python, então eu posso instalar localmente a última versão do youtube-dl em um ambiente virtual Python sem bagunçar meu sistema de arquivos.

Outra alternativa é instalar o pacote snap do youtube-dl:

sudo snap install youtube-dl-casept
  

Acredito que, desde já, algumas coisas mudaram na maneira como os serviços e aplicativos do YouTube o acessam.

Verdadeiro. O Google vem mudando a maneira de acessar vídeos do YouTube com mais frequência agora do que há três anos, então, para manter o youtube-dl atualizado, ele precisa ser atualizado com mais frequência também. Tenho observado ao longo dos anos que os vídeos do YouTube parecem estar bloqueados, principalmente relacionados à data em que foram enviados.

Antes de começar a usar o youtube-dl, usei uma extensão do Firefox chamada Video DownloadHelper para baixar vídeos do YouTube. Eu passei a preferir o youtube-dl porque ele tem a maior probabilidade de pegar vídeos do YouTube com sucesso de qualquer downloader que eu já usei.

    
por karel 09.08.2016 / 18:52
2

A capacidade de baixar vídeos do YouTube é uma batalha constante, pois a empresa procura limitar o acesso ao site aos métodos que preferir. Dos Termos de Serviço do YouTube:

  

Você concorda em não acessar o Conteúdo por meio de qualquer tecnologia ou outro meio   que as páginas de reprodução de vídeo do próprio Serviço, o Embeddable   Player ou outro explicitamente autorizado significa que o YouTube pode designar.

Os criadores de youtube-dl tentam constantemente corresponder às alterações feitas pelo YouTube, que visam direcionar o usuário de volta ao seu método de acesso preferido. É com isso que você se depara com seu próprio download.

A versão do repositório de youtube-dl é uma versão antiga 2016.02.22 e as linhas de batalha há muito tempo foram movidas a partir daí com o relatório de versão mais recente :

andrew@ilium~$ youtube-dl --version
2016.08.10

O método recomendado para atualizar youtube-dl é proveniente da youtube-dl página de download , modificada ligeiramente para remover a versão do repositório do Ubuntu:

sudo apt-get remove youtube-dl
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

Nesta mesma página de download, você verá instruções para a atualização com curl e pip, use o que preferir, pois o resultado final é o mesmo. Importante para remover a versão do repositório, você só precisa de um executável youtube-dl .

Observação: Ao testar minha própria atualização do sistema dessa maneira, resolvi o problema de forma completa e baixei com êxito ambos os vídeos.

Se você está curioso, veja aqui a batalha é realizado extraindo o endereço da página do YouTube (esta página mostrando a origem do seu erro) e ver os esforços necessários para fornecer uma correspondência decente para o download bem-sucedido.

Referências:

por andrew.46 10.08.2016 / 22:13