Skip to content

runawaydevil/lazier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

cp .env.example .env
Variável Obrigatório Descrição
OPENAI_API_KEY Sim Chave da API OpenAI (obter aqui)
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).

Segredos: nunca commite ficheiros .env com valores reais, chaves API ou passwords. Mantenha apenas .env.example no Git; use variáveis de ambiente no host ou secrets do CI/CD (GitHub Actions, etc.).

Instalação Rápida

Docker (Recomendado)

# 1. Clone o repositório
git clone <repo-url>
cd lazier

# 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 (a partir da pasta do projeto)
docker compose -f docker/docker-compose.yml up -d --build

Ou, a partir da pasta docker/:

cd docker
docker compose up -d --build

Acesse: http://localhost:19283

Arquivos gerados são salvos em outputs/ na raiz do projeto.

Instalação Local

pip install -r requirements.txt
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

# Transcrever e sumarizar
lazier audio.mp3
lazier video.mp4
lazier document.pdf
lazier "https://www.youtube.com/watch?v=VIDEO_ID"

# Opções
lazier audio.mp3 --format json          # Formato: docx, txt, md, json, pdf
lazier transcribe video.mp4             # Apenas transcrição
lazier web                               # Inicia servidor web
lazier cache clear                       # Limpa cache

WebGUI

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)

Além do YouTube, você pode colar URLs de vídeo ou áudio de centenas de sites. O Lazier usa o yt-dlp para extrair o áudio; se a URL não for um vídeo, o sistema tenta extrair o texto da página e sumarizar.

Exemplos de sites que você pode processar:

YouTube TED Reddit
Vimeo Twitter / X TikTok
Instagram Facebook Twitch
Dailymotion BBC, CNN, NBC NPR, PBS
Arte, France TV, RTVE Khan Academy Coursera, Udemy
LinkedIn Learning Loom Streamable
BitChute, Odysee Rumble PeerTube
archive.org Patreon Substack
Wistia Niconico Bilibili
Kick, Floatplane Nebula CuriosityStream
C-SPAN Al Jazeera DW, Reuters
ESPN, Fox Sports Formula 1 Olympics
NYTimes Washington Post The Guardian

E muitos outros. Lista completa mantida pelo yt-dlp: Supported sites.

Importante: Conteúdo detectado como música (ex.: categoria Music no YouTube, domínios só de música) não é processado pelo Lazier.

Docker

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

lazier cache clear    # Limpar cache
lazier cache stats    # Estatísticas

Nota: ffmpeg e yt-dlp são instalados automaticamente no container Docker.

Troubleshooting

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

Segurança e repositório público

Antes de tornar o repositório público no GitHub:

  1. Secret scanning — Em SettingsCode security and analysis, ative Secret scanning (e, se disponível, push protection) para alertas sobre segredos no código.
  2. Rever o histórico — Com o remoto atualizado (git fetch --all), confirme que nunca houve .env ou chaves no histórico, por exemplo:
    • git log --all --full-history -p -- .env
    • git log --all -S "sk-" --oneline -- "*.py" "*.md"
  3. Se algum segredo já foi commitado — Revogue ou regenere imediatamente essa chave na respetiva plataforma (OpenAI, etc.). Limpar o ficheiro no último commit não remove o segredo do histórico; use ferramentas como git-filter-repo ou BFG Repo-Cleaner e faça force push com consciência do impacto em colaboradores.

Contato

Pablo Murad - pablomurad@pm.me

About

sumarizador pessoal

Resources

Stars

Watchers

Forks

Contributors