Skip to content

About

Pipeline automatizado para **coleta, download, transcrição e organização** de vídeos/áudios em lote, usando Whisper AI e yt-dlp.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

transcribe-batchflow

Python ffmpeg yt-dlp Whisper AI MIT License

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.


⚡️ Visão Geral do Pipeline

  1. Crawler/Coleta de Links:
    Extrai links de vídeo individual, playlists ou perfis inteiros (YouTube, Instagram, TikTok).

  2. Entrada de Links:
    Aceita arquivos (.txt, .csv, .xlsx), input manual ou integração por API.

  3. Download Automático:
    Baixa vídeos/áudios em lote (preferencialmente áudio), com paralelismo e controle de erros.

  4. Organização & Storage:
    Estrutura pastas e arquivos por canal/perfil, com metadados.

  5. Transcrição (Whisper AI):
    Roda modelo Whisper local (GPU ou CPU), salva checkpoints, tolera falhas.

  6. Saídas Múltiplas:
    Gera legendas (.srt, .vtt), transcrições (.txt), arquivos estruturados (.json).

  7. (Opcional) Diarização / Speaker-ID:
    Integra Pyannote, WhisperX etc para separar vozes por speaker.

  8. Logging & Savepoints:
    Pipeline resiliente, registra status de cada etapa e permite retomar pendências.

  9. (Opcional) Pós-processamento:
    Scripts para clustering, sumarização, análise semântica etc.


🚀 Exemplo de Uso Rápido

Siga estes passos para rodar o pipeline transcribe-batchflow com o mínimo de esforço:

1️⃣ Instale as dependências do Python

pip install -r requirements.txt

💡 Dica: Se aparecer erro relacionado ao módulo yaml, instale manualmente:

pip install pyyaml

2️⃣ Garanta que o ffmpeg está instalado e disponível no PATH

O 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 -version

Se aparecer a versão, está tudo certo! Se não, revise a instalação e reinicie seu terminal ou editor.


3️⃣ Configure o arquivo .env (opcional, mas recomendado)

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.log

Assim, você evita digitar essas informações toda vez que rodar o pipeline.


4️⃣ Colete os links de vídeos (crawler)

Se não usou .env ou quiser coletar links diferentes, rode:

python crawlers/youtube_crawler.py "https://www.youtube.com/playlist?list=PL-XXXXXXXXXXXX" playlist

Substitua 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).


5️⃣ Execute o pipeline principal

Inicie o pipeline com menu interativo:

python main.py

No menu, você pode:

  • Executar etapas individualmente (coleta, download, transcrição)
  • Rodar tudo em batch (opção 9)
  • Reprocessar erros (opção 3)

6️⃣ Rodar o pipeline completo direto (opção batch)

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

7️⃣ Reprocessar arquivos que deram erro

Se alguma transcrição falhou, use a opção de retry no menu:

python main.py

Digite 3 para tentar reprocessar só os arquivos que geraram erro.


8️⃣ Verifique os resultados e logs

  • Transcrições, legendas e arquivos de saída estarão em:
data/transcripts/
  • Logs detalhados e arquivos de erro ficam em:
data/logs/

📌 Dicas extras

  • Sempre mantenha o yt-dlp atualizado para evitar erros do YouTube:
pip install -U yt-dlp
  • Use .env para facilitar execuções repetidas e evitar digitar URLs toda hora.

🖥️ Pré-requisitos Essenciais

Python

  • Python 3.10+ recomendado.

  • Instale dependências com:

    pip install -r requirements.txt

    Dica: Se aparecer erro envolvendo o yaml, rode:

    pip install pyyaml

ffmpeg (obrigatório para baixar/converter áudio e vídeo)

Windows

  • 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:

    1. Baixe o "static build" em: https://ffmpeg.org/download.html
    2. Extraia o ZIP/7z, copie a pasta bin/ para um local fácil (ex: C:\ffmpeg\bin)
    3. Adicione esse caminho ao PATH do Windows (Variáveis de Ambiente).
    4. Feche e reabra o terminal/VS Code.

Linux (Debian/Ubuntu e derivados)

sudo apt update
sudo apt install ffmpeg

MacOS (Homebrew)

brew install ffmpeg

(Se não tiver o Homebrew: brew.sh)

Teste se está instalado:

ffmpeg -version

Deve mostrar a versão instalada. Se não reconhecer, feche e reabra o terminal.


📁 Estrutura de Diretórios

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

⚙️ Configuração Avançada

  • Edite config/settings.yaml para:

    • Escolher modelo Whisper (small, medium, large)
    • Trocar device (cuda ou cpu)
    • Ajustar paralelismo, retries, pasta de saída, etc
  • Edite .env para pré-configurar variáveis usadas no pipeline (YOUTUBE_URL, TIPO, etc). Veja .env.example para referência.


💡 Dicas e Resiliê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-dlp sempre que houver erro novo no YouTube:

    pip install -U yt-dlp
  • O ffmpeg é imprescindível — garanta que está no PATH antes de rodar!


🦾 Roadmap & Futuro

  • 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.

About

Pipeline automatizado para **coleta, download, transcrição e organização** de vídeos/áudios em lote, usando Whisper AI e yt-dlp.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages