Capa do post

Baixando vídeo do YouTube com Python

3/27/2022

Hoje com um pouquinho de atraso no horário, vim trazer um meio que tutorial de como baixar conteúdo do Youtube com Python.

Antes de tudo precisamos baixar o pytube com o pip

pip install pytube --upgrade

ou com Poetry

poetry add pytube

Neste exemplo estarei usando main como nome do arquivo onde vai nosso código

Vamos importar nossa classe pra baixar um único vídeo

from pytube import YouTube

Agora escolheremos um vídeo qualquer, neste exemplo vou pegar uma música do MHRap chamada Mundo Virtual

Instanciaremos nossa classe passando a url

yt = YouTube('https://youtube.com/watch?v=uCyVx1vYDz8')

Ok, agora para baixar o vídeo com a maior qualidade vamos fazer

yt.streams.get_highest_resolution().download()

Com esta linha de código vamos baixar o vídeo com a maior resolução no nosso diretório atual.

Para especificar um diretório que não seja o atual, bastar passar no formato string para o método download

yt.streams.get_highest_resolution().download('./test')

Teremos então uma árvore de diretórios parecida com essa

.
├── main.py
├── poetry.lock
├── pyproject.toml
└── test
    └── MUNDO VIRTUAL (Animes) ISEKAI  RapVibe  Prod Ihaksi  MHRAP.mp4

Ainda podemos também, filtrar o que queremos.

Por exemplo, se quisermos apenas áudio, podemos fazer

yt.streams.filter(only_audio=True)

Filtrar por extensão de arquivo também é tão simples quanto

yt.streams.filter(file_extension='mp4')

Também podemos usar várias queries para filtrar melhor.

Seguindo nosso exemplo, se quiséssemos baixar apenas o mp4 com maior resolução, apenas faríamos algo assim

yt.streams
    .filter(progressive=True, file_extension='mp4')
    .order_by('resolution')
    .desc()
    .first()
    .download()

E para baixar uma playlist, é quase a mesma coisa de tudo que já vimos até aqui

from pytube import Playlist, YouTube

pl = Playlist('A url da playlist aqui')

for video in pl:
    yt = YouTube(video)
    yt.streams.get_highest_resolution().download()

Entendido até aqui?

Ok pessoal, obrigado pela atenção e espero nos vermos novamente.

Leituras recomendadas

Onde me encontrar