commit 7ccb4419e8a6a7500130626063ca93810c95223f
parent 266d74e143e5940bcaa6e3d07434c50e2e434d08
Author: Pablo Murad <pablo@pablomurad.com>
Date: Sat, 31 Jan 2026 16:04:04 -0300
changes
Diffstat:
| M | README.md | | | 72 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------- |
1 file changed, 56 insertions(+), 16 deletions(-)
diff --git a/README.md b/README.md
@@ -1,5 +1,28 @@
# Lazier
+Sistema CLI e Web para **transcrição** e **sumarização** de áudios, vídeos, textos e PDFs usando OpenAI (Whisper + GPT). Suporta upload de arquivos, URLs do YouTube e de centenas de outros sites (via yt-dlp), e páginas web. Exporta em DOCX, TXT, Markdown, JSON e PDF.
+
+## Requisitos
+
+- **OpenAI API Key** (Whisper para transcrição, GPT para sumário)
+- **Redis** (opcional, para cache de transcrições/sumários)
+- **ffmpeg** e **yt-dlp** (instalados automaticamente no Docker; em instalação local, instale manualmente)
+
+## Configuração (.env)
+
+Copie o exemplo e preencha:
+
+```bash
+cp .env.example .env
+```
+
+| Variável | Obrigatório | Descrição |
+|----------|-------------|-----------|
+| `OPENAI_API_KEY` | Sim | Chave da API OpenAI ([obter aqui](https://platform.openai.com/api-keys)) |
+| `SESSION_SECRET_KEY` | Sim (Web) | Chave para sessões. Gere com: `openssl rand -hex 32` |
+| `ADMIN_USER` / `ADMIN_PASSWORD` | Não | Usuário admin da WebGUI (criado na primeira execução se definidos) |
+
+Opcional: `YOUTUBE_PO_TOKEN` para melhor suporte a alguns vídeos do YouTube ([guia](https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Guide)).
## Instalação Rápida
@@ -8,14 +31,21 @@
```bash
# 1. Clone o repositório
git clone <repo-url>
-cd listener
+cd lazier
-# 2. Configure a chave da API
-echo "OPENAI_API_KEY=sua_chave_aqui" > .env
+# 2. Configure o .env (OPENAI_API_KEY, SESSION_SECRET_KEY e opcionalmente ADMIN_USER/ADMIN_PASSWORD)
+cp .env.example .env
+# Edite .env com suas chaves
-# 3. Inicie os serviços
+# 3. Inicie os serviços (a partir da pasta do projeto)
+docker compose -f docker/docker-compose.yml up -d --build
+```
+
+Ou, a partir da pasta `docker/`:
+
+```bash
cd docker
-docker compose up -d
+docker compose up -d --build
```
Acesse: **http://localhost:19283**
@@ -26,11 +56,17 @@ Arquivos gerados são salvos em `outputs/` na raiz do projeto.
```bash
pip install -r requirements.txt
-echo "OPENAI_API_KEY=sua_chave_aqui" > .env
-docker run -d -p 52847:6379 redis:7-alpine # Redis para cache (porta 52847 no host)
+cp .env.example .env
+# Preencha OPENAI_API_KEY e SESSION_SECRET_KEY no .env
+
+# Redis (opcional, para cache)
+docker run -d -p 52847:6379 redis:7-alpine
+
lazier web
```
+Acesse **http://localhost:19283** (ou use `--port` para outra porta).
+
## Uso
### CLI
@@ -51,7 +87,7 @@ lazier cache clear # Limpa cache
### WebGUI
-Acesse http://localhost:19283 após iniciar com `lazier web` ou Docker.
+Acesse http://localhost:19283 após iniciar com `lazier web` ou Docker. Na primeira vez, faça login com o usuário e senha definidos em `ADMIN_USER` e `ADMIN_PASSWORD` no `.env` (se configurados).
## Sites suportados (vídeo/áudio)
@@ -82,13 +118,15 @@ E muitos outros. **Lista completa** mantida pelo yt-dlp: [Supported sites](https
## Docker
```bash
-cd docker
-docker compose up -d # Iniciar
-docker compose logs -f # Ver logs
-docker compose down # Parar
-docker compose down -v # Parar e limpar volumes
+# A partir da raiz do projeto
+docker compose -f docker/docker-compose.yml up -d --build # Iniciar (com rebuild)
+docker compose -f docker/docker-compose.yml logs -f # Ver logs
+docker compose -f docker/docker-compose.yml down # Parar
+docker compose -f docker/docker-compose.yml down -v # Parar e limpar volumes
```
+Ou entre na pasta `docker/` e use `docker compose up -d` (sem o `-f`).
+
## Cache Redis
Cache automático de transcrições e sumários (TTL: 7 dias).
@@ -103,9 +141,11 @@ lazier cache stats # Estatísticas
## Troubleshooting
-- **"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 52847:6379 redis:7-alpine` (use REDIS_PORT=52847 no .env se conectar do host)
-- **Arquivo muito grande**: API Whisper tem limite de 25MB. Divida arquivos grandes.
+- **"OPENAI_API_KEY não encontrada"**: Crie/edite o `.env` com `OPENAI_API_KEY=sua_chave`
+- **"SESSION_SECRET_KEY não configurada"**: Necessária para a WebGUI. Gere com `openssl rand -hex 32` e adicione ao `.env`
+- **"Redis não disponível"**: O sistema funciona sem cache. Para usar cache: `docker run -d -p 52847:6379 redis:7-alpine` (no host use `REDIS_PORT=52847` no `.env` se conectar ao Redis local)
+- **Arquivo muito grande**: A API Whisper tem limite de 25 MB. Divida arquivos grandes ou use a divisão automática do Lazier
+- **Conteúdo detectado como música**: URLs de música (ex.: categoria Music no YouTube) não são processadas; use apenas vídeos/podcasts
## Contato