Pipeline automatizado para coleta, download, transcrição e organização de vídeos/áudios em lote, usando Whisper AI e yt-dlp.
Ideal para criar datasets de áudio, gerar legendas automáticas e extrair texto em larga escala a partir de YouTube, Instagram, TikTok ou outras fontes.
-
Crawler/Coleta de Links:
Extrai links de vídeo individual, playlists ou perfis inteiros (YouTube, Instagram, TikTok). -
Entrada de Links:
Aceita arquivos (.txt, .csv, .xlsx), input manual ou integração por API. -
Download Automático:
Baixa vídeos/áudios em lote (preferencialmente áudio), com paralelismo e controle de erros. -
Organização & Storage:
Estrutura pastas e arquivos por canal/perfil, com metadados. -
Transcrição (Whisper AI):
Roda modelo Whisper local (GPU ou CPU), salva checkpoints, tolera falhas. -
Saídas Múltiplas:
Gera legendas (.srt, .vtt), transcrições (.txt), arquivos estruturados (.json). -
(Opcional) Diarização / Speaker-ID:
Integra Pyannote, WhisperX etc para separar vozes por speaker. -
Logging & Savepoints:
Pipeline resiliente, registra status de cada etapa e permite retomar pendências. -
(Opcional) Pós-processamento:
Scripts para clustering, sumarização, análise semântica etc.
Siga estes passos para rodar o pipeline transcribe-batchflow com o mínimo de esforço:
pip install -r requirements.txt💡 Dica: Se aparecer erro relacionado ao módulo
yaml, instale manualmente:
pip install pyyamlO ffmpeg é fundamental para baixar e converter vídeos e áudios. Confira a seção abaixo para instruções detalhadas de instalação para seu sistema operacional.
Teste se o ffmpeg está instalado rodando no terminal:
ffmpeg -versionSe aparecer a versão, está tudo certo! Se não, revise a instalação e reinicie seu terminal ou editor.
Crie um arquivo .env na raiz do projeto para pré-definir variáveis como URL, tipo de link e pastas. Exemplo:
YOUTUBE_URL=https://www.youtube.com/playlist?list=PL-XXXXXXXXXXXX
TIPO=playlist
LINKS_FILE=data/input/links.txt
AUDIO_DIR=data/audio
DOWNLOAD_ONLY_AUDIO=true
TRANSCRIPTS_DIR=data/transcripts
LOG_FILE=data/logs/pipeline.logAssim, você evita digitar essas informações toda vez que rodar o pipeline.
Se não usou .env ou quiser coletar links diferentes, rode:
python crawlers/youtube_crawler.py "https://www.youtube.com/playlist?list=PL-XXXXXXXXXXXX" playlistSubstitua a URL e o tipo (playlist, video ou channel) conforme necessário.
O crawler vai salvar os links no arquivo data/input/links.txt (ou no caminho que você configurou).
Inicie o pipeline com menu interativo:
python main.pyNo menu, você pode:
- Executar etapas individualmente (coleta, download, transcrição)
- Rodar tudo em batch (opção 9)
- Reprocessar erros (opção 3)
No menu do main.py, digite 9 para rodar:
- Coleta de links
- Download dos vídeos/áudios
- Transcrição com Whisper
- Geração automática do índice das transcrições
Se alguma transcrição falhou, use a opção de retry no menu:
python main.pyDigite 3 para tentar reprocessar só os arquivos que geraram erro.
- Transcrições, legendas e arquivos de saída estarão em:
data/transcripts/
- Logs detalhados e arquivos de erro ficam em:
data/logs/
- Sempre mantenha o
yt-dlpatualizado para evitar erros do YouTube:
pip install -U yt-dlp- Use
.envpara facilitar execuções repetidas e evitar digitar URLs toda hora.
-
Python 3.10+ recomendado.
-
Instale dependências com:
pip install -r requirements.txt
Dica: Se aparecer erro envolvendo o
yaml, rode:pip install pyyaml
-
Terminal (moderno):
winget install ffmpeg(Windows 10/11 atualizado)- ou
choco install ffmpeg -y(com Chocolatey instalado) - ou
scoop install ffmpeg(com Scoop instalado)
-
Manual:
- Baixe o "static build" em: https://ffmpeg.org/download.html
- Extraia o ZIP/7z, copie a pasta
bin/para um local fácil (ex:C:\ffmpeg\bin) - Adicione esse caminho ao PATH do Windows (Variáveis de Ambiente).
- Feche e reabra o terminal/VS Code.
sudo apt update
sudo apt install ffmpegbrew install ffmpeg(Se não tiver o Homebrew: brew.sh)
ffmpeg -versionDeve mostrar a versão instalada. Se não reconhecer, feche e reabra o terminal.
transcribe-batchflow/
├── data/
│ ├── input/ # links.txt e arquivos de entrada
│ ├── audio/ # áudios baixados (.mp3, .wav, .webm, etc)
│ ├── video/ # vídeos completos (se baixar vídeo inteiro)
│ ├── transcripts/ # arquivos de transcrição (.srt, .vtt, .txt, .json)
│ ├── logs/ # logs do pipeline
│ └── meta/ # metadados extras
├── crawlers/ # scripts de coleta de links (YouTube, Instagram, TikTok, etc)
├── scripts/ # scripts utilitários: download_manager.py, transcriber.py, etc
├── config/ # settings.yaml e configurações editáveis
├── main.py # orquestrador principal (pode evoluir para CLI ou painel)
├── run_batch.py # pipeline automático: coleta, download e transcrição em 1 comando
├── .env.example # arquivo modelo de variáveis de ambiente para configuração fácil
└── requirements.txt # dependências Python do projeto
-
Edite
config/settings.yamlpara:- Escolher modelo Whisper (
small,medium,large) - Trocar device (
cudaoucpu) - Ajustar paralelismo, retries, pasta de saída, etc
- Escolher modelo Whisper (
-
Edite
.envpara pré-configurar variáveis usadas no pipeline (YOUTUBE_URL,TIPO, etc). Veja.env.examplepara referência.
-
O pipeline pula vídeos privados, deletados ou indisponíveis e continua o batch.
-
Modular e fácil de expandir para outros crawlers, pós-processamento ou integrações cloud.
-
Logs detalhados e arquivos de erro facilitam a retomada e o debugging.
-
Atualize
yt-dlpsempre que houver erro novo no YouTube:pip install -U yt-dlp
-
O ffmpeg é imprescindível — garanta que está no PATH antes de rodar!
- CLI com parâmetros para playlists/links
- Diarização (identificação de speakers)
- Painel/dashboards para visualizar progresso e logs
- Integração cloud (GCS, S3, etc)
- Pós-processamento semântico
- Hooks de notificação
Feito com 🧠, cafeína e automação.