Um sistema de geração de podcasts baseado em múltiplos agentes de IA, desenvolvido durante a Imersão IA & Agents da Alura usando o SDK do Google para Gemini Agents.
Este projeto foi desenvolvido como parte do desafio da Imersão IA & Agents da Alura. A proposta é utilizar agentes inteligentes com o SDK do Gemini para automatizar a curadoria e síntese de conteúdos sobre Inteligência Artificial disponíveis em vídeos do YouTube. O sistema busca vídeos populares e recentes sobre IA, transcreve e resume os conteúdos, e por fim, gera um novo podcast com os principais insights, facilitando a atualização sobre o tema de forma rápida e acessível.
O objetivo final deste projeto era criar uma experiência similar ao NotebookLM da Google - uma ferramenta que não apenas gera conteúdo textual, mas também o converte em áudio, o objetivo final é de criar um podcast com qualidade profissional. Este objetivo ainda não foi alcançado com a implementação da síntese de voz usando a biblioteca gTTS (Google Text-to-Speech), que converte o script gerado em um arquivo de áudio MP3.
O sistema utiliza uma arquitetura de múltiplos agentes especializados que trabalham em conjunto para:
- Descobrir podcasts relevantes no YouTube
- Extrair e processar suas transcrições
- Resumir os principais insights
- Sintetizar um novo script de podcast original
- Converter o script em áudio usando síntese de voz de podcast
- 🔍 Busca Inteligente Aprimorada: Encontra os podcasts mais relevantes sobre um tópico específico usando múltiplas estratégias de busca
- 📝 Transcrição Automática Multilíngue: Obtém transcrições de vídeos do YouTube em português, inglês e outros idiomas disponíveis
- 📊 Resumo Avançado Focado: Extrai os pontos-chave e insights mais importantes de cada fonte com foco em IA e Agentes
- 📚 Síntese Criativa Estruturada: Gera um script completo para um novo podcast, com seções bem definidas e conteúdo coeso
- 💾 Exportação em Markdown: Salva o script final em formato Markdown para fácil edição
- 🔊 Síntese de Voz: Converte o script em áudio de podcast usando gTTS (Google Text-to-Speech)
O sistema utiliza cinco agentes especializados que trabalham em sequência, cada um em seu próprio módulo Python:
-
Agente Buscador (
youtube_search_agent.py) 🔎- Modelo:
gemini-2.5-pro-preview-03-25 - Função: Buscar podcasts relevantes no YouTube sobre o tópico especificado
- Ferramentas: Google Search Tool
- Estratégia: Utiliza múltiplas consultas para maximizar resultados relevantes
- Modelo:
-
Agente Transcritor (
transcription_agent.py) 🎥- Biblioteca:
youtube-transcript-api - Função: Obter transcrições dos vídeos encontrados
- Capacidades: Processa transcrições em PT-BR, EN e outros idiomas disponíveis
- Tratamento de erros: Lida com vídeos indisponíveis ou sem transcrições
- Biblioteca:
-
Agente Resumidor (
summary_agent.py) 📝- Modelo:
gemini-2.5-pro-preview-03-25 - Função: Analisar e resumir as transcrições em pontos-chave
- Foco: Extrair informações essenciais e insights de valor sobre IA e Agentes
- Limitação: Gerencia o tamanho do conteúdo para evitar exceder limites de contexto
- Modelo:
-
Agente Sintetizador (
synthesis_agent.py) 🎤- Modelo:
gemini-2.5-pro-preview-03-25 - Função: Sintetizar um roteiro de podcast original e coerente
- Estrutura: Título, Introdução, Desenvolvimento, Tendências e Futuro, Conclusão
- Metadados: Adiciona informações como data de geração ao script final
- Modelo:
-
Agente Sintetizador de Voz (
speech_synthesis_agent.py) 🔊- Função: Converter o script do podcast em áudio
- Status: Implementado e funcional
- Recursos avançados: Utiliza pydub e ffmpeg para criar transições, introdução e conclusão
- Integração: Utiliza a biblioteca gTTS (Google Text-to-Speech) para gerar arquivos MP3
- Tratamento de erros: Detecta automaticamente se ffmpeg está instalado e oferece uma versão simplificada quando não está disponível
- Python 3.8+
- Acesso à API do Google Gemini
- Conexão com internet
- ffmpeg (para recursos avançados de áudio)
- Clone este repositório:
git clone https://github.com/seu-usuario/podcast-generator.git
cd podcast-generator- Instale as dependências Python:
pip install -r requirements.txt-
Instale o ffmpeg (opcional, mas recomendado para recursos avançados de áudio):
- Ubuntu/Debian:
sudo apt-get install ffmpeg - macOS (com Homebrew):
brew install ffmpeg - Windows: Baixe do site oficial ou use o gerenciador de pacotes Chocolatey
- Ubuntu/Debian:
-
Configure sua chave de API:
- Crie um arquivo
.envna raiz do projeto - Adicione sua chave API:
GOOGLE_API_KEY=sua_chave_aqui
- Crie um arquivo
- Execute o CLI para gerar o podcast em Markdown e áudio:
python main.py generate --topic "IA e Agents de IA" --max-videos 5 --output-dir ./out- (Opcional) para gerar apenas o script sem áudio:
python main.py generate --topic "IA e Agents de IA" --max-videos 5 --output-dir ./out --no-audio-
O sistema vai executar automaticamente:
- Buscando podcasts relevantes usando múltiplas consultas
- Obtendo transcrições em vários idiomas
- Resumindo o conteúdo com foco em IA e Agentes
- Gerando o script estruturado do podcast
- Convertendo o script em áudio de podcast com formato profissional
-
O resultado final (script e áudio) será exibido na tela e salvo em arquivos markdown e MP3.
-
Recursos avançados de áudio (quando ffmpeg está instalado):
- Introdução e conclusão profissionais
- Divisão do podcast em seções com anúncios de transição
- Pausas apropriadas entre seções para melhor ritmo
- Detecção automática de título e estrutura do podcast
-
Estrutura do projeto:
streamMind/
├── agents/ # Pasta com os agentes individuais
│ ├── __init__.py
│ ├── youtube_search_agent.py # Agente de busca no YouTube
│ ├── transcription_agent.py # Agente de transcrição
│ ├── summary_agent.py # Agente de resumo
│ ├── synthesis_agent.py # Agente de síntese de script
│ └── speech_synthesis_agent.py # Agente de síntese de voz
├── utils/ # Utilitários compartilhados
│ ├── __init__.py
│ ├── common.py # Funções comuns (extract_video_id, etc)
│ └── agent_communication.py # Funções para comunicação com agentes
├── main.py # Script original
└── README.md # Documentação
- Google ADK for Agents: Framework para criação e gerenciamento de agentes de IA
- Google Gemini Models: Modelos de IA utilizados pelos agentes (gemini-2.5-pro-preview e gemini-2.0-flash)
- Youtube Transcript API: Para extração de legendas/transcrições de vídeos em múltiplos idiomas
- Python: Linguagem de programação principal com arquitetura modular
- Markdown: Formato de saída para scripts gerados
- gTTS (Google Text-to-Speech): Utilizado para converter o texto do podcast em áudio MP3
- pydub: Biblioteca para processamento avançado de áudio e criação de transições
- ffmpeg: Ferramenta para manipulação de áudio e vídeo, utilizada pelo pydub
- NotebookLM (Referência): Inspiração para o objetivo final de geração de áudio de podcast com qualidade profissional
Este projeto demonstra:
- Como criar sistemas complexos utilizando múltiplos agentes especializados
- Arquitetura modular para melhor organização e manutenção do código
- Separação de responsabilidades com cada agente em seu próprio módulo
- Técnicas para orquestrar o fluxo de informações entre agentes
- Uso prático do SDK Gemini para agents em um cenário real
- Aplicação de LLMs na geração de conteúdo estruturado
- Integração com APIs externas para enriquecimento de dados
- Tratamento de erros robusto em cada etapa do processo
- Detecção automática de dependências do sistema (ffmpeg)
- Implementação de mecanismos de fallback para garantir funcionalidade básica
- Processamento avançado de áudio para criação de podcasts com qualidade profissional
- Adaptação dinâmica baseada nos recursos disponíveis no ambiente de execução
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido como parte do desafio da Imersão IA & Agents da Alura. Kaique Nogueira
Feito com ❤️ utilizando Gemini e os conhecimentos da Imersão IA & Agents Alura