Baixando Vídeos do YouTube com Python e a Biblioteca pytube

YouTube é a maior plataforma de vídeos do mundo, e muitas vezes surge a necessidade de baixar vídeos para uso offline, estudos ou até para criar um acervo pessoal. Felizmente, com Python, conseguimos fazer isso de maneira simples e eficiente usando a biblioteca pytube.

Neste artigo você vai aprender:

  • O que é o pytube e como instalá-lo.

  • Como baixar vídeos em diferentes formatos e qualidades.

  • Como extrair apenas o áudio de um vídeo.

  • Como automatizar o processo para playlists inteiras.

  • Boas práticas e cuidados ao utilizar o recurso.


🔹 1. O que é o pytube?

pytube é uma biblioteca Python que permite interagir com vídeos do YouTube de forma programática.
Com ela, podemos:

  • Baixar vídeos em diferentes resoluções.

  • Extrair apenas o áudio.

  • Baixar legendas.

  • Trabalhar com playlists completas.


🔹 2. Instalando o pytube

A instalação é bem simples, basta usar o pip:

pip install pytube

Caso esteja usando Jupyter Notebook ou Google Colab, basta rodar:

!pip install pytube

🔹 3. Baixando um vídeo simples

O exemplo mais básico é baixar um vídeo em qualidade padrão.

from pytube import YouTube

# Link do vídeo
url = "https://www.youtube.com/watch?v=example"

# Criando objeto YouTube
yt = YouTube(url)

# Baixando em qualidade padrão (primeiro stream disponível)
stream = yt.streams.get_highest_resolution()
stream.download()

print("✅ Vídeo baixado com sucesso!")

🔎 Explicando:

  • YouTube(url) cria um objeto representando o vídeo.

  • streams contém todas as opções de qualidade e formatos disponíveis.

  • get_highest_resolution() escolhe a melhor qualidade.

  • download() baixa o arquivo para a pasta atual.


🔹 4. Escolhendo qualidade e formato

Nem sempre queremos a maior qualidade, pois arquivos em 1080p ou 4K são maiores. Podemos selecionar manualmente:

# Baixar em 720p
yt.streams.filter(res="720p", file_extension="mp4").first().download()

# Baixar apenas áudio
yt.streams.filter(only_audio=True).first().download()

💡 O parâmetro filter() permite escolher por:

  • res → resolução (144p360p720p1080p, etc.).

  • file_extension → tipo de arquivo (mp4webm).

  • only_audio=True → apenas áudio.


🔹 5. Definindo pasta de destino

Por padrão, os vídeos são baixados na pasta onde o script está rodando.
Podemos mudar isso passando um diretório no download():

# Salvar em uma pasta específica
stream.download(output_path="C:/MeusVideos")

🔹 6. Baixando apenas o áudio (MP3)

Se a ideia é criar uma playlist de músicas, podemos extrair apenas o áudio:

audio_stream = yt.streams.filter(only_audio=True).first()
caminho = audio_stream.download(output_path="C:/MeusAudios")

# Renomeando para .mp3
import os
base, ext = os.path.splitext(caminho)
novo_arquivo = base + ".mp3"
os.rename(caminho, novo_arquivo)

print("🎵 Áudio salvo como MP3!")

🔹 7. Baixando uma playlist completa

Se você quiser baixar vários vídeos de uma só vez (exemplo: um curso inteiro do YouTube), pode usar Playlist:

from pytube import Playlist

url_playlist = "https://www.youtube.com/playlist?list=example"

playlist = Playlist(url_playlist)

print(f"📂 Baixando {len(playlist.video_urls)} vídeos da playlist...")

for video_url in playlist.video_urls:
    yt = YouTube(video_url)
    yt.streams.get_highest_resolution().download(output_path="C:/CursoYouTube")

print("✅ Playlist baixada com sucesso!")

🔹 8. Tratando erros (boas práticas)

Nem sempre os downloads funcionam de primeira — vídeos podem estar bloqueados, privados ou com restrições.
Podemos usar try/except para evitar falhas:

for video_url in playlist.video_urls:
    try:
        yt = YouTube(video_url)
        yt.streams.get_highest_resolution().download(output_path="C:/CursoYouTube")
        print(f"✔ Baixado: {yt.title}")
    except Exception as e:
        print(f"❌ Erro ao baixar {video_url}: {e}")

🔹 9. Projeto prático: Downloader interativo

Podemos transformar esse código em um programa interativo que pergunta o link e o tipo de download:

from pytube import YouTube

url = input("Digite a URL do vídeo do YouTube: ")
yt = YouTube(url)

print("Título:", yt.title)
print("Escolha uma opção:")
print("1 - Baixar vídeo em alta resolução")
print("2 - Baixar apenas áudio (MP3)")

opcao = input("Opção: ")

if opcao == "1":
    yt.streams.get_highest_resolution().download()
    print("✅ Vídeo baixado com sucesso!")
elif opcao == "2":
    audio_stream = yt.streams.filter(only_audio=True).first()
    caminho = audio_stream.download()
    import os
    base, ext = os.path.splitext(caminho)
    os.rename(caminho, base + ".mp3")
    print("🎵 Áudio salvo como MP3!")
else:
    print("❌ Opção inválida")

🔹 10. Cuidados legais e boas práticas

⚠️ Antes de sair baixando vídeos, é importante lembrar:

  • O YouTube não permite o download de conteúdo sem autorização do criador.

  • Use esse recurso apenas para fins educacionais, pessoais ou com vídeos de uso livre.

  • Nunca redistribua ou comercialize vídeos baixados sem direitos autorais.


🔹 11. Conclusão

Com o pytube e poucas linhas de código, conseguimos:
✅ Baixar vídeos em diferentes qualidades.
✅ Extrair apenas o áudio em MP3.
✅ Baixar playlists completas automaticamente.
✅ Criar um downloader interativo em Python.

Isso mostra como Python é poderoso para automação e manipulação de mídia.

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Manipulação de Arquivos no C#: Como Ler, Escrever e Trabalhar com Arquivos de Forma Simples

Laços de Repetição em Python: Conceitos e Exemplos Práticos