commit 9abad15cca8f91bb24f981ec53aef828cd6dab8d
parent f03ce8665e55aa997acd082b4d50d08e7238362e
Author: Pablo Murad <pblmrd@gmail.com>
Date: Sat, 24 Jan 2026 21:58:01 -0300
fix readme.md
Diffstat:
| M | README.md | | | 328 | +++++++++++-------------------------------------------------------------------- |
1 file changed, 44 insertions(+), 284 deletions(-)
diff --git a/README.md b/README.md
@@ -4,346 +4,106 @@ Sistema CLI e WebGUI para transcrição e sumarização de áudios/vídeos/texto
**Versão 0.01** - Desenvolvido por Pablo Murad (pablomurad@pm.me)
-## Descrição
+## Instalação Rápida
-Lazier é uma plataforma completa que permite:
-- Transcrever arquivos de áudio locais (mp3, wav, m4a, etc.)
-- Transcrever arquivos de vídeo locais (mp4, avi, mkv, etc.)
-- Baixar e transcrever vídeos do YouTube (incluindo playlists)
-- Sumarizar textos, PDFs e páginas web
-- Upload de arquivos via interface web
-- Cache inteligente com Redis
-- Múltiplos formatos de saída (DOCX, TXT, Markdown, JSON)
+### Docker (Recomendado)
-Todas as transcrições e sumários são gerados em **português do Brasil** usando a API da OpenAI.
-
-## Requisitos
-
-- Python 3.8 ou superior
-- Docker e Docker Compose (para uso em container)
-- Chave da API OpenAI (obtenha em https://platform.openai.com/api-keys)
-
-**Nota:** ffmpeg e yt-dlp são instalados automaticamente no container Docker.
-
-## Instalação
-
-### Opção 1: Docker (Recomendado)
-
-1. Clone o repositório:
```bash
+# 1. Clone o repositório
git clone <repo-url>
cd listener
-```
-2. Configure a chave da API:
-```bash
-# Crie arquivo .env na raiz
+# 2. Configure a chave da API
echo "OPENAI_API_KEY=sua_chave_aqui" > .env
-```
-3. Inicie os serviços:
-```bash
+# 3. Inicie os serviços
cd docker
docker compose up -d
```
-4. Acesse a interface web em: http://localhost:19283
-
-**Nota:** Os arquivos gerados são salvos diretamente na pasta `outputs/` na raiz do projeto. Você pode acessá-los diretamente sem precisar copiar do container.
+Acesse: **http://localhost:19283**
-### Opção 2: Instalação Local
+Arquivos gerados são salvos em `outputs/` na raiz do projeto.
-1. Clone o repositório
-2. Instale as dependências:
+### Instalação Local
```bash
pip install -r requirements.txt
-```
-
-Ou instale o pacote em modo desenvolvimento:
-
-```bash
-pip install -e .
-```
-
-3. Configure sua chave da API OpenAI:
-
-Crie um arquivo `.env` na raiz do projeto:
-
-```bash
-OPENAI_API_KEY=sua_chave_aqui
-REDIS_HOST=localhost
-REDIS_PORT=6379
-```
-
-4. Inicie Redis (necessário para cache):
-```bash
-# Docker
-docker run -d -p 6379:6379 redis:7-alpine
-
-# Ou instale Redis localmente
+echo "OPENAI_API_KEY=sua_chave_aqui" > .env
+docker run -d -p 6379:6379 redis:7-alpine # Redis para cache
+lazier web
```
## Uso
### CLI
-#### Comando Principal
-
-O comando principal transcreve e sumariza automaticamente:
-
```bash
-lazier <arquivo|url> [opções]
-```
-
-**Exemplos:**
-
-```bash
-# Transcrever e sumarizar arquivo de áudio local
+# Transcrever e sumarizar
lazier audio.mp3
-
-# Transcrever e sumarizar vídeo local
lazier video.mp4
-
-# Processar PDF
lazier document.pdf
-
-# Transcrever e sumarizar vídeo do YouTube
lazier "https://www.youtube.com/watch?v=VIDEO_ID"
-# Especificar formato de saída
-lazier audio.mp3 --format json
-
-# Apenas transcrição (sem sumário)
-lazier transcribe video.mp4
-
-# Processar playlist do YouTube
-lazier "https://www.youtube.com/playlist?list=PLAYLIST_ID"
+# Opções
+lazier audio.mp3 --format json # Formato: docx, txt, md, json
+lazier transcribe video.mp4 # Apenas transcrição
+lazier web # Inicia servidor web
+lazier cache clear # Limpa cache
```
-#### Subcomandos
-
-- `lazier transcribe <arquivo|url>` - Apenas transcrição
-- `lazier web` - Inicia servidor web na porta 19283
-- `lazier cache clear` - Limpa cache Redis
-- `lazier cache stats` - Mostra estatísticas do cache
-
-#### Opções
-
-- `--output, -o`: Nome do arquivo de saída (padrão: baseado no input)
-- `--format, -f`: Formato de saída - docx, txt, md, json (padrão: docx)
-- `--language, -l`: Idioma para transcrição (padrão: pt)
-- `--model`: Modelo Whisper (padrão: whisper-1)
-- `--gpt-model`: Modelo GPT para sumarização (padrão: gpt-4o-mini)
-- `--keep-files`: Não deletar arquivos temporários após processamento
-- `--only-audio`: Processar apenas áudio (para vídeos)
-
### WebGUI
-Inicie o servidor web:
+Acesse http://localhost:19283 após iniciar com `lazier web` ou Docker.
-```bash
-lazier web
-```
-
-Ou com opções:
-
-```bash
-lazier web --port 19283 --host 0.0.0.0
-```
-
-Acesse http://localhost:19283 no navegador.
-
-**Funcionalidades da WebGUI:**
-- Upload de múltiplos arquivos (drag & drop)
+**Funcionalidades:**
+- Upload de arquivos (drag & drop)
- Processamento de URLs (YouTube, páginas web)
-- Visualização de progresso em tempo real
-- Download de resultados em múltiplos formatos
+- Progresso em tempo real
+- Download em múltiplos formatos
- Histórico de processamentos
## Formatos Suportados
-**Áudio:** mp3, wav, m4a, aac, flac, ogg, opus, wma
-
-**Vídeo:** mp4, avi, mkv, mov, wmv, flv, webm, m4v
-
-**Documentos:** pdf, txt, md, html
-
-**YouTube:** Qualquer URL do YouTube (vídeos e playlists)
-
-**Web:** URLs de páginas web (extração automática de conteúdo)
-
-## Fluxo de Processamento
-
-### Para Arquivos Locais (Áudio/Vídeo):
-
-1. Validação do arquivo
-2. Verificação de cache Redis
-3. Se vídeo → extração de áudio com ffmpeg
-4. Transcrição com OpenAI Whisper API (pt-BR)
-5. Sumarização com OpenAI GPT (pt-BR)
-6. Geração do arquivo no formato solicitado
-7. Limpeza de arquivos temporários
-
-### Para PDFs/Textos:
-
-1. Validação do arquivo
-2. Verificação de cache Redis
-3. Extração de conteúdo (PDF ou texto direto)
-4. Sumarização com OpenAI GPT (pt-BR)
-5. Geração do arquivo no formato solicitado
-
-### Para URLs do YouTube:
-
-1. Validação da URL
-2. Verificação de cache Redis
-3. Download do melhor áudio disponível com yt-dlp
-4. Transcrição com OpenAI Whisper API (pt-BR)
-5. Sumarização com OpenAI GPT (pt-BR)
-6. Geração do arquivo no formato solicitado
-7. **Sempre deleta** o arquivo baixado (limpeza automática)
-
-### Para Playlists do YouTube:
-
-1. Detecção de playlist
-2. Extração da lista de vídeos
-3. Processamento sequencial de cada vídeo
-4. Consolidação de resultados
-
-### Para Páginas Web:
-
-1. Validação da URL
-2. Verificação de cache Redis
-3. Extração de conteúdo da página
-4. Sumarização com OpenAI GPT (pt-BR)
-5. Geração do arquivo no formato solicitado
-
-## Cache Redis
-
-O Lazier usa Redis para cache inteligente:
-- **Transcrições**: Cacheadas por hash do arquivo
-- **Sumários**: Cacheados por hash do texto
-- **Metadados YouTube**: Cacheados por video_id
-- **Conteúdo Web/PDF**: Cacheado por hash da URL/arquivo
-
-**TTL padrão:** 7 dias
-
-**Comandos de cache:**
-```bash
-lazier cache clear # Limpa todo o cache
-lazier cache stats # Mostra estatísticas
-```
+- **Áudio:** mp3, wav, m4a, aac, flac, ogg, opus, wma
+- **Vídeo:** mp4, avi, mkv, mov, wmv, flv, webm, m4v
+- **Documentos:** pdf, txt, md, html
+- **YouTube:** Vídeos e playlists
+- **Web:** Páginas web (extração automática)
## Docker
-### Estrutura
-
-O projeto inclui Docker Compose com:
-- **lazier**: Aplicação principal (porta 19283)
-- **redis**: Cache Redis (porta 6379)
-
-### Comandos Docker
-
```bash
-# Iniciar todos os serviços
cd docker
-docker compose up -d
-
-# Ver logs
-docker compose logs -f lazier
-docker compose logs -f redis
-
-# Parar serviços
-docker compose down
-
-# Rebuild
-docker compose build --no-cache
-
-# Limpar volumes (remove todos os dados, exceto outputs que está no host)
-docker compose down -v
-
-# Acessar arquivos gerados (agora estão diretamente na pasta outputs/ do projeto)
-ls outputs/
-# ou no Windows:
-dir outputs\
+docker compose up -d # Iniciar
+docker compose logs -f # Ver logs
+docker compose down # Parar
+docker compose down -v # Parar e limpar volumes
```
-**Nota:** Os arquivos gerados são salvos diretamente na pasta `outputs/` na raiz do projeto. Apenas cache, uploads e dados temporários ficam em volumes Docker nomeados.
-
-### Variáveis de Ambiente
+## Cache Redis
-Crie um arquivo `.env` na raiz:
+Cache automático de transcrições e sumários (TTL: 7 dias).
```bash
-OPENAI_API_KEY=sua_chave_aqui
+lazier cache clear # Limpar cache
+lazier cache stats # Estatísticas
```
-## Estrutura do Projeto
-
-```
-listener/
-├── lazier/ # Módulo principal
-│ ├── api/ # API FastAPI
-│ ├── web/ # Frontend web
-│ ├── core/ # Lógica de negócio
-│ └── ... # Módulos existentes
-├── docker/ # Arquivos Docker
-│ ├── Dockerfile
-│ └── docker-compose.yml
-├── data/ # Dados persistentes
-├── cache/ # Cache local (backup)
-├── uploads/ # Uploads temporários
-├── outputs/ # Arquivos gerados
-└── ...
-```
+## Requisitos
-## Limitações
+- Python 3.8+
+- Docker e Docker Compose (recomendado)
+- Chave da API OpenAI: https://platform.openai.com/api-keys
+- Redis (opcional, para cache)
-- Arquivos de áudio maiores que 25MB precisam ser divididos (limite da API Whisper)
-- Requer conexão com internet para usar APIs da OpenAI
-- Vídeos do YouTube são sempre deletados após processamento (use `--keep-files` para manter temporários locais)
-- Upload máximo: 500MB por arquivo (configurável)
+**Nota:** ffmpeg e yt-dlp são instalados automaticamente no container Docker.
## Troubleshooting
-### Erro: "OPENAI_API_KEY não encontrada"
-
-Configure a variável de ambiente ou crie um arquivo `.env` com sua chave da API.
-
-### Erro: "Redis não disponível"
-
-O cache é opcional. Se Redis não estiver disponível, o sistema funcionará sem cache. Para usar cache, inicie Redis:
-
-```bash
-docker run -d -p 6379:6379 redis:7-alpine
-```
-
-### Erro: "Arquivo muito grande"
-
-A API Whisper tem limite de 25MB por arquivo. Considere dividir arquivos grandes ou usar um formato de áudio mais compacto.
-
-### Erro no Docker: "ffmpeg não encontrado"
-
-O Dockerfile instala ffmpeg automaticamente. Se houver problemas, verifique o build do container.
-
-## Desenvolvimento
-
-Para desenvolver ou contribuir:
-
-```bash
-# Instalar em modo desenvolvimento
-pip install -e .
-
-# Executar servidor web localmente
-lazier web
-
-# Executar testes (quando implementados)
-pytest tests/
-```
-
-## Licença
-
-Este projeto é desenvolvido por Pablo Murad. Versão 0.01.
+- **"OPENAI_API_KEY não encontrada"**: Crie arquivo `.env` com `OPENAI_API_KEY=sua_chave`
+- **"Redis não disponível"**: Sistema funciona sem cache. Para cache: `docker run -d -p 6379:6379 redis:7-alpine`
+- **Arquivo muito grande**: API Whisper tem limite de 25MB. Divida arquivos grandes.
## Contato