¿Qué hace CarVendors Video Studio v4?
Habla con el usuario en bengalí corto y sencillo. Todo en los videos está en inglés del Reino Unido.
$CS = esta carpeta de habilidad (~/.claude/skills/carvendors-studio, Windows %USERPROFILE%\.claude\skills\carvendors-studio).
$PY = el Python de la habilidad: Mac ~/.cache/carvendors-studio/venv/bin/python, Windows
%USERPROFILE%\.cache\carvendors-studio\venv\Scripts\python.exe (creado por la instalación; tiene numpy + scipy).
0. Reglas inquebrantables
- Sin datos inventados. Precio, kilometraje, motor, año, "recién llegado", "vendido", financiación, economía, matrículas solo con evidencia. El texto antiguo de TikTok y los comentarios no son evidencia.
- Lo real sigue siendo real. Solo imágenes reales y fotos reales del concesionario; sin autos, personas, concesionarios ni letreros generados por IA.
- Marca: CarVendors.co.uk es la marca principal; "Concesionario destacado: B&F Cars" es secundario. CarVendors ayuda a las personas a encontrar/conectar con autos; no vende el auto. Ambas son nuestras empresas.
- Video completo, duración equilibrada: mantener TODO el video fuente en orden (sin cortes de escena). Añadir un gancho y un outro. Total ≈ fuente + 3-7 s. Recortar solo fotogramas negros/congelados/duplicados.
- Económico por diseño: usar la vía rápida (
batch.py+build.py). No escribir HTML de composición a mano, no re-analizar ganchos (el catálogo compartido los tiene), mirar UNA hoja de contacto por video. Preguntar solo cuando esté bloqueado. - Nunca imprimir ni copiar claves de API (
~/.config/video-studio/.env). Nunca sobrescribir una exportación (_v2,_v3…). - Si no está seguro de dónde está algo o de lo que el usuario quiere → ejecute
$PY $CS/tools/paths.py showy la carpeta de Drive de CarVendors (paths.py get carvendors— contiene todo el contexto: fuentes, logo, fotos del concesionario, banners, reseñas de clientes, vistas previas de estilo de texto), luego haga una pregunta corta.
1. Dónde están las cosas (automático, Mac + Windows)
$PY $CS/tools/paths.py show encuentra la unidad "My Drive" de Google Drive de este PC y lee la configuración del equipo
My Drive/Projects/CarVendors/_studio/config.json (rutas relativas a My Drive + valores predeterminados del equipo). Sin configuración cuando Drive está funcionando. Anulaciones para un PC: paths.py set <clave> <ruta> / paths.py drive <ruta de My Drive>.
Claves: car_sources (carpetas 1-200 con video.mp4, comments.txt, a veces Voice/), hooks, bgm, sfx,
fonts, logos, showroom_pics, text_refs, outros, exports (videos terminados para subir), studio
(catálogo compartido + registro), projects_root (carpetas de trabajo locales, ~/Projects/videos).
2. El bucle por lotes (predeterminado)
$PY $CS/tools/batch.py plan 1-20 # directorios de trabajo ~/Projects/videos/bnf-vNNN + borrador job.json + hoja de contacto + cajas de texto
→ para cada video: mirar work/qa/contact.jpg, editar job.json (§3), establecer "ready": true
$PY $CS/tools/batch.py render 1-20 # construye y renderiza cada trabajo listo, exporta a Drive, escribe el registro de ganchos
$PY $CS/tools/batch.py status 1-200
Un video a mano: $PY $CS/tools/build.py <job.json> (solo revisar) → opcional
npx hyperframes snapshot <job>/work/hf --at <t> → build.py <job.json> --render.
Trabajar en lotes de 10-20; después de cada lote, mirar las hojas de fotogramas (output/*_frames.jpg) antes del siguiente.
3. Qué decidir por video (el único trabajo de IA)
Desde la hoja de contacto + source_info + text_hint en job.json:
- slug: nombre corto del modelo, ej.
mitsubishi-asx. - Apariencia del texto: seguir
references/text-style.mdexactamente (las imágenes de vista previa entext_refs): texto Montserrat Black blanco, UN acento = píldoras/etiquetas rojo marca#E8202A, tarjetas blancas con texto carbón, verde solo para puntos/marcas pequeñas, logo limpio centrado arriba. Nunca cajas, píldoras o insignias carbón/negro sobre las imágenes. - Texto antiguo (cada caja
text_hint,src= píxeles fuente,canvas= 1080x1920 px), mejor opción económica: mantener (inofensivo, legible, alineado con la marca, ej. un nombre de modelo simple) → cubrir concovers[](text-cover, estilocard= tarjeta blanca + etiqueta roja, en coordenadascanvas, SIEMPRE con una línea, ej. etiqueta "DESTACADO" + "Visto en B&F Cars") cuando muestre precios, "TikTok", otros negocios, afirmaciones groseras o no verificadas → eliminar (remove[]= cajasrc, inpainting) solo si una cubierta ocultaría el auto. Nunca una cubierta vacía. - Superposiciones (0-3, solo en momentos clave, nunca sobre la cara/insignia/ruedas del auto):
label-carden la primera toma ·punch-text("Abarth icónico / [Estilo]", "Perfecto para / [Conducción Urbana]", "Deportivo / [Interior]") en tomas de detalle o interior ·hero-model("ABARTH / 595" grande) cuando el cielo esté vacío ·detail-line"En los / detalles." en un primer plano. Píldora = rojo marca siempre. Sobre nubes blancas / parabrisas brillantes: mover el texto olineBg0.35-0.5 (brillo suave, sin caja). Los tiempos están en segundos desde el inicio del video principal. - gancho: dejar
"auto"(el menos usado, no usado en las últimas N ediciones)."car_hook": truepara la carpeta de Ganchos de Auto. Un gancho con nombre:{"file": "Car Hooks/Car Flip.mp4", "in": 0, "out": 3.2}— acción completa, recortar solo tiempo muerto después del remate.transition:cut(predeterminado) ·whip·flash·zoom— exactamente uno. - voz: solo si existe
ready_voiceovery el usuario lo quiere; transcribir y verificar hechos primero. Todo lo demás (insignia de logo, música, outro, gradación) proviene de los valores predeterminados del equipo; anular solo por una razón.
Lista completa de campos: docstring de tools/build.py. Ejemplo: examples/job-v002.json.
4. Ganchos, outro, música compartidos (igual en todos los PCs a través de Drive)
$PY $CS/tools/hooks.py list|stats|pick <id>|sheet <name>|scan— catálogo de todos los ganchos (duración, pico de acción, entrada/salida sugeridos, tira de vista previa) y conteos de uso desde_studio/ledger/*.json. Ejecutarscandespués de añadir ganchos.- Outro: colocar el video de outro del equipo en la carpeta
outrosy establecerdefaults.outro_videoen_studio/config.json; cada nueva construcción lo usará. Hasta entonces: outro con foto real del concesionario (defaults.outro_photo). - Música: lista
defaults.musicen la configuración (pistas de la biblioteca, licencia verificada, línea de crédito en la publicación). Logo:defaults.logo(logo-badge, estiloclean, centrado arriba — el aspecto de referencia).
5. Antes de decir que un video está terminado
build.py informa hyperframes check — debe decir "Check passed" (corregir contraste por posición o lineBg).
Mirar la hoja de fotogramas: texto antiguo eliminado o cubierto, sin texto sobre el auto, logo legible, corte gancho → limpio.
Informar en bengalí: ruta(s) de salida, gancho usado, qué se cubrió/eliminó, cualquier bloqueo. Dar texto de publicación en
inglés del Reino Unido cuando se solicite (incluir la línea de crédito musical para pistas NCS).
6. Leer más solo cuando sea necesario
references/text-style.md— EL aspecto del texto (paleta, tipo, los siete elementos, colocación). Leer antes de las superposiciones.references/components.md— variables de cada componente (label-card, punch-text, text-cover, logo-badge, hero-model, detail-line, shape-text, verified-feature, caption-line, localized-contrast, outro-real-showroom).references/design.md— sistema de diseño completo, color, presets de tipo (PUNCH / CINEMATIC), escalera de texto antiguo, acabado de editor humano, gradación de color, marca/afirmaciones.references/audio.md— voz (ElevenLabstools/tts.py, modelo elegido por video, preaprobado para este trabajo), música/SFX, sonoridad.references/quality.md— puertas de calidad e historial.- Nuevos anuncios desde cero (historia + escenas de IA + voz): planificar primero con el usuario; mismas reglas,
build.pypara ensamblar.