https://github.com/juninmd/shorts-generator
Automated YouTube Shorts generator — AI-powered viral clip extraction with Whisper, GPT-4o, and FFmpeg
https://github.com/juninmd/shorts-generator
Last synced: 4 days ago
JSON representation
Automated YouTube Shorts generator — AI-powered viral clip extraction with Whisper, GPT-4o, and FFmpeg
- Host: GitHub
- URL: https://github.com/juninmd/shorts-generator
- Owner: juninmd
- Created: 2026-03-02T11:25:47.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2026-07-22T01:03:04.000Z (6 days ago)
- Last Synced: 2026-07-23T10:18:11.376Z (5 days ago)
- Language: TypeScript
- Size: 28.4 MB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
- Roadmap: ROADMAP.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Shorts Generator
Painel de controle para geração e publicação de shorts por canal, com persistência em PostgreSQL, tokens criptografados por canal e interface admin dedicada.
## Fluxo Atual
- Cluster operacional: defina `CHANNEL_FLOW_MODE=cuts` e `VITE_CHANNEL_FLOW_MODE=cuts` para bloquear runs/criação de `quiz`; fora do cluster, `quiz` segue disponÃvel.
- Backend API: `pnpm start` sobe o Hono em `http://localhost:3001`.
- Admin web: `pnpm web:dev` sobe a interface Vite para gerenciar canais, focos, fontes e disparar runs.
- Banco: o control plane roda migrations automaticamente quando `ADMIN_API_TOKEN`, `DATABASE_URL` e `CONTROL_PLANE_ENCRYPTION_KEY` estão definidos.
## Variáveis Obrigatórias do Control Plane
```env
PORT=3001
DATABASE_URL=postgres://user:password@localhost:5432/shorts_generator
ADMIN_API_TOKEN=troque-este-token
ADMIN_ALLOWED_ORIGINS=http://localhost:5173
CONTROL_PLANE_ENCRYPTION_KEY=base64-da-chave-de-32-bytes
CONTROL_PLANE_ENCRYPTION_KEY_VERSION=v1
```
## Comandos Verificados
```bash
pnpm test
pnpm build
pnpm bootstrap:control-plane
pnpm --dir web run test
pnpm --dir web run build
```
## Bootstrap Local
`pnpm bootstrap:control-plane` cria um canal inicial de desenvolvimento sem gravar token em texto puro. Depois disso, abra a UI admin, salve as credenciais do canal de publicação e dispare o run pelo painel.