lazier

personal summarizer
Log | Files | Refs | README

commit 7ccb4419e8a6a7500130626063ca93810c95223f
parent 266d74e143e5940bcaa6e3d07434c50e2e434d08
Author: Pablo Murad <pablo@pablomurad.com>
Date:   Sat, 31 Jan 2026 16:04:04 -0300

changes

Diffstat:
MREADME.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