尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Editor de vídeo web em que a IA faz a edição e o usuário dirige. O usuário envia o vídeo bruto, descreve o que quer ("tire os silêncios, dê zoom nas ênfases, crie um gráfico quando eu citar números") e um agente monta a timeline. Depois, ajusta o que quiser manualmente — sem gastar créditos — ou seleciona um trecho e pede uma intervenção pontual à IA.
Público inicial: quem ganha dinheiro com vídeo falado (VSLs, aulas, infoprodutos, profissionais liberais).
A IA nunca renderiza pixels. Ela edita um JSON de timeline; o navegador do usuário desenha o preview em tempo real e, na maior parte dos casos, também exporta o arquivo final. Servidor pesado só entra quando o usuário pede render na nuvem.
vídeo bruto ──► navegador (IndexedDB) áudio 16 kHz ──► transcrição
│ │
▼ ▼
UI manual ──► operações ──► Timeline State (JSON) ◄── operações ◄── agente (Claude)
│
renderFrame(estado, t) ← um único renderizador (Canvas 2D)
│ │
preview (rAF) export WebCodecs (MP4) [futuro: render em nuvem]
Detalhes em docs/ARCHITECTURE.md. Plano de execução em docs/ROADMAP.md. Especificação da versão 1.0 em docs/V1_SPEC.md.
| Caminho | O que é |
|---|---|
packages/core | Schema do Timeline State (zod) e do Brand Kit, operações de edição ancoradas por palavra, mapeamento de tempo/transcrição, detecção de silêncio e de takes ruins, skills (presets de nicho), tabela de créditos e planos, contexto compacto para o agente. Sem dependência de DOM. |
packages/renderer | renderFrame (compositor Canvas 2D), legendas e a biblioteca de componentes de motion design paramétricos. |
apps/web | Next.js: editor (player, timeline, chat, inspetor), exportação local via WebCodecs, contas, painel de administração (/admin) e planos e créditos (/planos) e as rotas /api/agent, /api/transcribe, /api/auth/*, /api/billing/*, /api/stripe/webhook e /api/admin/*. |
apps/web/src/server | Camada de servidor: banco Postgres (migrações em schema.ts), sessões, recuperação de senha, limite de requisições, ledger de créditos, cobrança pelo Stripe, custo de IA, configurações cifradas e modelos de edição. |
Requer Node 22+, pnpm 10+ e um Postgres 14+ (o docker-compose.yml sobe um local).
docker compose up -d
pnpm install
cp apps/web/.env.example apps/web/.env.local
pnpm dev
Abra http://localhost:3000. Variáveis em apps/web/.env.local:
| Variável | Para quê | Sem ela |
|---|---|---|
ANTHROPIC_API_KEY (ou VIDEOEDITOR_ANTHROPIC_KEY) | Agente de edição (chat) | Chat responde que não está configurado; todo o resto funciona |
AGENT_MODEL | Modelo das edições completas (padrão claude-sonnet-5-5) | — |
AGENT_MODEL_FAST | Modelo dos ajustes pontuais (padrão claude-haiku-5-5) | — |
GROQ_API_KEY | Transcrição com timestamp por palavra (Whisper) | Sem legendas e sem cortes baseados na fala |
GEMINI_API_KEY | Modelo reserva (Google Gemini): o agente segue nele se a Anthropic ficar sem saldo, recusar a chave, sobrecarregar ou cair | Sem a Anthropic, o agente fica indisponível |
GEMINI_MODEL | Modelo reserva (padrão gemini-4-hydrogen). Os preços dele (US$ por milhão de tokens) ficam no painel /admin, para o teto de custo valer também na reserva | — |
AGENT_MODEL_EDITOR, AGENT_MODEL_CRITIC | Modelo do Editor e do Crítico visual (padrão: o principal) | — |
Na primeira execução, crie uma conta em http://localhost:3000/login. Em desenvolvimento, sem ADMIN_EMAILS, a primeira conta vira administradora e acessa /admin, onde as chaves de API também podem ser cadastradas (cifradas no banco, com prioridade sobre o .env.local). Em produção, defina ADMIN_EMAILS e APP_SECRET.
| Variável | Para quê |
|---|---|
ADMIN_EMAILS | E-mails que viram admin (em produção, a única forma) |
APP_SECRET | Cifra das chaves de API salvas pelo painel |
DATABASE_URL | Conexão com o Postgres (obrigatória). As tabelas são criadas na primeira requisição. |
DATABASE_POOL_MAX | Conexões por instância (padrão 10) |
APP_URL | Endereço público, para links de e-mail e retornos do Stripe (obrigatória em produção) |
RESEND_API_KEY, EMAIL_FROM | Envio do e-mail de recuperação de senha. Sem elas, em desenvolvimento o link sai no terminal |
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET | Login com Google. No Google Cloud Console, crie um ID do cliente OAuth (Aplicativo da Web) com o redirecionamento {APP_URL}/api/auth/google/callback. Sem elas, o botão do Google não aparece |
STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, STRIPE_PRICE_CREATOR, STRIPE_PRICE_PRO, STRIPE_PRICE_TOPUP | Cobrança. Sem elas, /planos mostra os planos como "em breve" |
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗