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.