Como baixar vídeos do YouTube pelo Terminal (linha de comando)

Seja por hábito ou por uma necessidade pontual, todo mundo já quis baixar um vídeo do YouTube.

Existem inúmeros sites estranhos infestados de anúncios que prometem executar o trabalho, e aplicativos limitados que só liberam todo o potencial mediante pagamento.

E existe a linha de comando, que nos dá aplicativos super capazes que não custam um centavo sequer. Nesta dica rápida, mostrarei como baixar vídeos usando apenas um comando.

Para esta receita, precisamos de dois ingredientes: yt-dlp e ffmpeg. Se você usa algum sabor Linux ou o macOS, é bem provável que o gerenciador de pacotes tenha os dois em seus repositórios. Baixe-os por lá. (Aqui, baixei via MacPorts.)

Depois disso, encerre e reabra o Terminal e digite esta sintaxe para fazer o download:

yt-dlp -f 'bv*+ba' 'https://www.youtube.com/watch?v=hxXaLKXkv4g'

Substitua a URL do YouTube pela do vídeo que você quiser. Se preferir, colocar apenas a ID do vídeo (no exemplo, hxXaLKXkv4g) também funciona.

Essa sintaxe baixará o vídeo na melhor qualidade possível. Legal, né? É possível incrementá-la para, por exemplo, limitar a resolução a 1080p e a taxa de quadros a 60 fps, o que é uma boa para acelerar o procedimento e economizar espaço caso não possa ou não queira desfrutar de resoluções altíssimas. Assim:

yt-dlp -f 'bv*[height<=1080][fps<=60]+ba' 'https://www.youtube.com/watch?v=hxXaLKXkv4g'

O yt-dlp oferece um punhado de flags/parâmetros para personalizar o download. Eles podem ser inseridos em um arquivo de configuração para serem sempre invocados, automaticamente, dispensando ter que digitá-los toda vez.

Caso não exista, crie um arquivo config (sem extensão) no seu diretório, em ~/.config/yt-dlp/. Depois, abra-o com um editor de textos simples, como o nano, e coloque os parâmetros que quiser. Um exemplo:

-P ~/Movies/YouTube/
--embed-thumbnail
--write-thumbnail
--convert-thumbnails jpg
--embed-metadata
--embed-info-json
--sub-langs en,pt-BR,pt
--write-subs
  • A primeira linha aponta um diretório específico para todos os vídeos baixados.
  • As três linhas seguintes baixam a imagem do vídeo, incorporada ao arquivo de vídeo e em um arquivo à parte, no formato jpg.
  • As seguintes baixam meta dados, úteis para que serviços como Jellyfin exibam corretamente informações dos vídeos.
  • As duas últimas baixam legendas (se disponíveis) nos idiomas inglês e português, e salvam-nas em arquivos à parte.

Lembre-se de fechar e abrir novamente o Terminal após fazer alterações para que elas surtam efeito.

Por fim, vamos criar um “alias”, ou um atalho, para aquele comando enorme lá do começo. Com isso, basta digitar yt 'hxXaLKXkv4g' para iniciar o download com os parâmetros desejados.

Para baixar os vídeos com aqueles limites de resolução e taxa de quadros, abra o seu .bashrc (ou .zshrc) e escreva isto:

alias yt="yt-dlp -f 'bv*[height<=1080][fps<=60]+ba'"

Novamente, encerre e abra novamente o Terminal antes de tentar o comando. Personalize o comando se quiser. O yt-dlp é muito flexível.

Use esta dica com responsabilidade!

Newsletter

O Manual no seu e-mail. Três edições por semana — terça, sexta e sábado. Grátis. Cancele quando quiser.

Deixe um comentário

É possível formatar o texto do comentário com HTML ou Markdown. Seu e-mail não será exposto. Antes de comentar, leia isto.

26 comentários

  1. Desculpa, mas executar de linha de comando, com parâmetros e opções quase incompreensíveis, para uma operação simples (ao menos usando outros programas e sites) tipo baixar vídeos é bem sintomático de quem usa Linux.

    Esse meme ilustra bem o que quero dizer: https://www.youtube.com/watch?v=sCZ7rQ9C9d4

    1. Hehehe, entendo a crítica. Eu usava um aplicativo antes e, sinceramente, não me parece muito mais simples que a solução acima — que me oferece maior controle e entrega vídeos mais “completos”, com legenda, informações embutidas no próprio arquivo etc.

      A configuração é, de fato, complexa, mas depois de feita, eu só digito yt 'url' no Terminal e dou Enter. É difícil imaginar um fluxo mais simples que esse.

  2. O yt-dlp por padrão baixa o vídeo com a melhor qualidade possivel

    Assim, se quiser e para facilitar as coisas, voce pode copiar o executavel dele para a pasta c:\windows e renomear esse executavel para algo mais curto, como “yt”. Estando o arquivo em c:\windows, voce pode executa-lo pelo prompt de comando a partir de qualquer diretorio e o video sera baixado para esse mesmo diretorio de onde o programa for invocado.

    Você pode ir até o diretorio “c:\temp” no prompt de comando, por exemplo, executar o comando “yt linkDoYoutube” e aguardar o download. O arquivo baixado estará na pasta “c:\temp” ao final.

    O executável do yt-dlp é “standalone”, não necessitando de outros arquivos para funcionar. Você pode ignorar a instalação do ffmpeg se não for precisar dele para modificar/converter os arquivos baixados

  3. Geralmente pra ver no celular uso o formato -f 18 pra baixar em mp4 bom o suficiente pro pequeno dispositivo.

    Uma opção bacana é o modo batch. Geralmente seleciono alguns links para downloads e crio um arquivo de texto com as urls uma por linha.

    Depois é so chamar no comando com o argumento -a e as linhas serão baixadas uma a uma.

    Junto com -cit para continuar em caso de interrupções.

    Outra opção que uso é a de baixar em video e converter para aúdio apenas.
    No alias eu chamo como audiotube-dl que era o nome do projeto antes do fork. Ai ele baixa, e converte via ffmpeg. Funciona bem no flow.

  4. Olha, não achei tão fácil de configurar. Vou dizer minhas dificuldades aqui para, se achar necessário, deixar o texto mais acessível.

    Instalei o yt-dlp e o ffmpeg através do comando ‘winget install’ no Terminal do Windows. Fácil e sem problemas;
    Essa parte do diretório e do arquivo config, com pasta .config achei meio confusa. Fiz aqui no SSD que uso para arquivos e não funcionou. Baixei um vídeo pra ver e não tinha como saber aonde ele salvou, só depois de pesquisar pelo título do vídeo que achei o tal diretório, que aqui foi no Disco Local C. Transferi a pasta .config com o arquivo do disco E para o disco C, e aí deu certo;
    A parte do alias ainda não consegui fazer pois não achei o .bashrc.

    Mas já está ótimo. Vou usar o TextBlaze para criar um atalho de teclado onde ele cola o código para download e já coloca o link que está salvo na minha área de transferência, assim como faço om o 12ft.

    1. Salve Alberth, olhando a documentação do yt-dlp tem a explicação de onde pode ficar o arquivo de configuração(link direto pra sessão da documentação sobre arquivo de configurações) para os diferentes sistemas operacionais suportados.

      A recomendação pra Windows é colocar na pasta APPDATA mas eu acho que pra maioria das pessoas chegar lá é um tanto confuso então a segunda melhor opção é um arquivo yt-dlp.conf.txt na raiz de seu usuário. Sem ponto no início e assim mesmo .conf.txt assim o arquivo será fácil de editar no bloco de notas bastando das dois cliques nele.

      A parte do alias, como já dito por (também por eheheh) Tiago, não funciona se vc não usa o shell Bash. No Windows vc pode usar o Prompt de Comando (CMD) ou Powershell.
      Achei essas documentações sobre como criar alias para o Powershell e como tornar os alias persistentes no Powershell.

      Mas assim, criar um alias só é importante se vc usa constantemente uma mesma configuração e quer poupar tempo não precisando digitar aquele tanto de coisa o tempo todo.
      O yt-dlp por padrão já baixa a melhor qualidade de áudio e vídeo disponível. Só se vc quiser especificar alguma coisa que vc precisa passar parâmetros.

  5. No Windows, o terminal do Windows 10 e 11 só pede para instalar o chocolatey, para então baixar pacotes como o yt-dlp.

    https://chocolatey.org/install

    Com direitos de administrador, rode este comando: Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

    e depois, choco install yt-dlp

    Seja feliz :)

    1. Também dá pra fazer a instalação com o Winget. Aqui só uso o Winget. Ficaria assim o comando:

      winget install yt-dlp.yt-dlp

  6. no android, uso o newpipe quando preciso baixar algum conteúdo.

    no linux, tenho utilizado o parabolic.

  7. No android, baixe e instale o
    Tubemate.net

    grátis, baixa video, converte de video pra audio, só mostra anuncios.

    Uso a mais de 5 anos.

    1. Também tenho o Seal no celular. Mas confesso que nunca usei.

      Faço downloads bem pontuais para usar no silviço e uso o savefrom.net

      Com uBlock e NextDNS não tenho nenhum problema com propagandas.

  8. Se quiser já extrair o áudio… uso o script que segue

    #!/bin/bash
    # No linux instalando yt-dlp usando Python
    #sudo python3 -m pip install -U yt-dlp
    if [ ! "$1" ]; then
    echo "I need the video URL, man."
    exit 0
    fi
    yt-dlp --extract-audio --audio-format mp3 --output "%(title)s.%(ext)s" $1

    1. Pra baixar somente o áudio seria mais simples e com melhor qualidade baixar o AAC direto, sem conversões:

      yt-dlp [URL] -f 40

      Pra ver todas as opções de áudio e vídeo, basta chamar:

      yt-dlp [URL] –F