Trabalhando com YouTube: Download de Vídeos e Legendas usando Python
A biblioteca yt-dlp
Antes de começar, instale a biblioteca pytube usando o gerenciador de pacotes pip
pip install yt-dlp
Download de Vídeos
Aqui está um exemplo básico de como baixar um vídeo na melhor qualidade disponível:
import yt_dlp
url = "https://www.youtube.com/watch?v=J0Aq44Pze-w"
ydl_opts = {
'format': 'best',
'outtmpl': 'video.%(ext)s',
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
Isso baixará o vídeo com o melhor formato disponível e salvará no arquivo video.mp4
Download de Áudio
Para baixar apenas o áudio do vídeo, você pode usar o seguinte código:
import yt_dlp
url = "https://www.youtube.com/watch?v=J0Aq44Pze-w"
ydl_opts = {
'format': 'bestaudio', # Baixa apenas o melhor áudio
'outtmpl': 'audio.%(ext)s', # Nome do arquivo de saída
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
Isso baixará o áudio do vídeo com a melhor qualidade disponível e salvará no arquivo audio.webm
Download de Playlists
O yt-dlp
import yt_dlp
playlist_url = "https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6"
ydl_opts = {
'format': 'best',
'outtmpl': 'playlist/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s', # Organiza os arquivos por pastas
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([playlist_url])
Os vídeos serão salvos em uma pasta com o nome da playlist, e cada arquivo será numerado de acordo com sua ordem na lista.
Download de Legendas
O yt-dlp
import yt_dlp
url = "https://www.youtube.com/watch?v=J0Aq44Pze-w"
ydl_opts = {
'format': 'best',
'subtitleslangs': ['en', 'pt-BR'], # Idiomas das legendas
'writeautomaticsub': True, # Inclui legendas automáticas
'outtmpl': 'video_with_subtitles.%(ext)s',
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
Isso salvará o vídeo junto com as legendas disponíveis. As legendas automáticas são ativadas pelo parâmetro writeautomaticsub
Para salvar apenas as legendas, sem o vídeo:
ydl_opts = {
'skip_download': True, # Não baixa o vídeo
'subtitleslangs': ['en'],
'writeautomaticsub': True, # Baixa legendas automáticas
'outtmpl': 'subtitles.%(ext)s',
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
As legendas serão salvas em um arquivo separado.
Listando Formatos Disponíveis
Antes de baixar, você pode listar todos os formatos disponíveis para um vídeo:
import yt_dlp
url = "https://www.youtube.com/watch?v=J0Aq44Pze-w"
ydl_opts = {
'listformats': True, # Lista formatos sem baixar
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.extract_info(url, download=False)
Isso exibirá todos os formatos disponíveis (como resoluções e codecs) para que você escolha o mais adequado.