Como Baixar e Extrair Dados de Vídeos com Python
Se você já se perguntou como baixar um vídeo da internet e extrair informações úteis, como transcrições de áudio, este artigo é para você! Aqui, vou mostrar como usar Python para realizar essas tarefas de forma prática e eficiente, utilizando bibliotecas modernas como yt-dlp
para download de vídeos e o modelo Whisper para transcrição de áudio.
Objetivos
- Baixar vídeos da internet usando um link.
- Extrair o áudio de um vídeo.
- Gerar transcrições automáticas do áudio usando Inteligência Artificial.
- Medir o tempo gasto em cada etapa.
Ferramentas Necessárias
Vamos utilizar as seguintes bibliotecas Python:
yt-dlp
: Uma poderosa ferramenta para baixar vídeos de diversas plataformas.ffmpeg
: Para processar e extrair áudio de vídeos.whisper
: Modelo de transcrição de áudio desenvolvido pela OpenAI.IPython
: Para exibir vídeos e áudios diretamente no notebook.
Para instalar as dependências, execute:
pip install yt-dlp openai-whisper
sudo apt update && sudo apt install -y ffmpeg
Código Passo a Passo
1. Configurando o Modelo Whisper
O modelo Whisper será utilizado para transcrever o áudio extraído dos vídeos.
import whisper
# Carregar o modelo Whisper
whisper_model = whisper.load_model("base")
2. Função para Baixar o Vídeo
Usamos a biblioteca yt-dlp
para baixar vídeos diretamente de um link.
import yt_dlp
import tempfile
import os
def download_video_from_url(url):
temp_dir = tempfile.gettempdir()
ydl_opts = {
'outtmpl': os.path.join(temp_dir, '%(title)s.%(ext)s'), # Salvar no diretório temporário
'format': 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4', # Melhor qualidade disponível
'quiet': True
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(url, download=True)
file_path = ydl.prepare_filename(info)
return file_path
3. Extraindo o Áudio do Vídeo
Com o ffmpeg
, convertemos o vídeo em um arquivo de áudio.
import subprocess
def extract_audio(video_path):
audio_path = video_path.replace(".mp4", ".mp3")
command = f"ffmpeg -i '{video_path}' -ar 16000 -ac 1 -q:a 0 -map a '{audio_path}' -y"
subprocess.run(command, shell=True, check=True)
return audio_path
4. Transcrevendo o Áudio
A função abaixo utiliza o Whisper para transcrever o áudio extraído.
def transcribe_audio(video_path):
print(f"Extraindo áudio do vídeo: {video_path}")
audio_path = extract_audio(video_path)
print(f"Áudio extraído: {audio_path}")
print("Transcrevendo áudio...")
result = whisper_model.transcribe(audio_path, language="pt") # Força o idioma português
print("Transcrição concluída.")
return result['text']
5. Colocando Tudo Junto
A função principal realiza todas as etapas em sequência, exibindo o tempo gasto em cada uma.
import time
from IPython.display import display, Video
def process_video_from_url(url):
print(f"Baixando vídeo do link: {url}")
overall_start_time = time.time()
# Download do vídeo
start_time = time.time()
video_path = download_video_from_url(url)
print(f"Tempo para baixar o vídeo: {time.time() - start_time:.2f} segundos")
# Transcrição do áudio
start_time = time.time()
transcription = transcribe_audio(video_path)
print(f"Tempo para transcrever o áudio: {time.time() - start_time:.2f} segundos")
# Exibir o vídeo
display(Video(video_path, embed=True))
print(f"Transcrição: {transcription}")
os.remove(video_path)
print(f"Arquivo temporário removido: {video_path}")
print(f"Tempo total de processamento: {time.time() - overall_start_time:.2f} segundos")
Exemplo de Uso
Escolha um link de vídeo (neste caso, Kwai) e execute o processamento:
query_video_url = "https://www.kwai.com/@anefernandes94/video/5211940775104142153?page_source=discover"
process_video_from_url(query_video_url)
O que Você Deve Esperar?
- Download do Vídeo: O vídeo será baixado em formato MP4.
- Extração de Áudio: Um arquivo MP3 será gerado a partir do vídeo.
- Transcrição: O texto extraído do áudio será exibido.
- Exibição do Vídeo: Você poderá visualizar o vídeo no notebook.
Possíveis Extensões
- Reconhecimento de Texto no Vídeo:
Use OCR (Tesseract ou EasyOCR) para extrair texto diretamente dos frames do vídeo. - Tradução Automática:
Combine a transcrição com uma API de tradução, como o Google Translate. - Análise de Sentimento:
Utilize NLP para analisar emoções ou temas no texto transcrito.
Conclusão
Este projeto é um exemplo poderoso de como combinar ferramentas modernas para extrair informações úteis de vídeos. Com o Python, podemos criar pipelines inteligentes que baixam, processam e analisam dados multimídia.
Se quer ver o código completo, no colab, acesse: https://colab.research.google.com/drive/1P2r7irYn-WSa_UwAn273Z1TOvDxlpGQy?usp=sharing
Publicar comentário