PTENES
música + portada + videoclip, por fases

Entra una frase. Sale música, portada y videoclip — contigo aprobando cada parte.

El plan de las tres partes se escribe antes de gastar un centavo. Lo lees, ajustas lo que quieras, apruebas parte por parte y solo entonces generas. La portada y el clip salen gratis con Agnes; solo la música consume créditos.

Músico en ensayo, luz ámbar — portada del proyecto musicavideo
Qué es

Planificar es barato. Ejecutar es caro.

Pedirle a un agente genérico «haz una canción sobre X» da como resultado cualquier pista, una portada que no tiene relación con ella y ningún clip. Las tres partes quedan desconectadas porque nunca hubo un plan común. Aquí, el plan es el producto.

📋 El plan va primero

Un plano.json de esquema cerrado decide junto con la estructura de la música, el concepto de la portada y el desglose del videoclip, consultando una base de estilos medidos a partir de material real (BPM, tono, instrumentación, tipo de voz).

🚦 Puerta por parte

Cada parte tiene su propio ciclo: ver → ajusta → ok → faz. Puedes parar después de aprobar la portada y volver tres días después: el estado.json retoma desde donde lo dejaste.

🔌 El motor es un dato, no código

Proveedor conectable con el patrón adapter + models.json declarativo. Sin clave, aparece no disponible con el motivo — nunca se dispara el costo al generar. Cambiar es una flag.

Cómo funciona

Cuatro fases y solo una cuesta

La investigación es opt-in. El plan es gratis. La ejecución es por partes, con el costo estimado en pantalla antes de cualquier llamada. La entrega es automática cuando las tres están listas.

investigación (opt-in)→ plan→ ok→ hace→ PACOTE.md

🔎 Fase 0 — investigación

Solo con --pesquisa. Consulta la web para ver referencias del nicho y si el tema tiene tracción; se convierte en pesquisa.md y se incorpora como contexto del planificador. Nunca sobrescribe lo que pediste.

📝 Fase 1 — plan

Costo cero de API de medios. Sale plano.json (el contrato) y PLANO.md (para que lo leas). La letra puede ser tuya: como borrador, termina y muestra el diff; como final, es ley y ni siquiera lo modifica.

🎛️ Fase 2 — ejecución

faz solo ejecuta lo que se aprobó. Si un proveedor falla, la ejecución no se detiene: esa parte pasa a ser erro con el mensaje y las demás siguen (exit 2).

planificado→ ok → aprobado→ hace → generando→ listo| error
Requisitos previos

Python de la distro y ffmpeg. Nada más.

Cero dependencias de pip: todo está en stdlib. Las claves se leen en tiempo de ejecución desde .env autorizados y nunca se copian al repo.

Sistema

python3 (3.10+) e ffmpeg, se usa para concatenar los shots del clip.

# Debian/Ubuntu
sudo apt install ffmpeg

Portada y clip — gratis

AGNES_API_KEY ofrece imágenes y videos a costo cero. Es el valor predeterminado de ambas partes y la razón por la que funciona en cualquier VPS.

# leída en tiempo de ejecución desde:
~/projetos/openpcbotv2/.env

Música — la parte de pago

KIE_API_KEY (Suno v4.5), ~US$ 0,08 por generación — que ya incluye dos pistas.

# leída en tiempo de ejecución desde:
~/projetos/wifi/.env
Guía de uso · paso a paso

Del texto suelto al paquete listo

Comandos reales. El camino normal tiene una puerta; al final está el atajo sin puerta para cuando confías en el plan.

1

Instalar

Clona y listo — no hay build ni pip install.

git clone https://github.com/inematds/musicavideo.git && cd musicavideo
2

Planificar (no cuesta nada)

Solicitud en texto libre. El plan de las tres partes sale junto, y el PLANO.md aparece en pantalla.

bash musicavideo.sh plano "música de virada, rock feminino, sobre quem constrói em silêncio e agora cobra"
3

Leer cada parte

Sin argumento, muestra el plan completo. Con la parte, solo muestra su sección: estilo y letra, concepto y prompt de la portada o el desglose shot a shot.

bash musicavideo.sh ver agora-eu-cobro           # el plan completo
bash musicavideo.sh ver agora-eu-cobro clipe     # solo el desglose
4

Ajustar lo que no quedó bien

Vuelve a planificar solo esa parte e imprime el diff de lo que cambió. Cuantas veces quieras: todavía no se generó nada.

bash musicavideo.sh ajusta agora-eu-cobro musica "mais lento, e o refrão sobe uma oitava"
5

Aprobar — la puerta

Parte sin ok no genera. Aprobar una no aprueba las demás.

bash musicavideo.sh ok agora-eu-cobro musica
6

Generar (aquí se gasta)

Muestra el costo estimado por parte y el total antes de llamar a cualquier API. Sin esa parte, ejecuta todo lo que esté aprobado. --sim omite la confirmación.

bash musicavideo.sh faz agora-eu-cobro musica
# costo estimado:
#   música   US$ 0.0800  (kie:suno-v4.5)
#   total    US$ 0.0800
# ¿confirmar? [s/N]
7

Trae tu propia letra

Como borrador, el planificador termina y muestra el diff. Con --letra-final, la letra va verbatim y nadie la modifica — ni el ajusta.

bash musicavideo.sh plano "sertanejo" --letra rascunho.txt
bash musicavideo.sh plano "sertanejo" --letra final.txt --letra-final
8

Sin aprobación, con límite de gasto

Planifica, aprueba las tres partes y ejecuta. El límite evita que te excedas: lo que alcanzó queda listo, el resto sigue aprobado y se reanuda con faz.

bash musicavideo.sh tudo "balada pop sobre recomeço" --teto 2 --sim
9

Cambia de motor

El motor está en el plan, nunca en el código. La flag sobrescribe en plano, ajusta o faz.

bash musicavideo.sh faz agora-eu-cobro clipe --motor clipe=kling:kling-2.5
10

Consultar el catálogo

Cada slug se convierte en una línea en el index.jsonl, se reescribe con cada cambio de estado. El catálogo crece con cada uso y alimenta al propio planificador.

bash musicavideo.sh lista 10
bash musicavideo.sh busca "rock"
bash musicavideo.sh custo agora-eu-cobro   # estimado vs. gastado
Del disco a la web

El clip listo no termina en tu máquina

Son dos paneles, y es a propósito. El panel local es la mesa de trabajo: ahí se escucha, se compara, se envía a la papelera y donde se aprueba lo que sale de la máquina. A vitrina es lo que ve el público. Publicar no es consecuencia de que esté listo: la producción lista es material de trabajo.

🎛️ El panel, siempre en funcionamiento

Un servicio de systemd mantiene el banco de trabajo en línea desde el arranque, en la red local. Quedarse sin servicio por olvidar ejecutar el comando es el defecto, no el ahorro.

systemctl --user enable --now musicavideo-painel

☁️ Un clic aprueba, un comando publica

O publica-hf sube solo lo que cambió, escribe el manifiesto en el repo de la vitrina y hace commit — publicar termina con el push, no a mitad del proceso.

bash musicavideo.sh publica-hf
# 0 producciones si nada cambió

📺 Alojamiento que no cuesta

Los archivos están en un dataset público en Hugging Face, que sirve range request — la barra del video navega directamente, sin proxy ni almacenamiento de pago. La vitrina solo lee el manifiesto.

bash musicavideo.sh likes   # vuelve el ♥ del público
Motores

Gratis por defecto, de pago por elección

Los valores predeterminados de portada y clip cuestan US$ 0 a propósito: eso permite que el proyecto funcione en cualquier VPS sin tener una cuenta en ningún lado.

🎵 Música

kie:suno-v4.5 — ~US$ 0,08 por generación, trae 2 pistas. La única parte de pago hoy.

🖼️ Portada

agnes:agnes-image-2.1-flash — US$ 0. Alternativa: inemaimg:flux2-klein, servidor local en el DGX.

🎬 Clip

agnes:agnes-video-v2.0 — US$ 0, los shots se concatenan con ffmpeg. Alternativas pagas: kling:kling-2.5 e fal:kling-video-v2.5-turbo-pro.

Agregar un proveedor requiere dos archivos: providers/<nome>.py implementando disponivel/estimar_custo/gerar, e providers/<nome>.models.json declarando modelos, costo y params aceptados. Nada más cambia en el proyecto.

# salida de un slug
~/projetos/output/musicavideo/<slug>/
├── plano.json      # el contrato
├── PLANO.md        # el mismo plan, para leer y aprobar
├── estado.json     # fuente de verdad: fases, costo, errores, historial
├── faixa.mp3  capa.png  clipe.mp4
├── PACOTE.md       # entrega (completa o parcial, con lo que falta)
└── raw/            # respuestas sin procesar de los proveedores
Hoja de ruta

Dónde está y qué viene

El núcleo está cerrado y probado. Lo que falta es amplitud de proveedores y el acabado del clip.

listo
Núcleo completoAprobación por parte, máquina de estados con reanudación, contrato cerrado, costo antes de gastar, límite, catálogo consultable y entrega en PACOTE.md.
listo
Agnes y Kie probadosPortada y clip se generan gratis con Agnes; música con Suno vía Kie.
por probar
Kling y falAdapters escritos y cubiertos por pruebas de contrato, todavía no probados contra la API real.
después
Posproducción del clipHoy los shots se concatenan sin grading ni mezcla con la pista. Sincronizar el clip y la música con el beat es el siguiente paso natural.
después
Integrar como skillO plano.json es un contrato cerrado precisamente para que otros proyectos lo consuman sin saber cómo se hizo.