Tú proporcionas un tema o un enlace (página/video). La skill detecta el tipo, decide la mejor acción de edición, elige un preset y emite plano-edicao.json + RESUMO.md — dato estructurado, independiente del renderer. El render opcional ya funciona: motion graphics + b-roll flux2-klein, local, sin clave de API.
# del input al plan input → detect → analyze → best action → preset → PLANO (json + resumo) → (opcional) render → MP4 # inicio rápido vpe scaffold "como fazer pão caseiro" --preset viral \ > plano-edicao.json vpe validate plano-edicao.json # guardrails vpe resumo plano-edicao.json # para aprobar
La edición programática está fragmentada (FFmpeg, Auto-Editor, MoviePy, Remotion, HyperFrames). Falta la capa que, a partir del lenguaje natural, decide qué hacer y genera un plan limpio y portable. Es esto.
Clasifica el input en topic, page o video, analiza la mejor acción de edición y registra el porqué en best_action_rationale.
EditPlan en JSON (pydantic) + RESUMO.md legible. Puede ser consumido por FFmpeg, HyperFrames, Remotion u otros sistemas.
Motion graphics con HyperFrames + b-roll generado con flux2-klein. Local, determinístico, sin clave de API.
5 presets de estilo (acción · suave · promo · ventas · viral) son perfiles de parámetros sobre el mismo schema — cambiar el preset modifica el ritmo, las transiciones, la pista de audio, los subtítulos y el aspect sin reescribir el plan base.
El núcleo (generar el plan) es solo Python. El render es opcional y necesita el stack local de motion graphics.
Instálalo en modo editable; expone el console script vpe.
python3 -m venv .venv && . .venv/bin/activate pip install -e ".[dev]"
La skill orquesta el vpe y completa la línea de tiempo creativa en lenguaje natural.
# https://claude.com/claude-codeSolo para renderizar: HyperFrames (Chrome+FFmpeg), Kokoro (narración) y flux2-klein (b-roll).
# ver knowledge/render.mdComandos reales de vpe. La skill (vía SKILL.md) completa la timeline entre el scaffold y la validación.
Crea el entorno y expone el comando vpe.
pip install -e ".[dev]" # expone `vpe`
vpe detecta el input (tema/página/video) y aplica el preset elegido.
vpe scaffold "como fazer pão caseiro" --preset viral > plano-edicao.json
Guion/escenas para un tema o una página; source_in/out (cortes reales) para video. Mira examples/.
# timeline: hook → point → ... → cta (cada beat con headline/narración/subtítulo)
Restablece los [error] antes de cualquier render (línea de tiempo vacía, sin hook, etc.).
vpe validate plano-edicao.json # exit 0 = ok
Documento legible con fuente, objetivo, preset y la timeline beat a beat. El render es opcional, bajo pedido.
vpe resumo plano-edicao.json > RESUMO.md
Plan completo de ejemplo en examples/exemplo-viral-pao.json.
// vpe scaffold "https://youtu.be/..." --preset viral "source": { "kind": "video", ... }, "style": { "preset": "viral", "pacing": { "avg_cut_seconds": 1.1, "energy": 0.95 }, "captions": { "style": "karaoke" } }, "output": { "aspect": "9:16", "duration_target_seconds": 30 }
Input de YouTube clasificado como video; el preset aplicó cortes de ~1.1s, subtítulos karaoke y 9:16. La timeline nace vacía.
# Pan casero en 20s - Objetivo: viral - Preset: viral (corte ~1.1s, energia 0.95) - Saída: 9:16, alvo 20s 1. hook Headline: Pão em 20 segundos?! 2. point Headline: 3 ingredientes 3. cta Headline: INEMA.CLUB
El mismo plan se convierte en un Markdown legible con la línea de tiempo beat a beat.
Schema del plan: meta · source · intent · style · output · timeline[] · render. Se integra con el MDD para la dirección cinematográfica de los beats generativos.
vpe. 35 pruebas..otio para NLE.