Baixar videos

youtube-dl

Posted by rbits on Tuesday, July 6, 2021

TOC

Histórico

A melhor solução para baixar videos que funciona em diversas plataformas é o aplicativo de software livre youtube-dl. Ele é um programa de software com muitos recursos que permite automatizar o processo de downloading. Ele pode ser executado em Windows, Linux, MacOS com os mesmos comandos.

Voce pode, também a qualquer momento, criar uma cópia de qualquer aplicação ou video que esteja sendo executada no seu computador. Para isso, existe o aplicativo OBS Studio que também é um produto de software livre e conhecido no mercado. Diferentemente do youtube-dl, voce tem que assistir completamente o video, pois o aplicativo OBS Studio captura todos os frames de uma janela (como por exemplo,uma tab do navegador). É uma alternativa que será descrita em outro post.

A informação desse artigo é um resumo do site do desenvolvedor do youtube-dl e minhas experiëncias com o aplicativo. A maioria dos sites de treinamento, por exemplo, usam videos armazenados no YouTube ou Vimeo. Estou usando exemplo com links do Vimeo pois é mais dificil obter a URL ou link do video, pois diferemente dos videos do YouTube, normalmente fica escondido dentro do código da pagina do site onde o video está publicado. A ferramenta de desenvolvimento inclusa no Chrome, ajuda a resolver esse problema. Essa opção disponibilizada no menu do Chrome ajuda a resolver esse problema. Segue uma orientação nesse artigo. A intenção desse artigo é somente entender ter uma alternativa para uso de video em lugares sem acesso a Internet. Todos os links ou endereços são fakes mas os parametros para o aplicativo youtube-dl estão corretos.

O primeiro passo é ter certeza que voce está com a ultima versão do produto:

youtube-dl -U

O próximo passo é saber qual a resolução disponivel para baixar. Você decide que é a resolução adequada para seu uso, quanto maior a resolução, maior a qualidade e tamanho do arquivo de video e maior o tempo para baixar o arquivo.

Para mostrar todas as resoluções disponibilizadas use o comando -F (maiusculo) seguida de -v (lista detalhada ou verbose em inglês):

youtube-dl -v -F https://player.vimeo.com/video/404670444

Se voce não especificar nada sobre o resolução, o aplicativo baixará o melhor. Eu sugiro a resolução de 720 pontos (pixels) pois em videos com gráficos faz uma grande diferença, sem ficar demasiadamente grande se comparado com a resolução HD de 1080 pontos. Observe nessa lista com o parametro -F que existem muitas opções de video sem audio que é usado para outra finalidade.

Ponto importante, -F (maiuscula) é um parametro de listar as resoluções disponiveis. Já o parametro -f (minusculo) é usado para definir uma resoluçã especifica.

As resoluções principais de videos do Vimeo sugeridas são:

  • http-720 (1280x720)

  • http-540p (960x540)

  • http-360p (640x360)

Para videos armazenados no YouTube a especificação das mesmas resoluções são outras:

  • 22 (1280x720)

  • 18 (640x360)

De uma forma generica aqui estao dois exemplos de download de video armazenados no YouTube ou Vimeo:

youtube-dl -v -f http-720p https://player.vimeo.com/video/404670444

youtube-dl -v -f 22 https://youtu.be/m-aPKv39cDI

Para videos no YouTube a diferença de comando entre o video do Vimeo e Youtube seria somente a especificação da resolução.

Para download dos videos armazenados no site Vimeo o comando a seguir seria o suficiente:

youtube-dl -v -f http-720p https://player.vimeo.com/video/404670444

Para download dos videos no YouTube só muda o parametro referente a resolução:

youtube-dl -v -f http-720p https://youtube.com/404670444

Quando ocorre essa mensagem de erro: Cannot download embed-only video without embedding URL. Please call youtube-dl with the URL of the page that embeds this video.

Adicione o comando –referer com a url do site da empresa que armazenou o video na nuvem do Vimeo, como segue:

youtube-dl -f http-720p https://player.vimeo.com/video/404670444 –referer “https://videoaula.com/"

Para maiores detalhes, acesse o site https://github.com/ytdl-org/youtube-dl/issues/15549(dica do Chrome) ou https://github.com/ytdl-org/youtube-dl/issues/3582 omo saber qual é o parametro –referer que é o X da questão, usar os recursos do Chrome, menu More Tools/DevTools:

  • Apertar a tecla F12 e a aba DevTools aparece com o site aberto no Chrome.

  • Selecionar o Network Panel dentro do DevTools.

  • Recarregar a página apertando a tecla F5 e agora voce ver as requisições de comunicação.

  • Filtrar as requisições de rede pelo tipo config na interface de pesquisa.

  • Abrir o conteudo da requisição selecionada(Abrir uma nova Aba)

  • Procurar a string m3u8 que deve conter o link que deve ser adicionado ao parametro –referer.

Baixar os arquivos automaticamente criar um arquivo texto, por exemplo, meusvideos.txt e adicionar os links ou endereços no format VIMEO que voce quer baixar no formato:

https://player.vimeo.com/video/404670444

https://player.vimeo.com/video/404670455

Depois é só executar esse comando para automaticamente baixar no diretório corrente todos os videos que estão na lista do arquivo meusvideos.txt:

youtube-dl -ci -t “%(title)s-%(id)s.%(ext)s” -f http-720p -a ./meusvideos.txt –referer “https://videoaula.com/curso/violao"

Por fim, baixo todos os vídeos da lista com um comando:

  • -c - Continua o download de onde parou, caso a internet tenha caído

  • -i - Ignora os erros caso tenha vídeos indisponíveis em uma playlist

  • -t - Usa o título do nome do vídeo

Ponto de atenção, voce não precisa da url completa para o parametro –referer, pois muitos terão dificuldade de usar e entender a ferramenta do Chrome. A simples inclusão do dominio ou o nome principal do site, já é suficiente, como segue no exemplo abaixo:

youtube-dl -v “https://player.vimeo.com/video/166756544" –referer “https://videoaula.com/"

Note Para detalhamento da comunicação com o servidor adicione o parametro -v (verbose)

Outro ponto importante é limpar o cache regularmente:

youtube-dl –rm-cache-dir Removing cache dir /root/.cache/youtube-dl …

Documentos

Perguntas Mais Frequentes

  • Qual a vantagem de usar essa solução se existem soluções online como o site http://savevideo.me/? Flexibilidade e automação, além de você não expor seus videos a terceiros. Soluções com complementos ou plugin no Chrome são mais inseguras e não garante o serviço.