Montar reels
Sistema de edición en {{REPO}}. Todos los comandos se lanzan desde {{REPO}}\scripts con el Python del
entorno: {{REPO}}\.venv\Scripts\python.exe. Las rutas (trabajo, CapCut, fuentes, colores) salen de
{{REPO}}\config.json; no escribas rutas a mano en los scripts.
Antes de editar NADA
- Lee
{{REPO}}\mi-estilo\estilo.md(lo que el usuario quiere) y, si existen,mi-estilo\aprendido.md(lo que se aprendió de sus reels) ymi-estilo\referencias.md(lo que se aprendió de su cuenta fantasma). Mandan sobre las reglas por defecto de abajo. Si chocan entre sí, mandaestilo.md. - Si
estilo.mdestá vacío y es la primera vez, ofrece rellenarlo con 5-6 preguntas cortas (tema, duración, subtítulos, color, música). No bloquees: si no quiere, usa los valores por defecto.
Cómo se trabaja (no negociable)
- Uno a uno y con su OK. Presenta una pieza, espera su export o su "siguiente", corrige y solo entonces pasa a la siguiente. Nunca despaches varias de golpe.
- Cada pieza pide sus recursos. El lenguaje es común (colores, tipografía, subtítulos); los recursos (rótulos, B-roll, zooms, palabra detrás) se deciden por frase. No repitas el mismo truco en dos piezas seguidas.
- Reaprovecha lo que ya gustó. Si una pieza estaba bien, déjala igual y retócala solo en lo repetido o en lo roto.
- Fallo de diseño que veas, avísalo. No des nada por bueno sin mirar el export.
Proceso (una toma)
| Paso | Comando | Qué deja |
|---|---|---|
| 1. Limpiar | python limpiar.py <toma.mp4> | <toma>-limpia.mp4 |
| 2. Transcribir | python transcribir.py <toma>-limpia.mp4 | trabajo/transcripciones/tx (medium) y tx2 (turbo) |
| 3. Cortar | python cortes.py <toma>-limpia.mp4 | trabajo/<toma>-limpia/CORTE.mp4, CORTE.txt, tramos.json |
| 4. Revisión del corte | el usuario mira CORTE.mp4 (lleva el segundo ORIGINAL en una esquina) | |
| 5. Corregir | python cortes.py <toma>-limpia.mp4 --fuera "17-45.5,53-58.6" | nuevo corte |
| 6a. Final sin CapCut | python subtitular.py <toma>-limpia.mp4 --clave "palabra1,palabra2" | FINAL.mp4 |
| 6b. Proyecto CapCut | python montar_reel.py spec.json | proyecto editable en CapCut |
| 7. Música | python anadir_musica.py <proyecto> <musica.mp3> <vol> <desde_s> | pista de música bajo la voz |
| 8. Export | lo hace el usuario en CapCut (no se puede automatizar) | |
| 9. Revisar | python revisar_volumen.py <final.mp4> | volumen y <final>-hoja.jpg con la zona segura |
| 10. Portadas | a partir de un fotograma real (ver abajo) |
- En el paso 3, lee
CORTE.txt: lista posibles repeticiones (frases dichas dos veces). Propón quitar la primera versión con--fuera, pero que decida el usuario mirando el vídeo. - Con guion es mucho mejor. Antes de cortar, pregunta si tiene el guion. Si existe
<toma>.guion.txtal lado del vídeo (una frase por línea; si usa un panel de contenido, puede descargarlo desde allí),CORTE.txttrae "CONTRA EL GUION": las líneas dichas varias veces (propón quedarse con la última toma), las frases que se salen del guion (posibles sobrantes o arranques fallidos) y las líneas que no se han dicho. Propónlo, no lo apliques solo. - Además, léelo tú. Las listas de
cortes.pysolo ven repeticiones casi literales (medido en 4 tomas reales: encuentra el 27 % de lo que el usuario quitó a mano). Tras lanzarlo, lee tú la transcripción de medium palabra a palabra con sus segundos (<transcripciones>/tx/<toma>.json, y el guion si lo hay) y marca los rangos que sobran para quedarse con UNA pasada limpia de cada idea, normalmente la ÚLTIMA vez que la dice entera: arranques fallidos, frases repetidas aunque sea con otras palabras, "me he liado". Nunca quites algo que solo se dice una vez. Medido con las mismas 4 tomas, leer así encontró el 83 % de lo quitado a mano, pero también propuso quitar algo bueno (21 s de 135 s que se quedaban): por eso SIEMPRE se enseña como propuesta en el vídeo de revisión, con--fuera, y decide el usuario. - "Quita de X a Y" usa siempre segundos del ORIGINAL (los que se ven en la esquina del CORTE), no del vídeo cortado.
- Mira tú la hoja de fotogramas (
Readsobre el.jpg) antes de decir que está bien: nada importante por encima de la raya roja de arriba (y 288), por debajo de la de abajo (y 1267) ni a la derecha de la amarilla (x 930). - Para el spec de
montar_reel.py, el molde es{{REPO}}\ejemplos\spec_ejemplo.py(un reel real con todos los recursos y los estilos ORGANICO / ANUNCIO). Claves mínimas:nombre,video,fin,palabras,palabras_subt,tramos(ofuera) ypiezas_dir. - Para retocar un proyecto de CapCut ya montado sin rehacerlo:
anadir_musica.py,anadir_sonido.py,cambiar_clip.py,podar_sonido.py.
Reglas por defecto (medidas en una tanda real de 10 reels)
- Corte: se conserva desde 0,10 s antes de la primera palabra hasta 0,18 s después de la última; dos tramos se unen
si el hueco es menor de 0,55 s. Si existe
mi-estilo/aprendido.json,cortes.pyusa sus valores. - Audio: highpass 80 Hz + eq suave a 3,2 kHz + loudnorm en dos pasadas (-15 LUFS, pico -2). Sin compresor ni reductor de ruido: suben el ruido de fondo.
- Subtítulos: MAYÚSCULAS, blanco con borde negro, palabra clave en el color
color_clavede config, bloques de 1 a 3 palabras y máximo 14 letras. - Rótulos: PNG 1080x1920, blanco + palabra en el color clave, sombra dura, al 88 % (que respiren).
- Rótulo y subtítulo nunca se pisan. En orgánico el subtítulo baja (
subt_y_bajo-0,37); en anuncio el rótulo sube y el subtítulo baja a -0,255 (sin pasar de y 1267). Si la capa ocupa la parte baja, el subtítulo se oculta. - Jerarquía (línea pequeña + palabra clave grande) en dos textos separados: si se mezclan tamaños en uno, CapCut los descoloca.
- Multicámara falso: tramos alternos al 130 % y zooms al 138 % en las frases fuertes.
- Zona segura de anuncio de Instagram: útil y 288-1267, botones a la derecha a partir de x 930. Orgánico: 250 / 420. Las tarjetas pequeñas de B-roll van a la izquierda, a la altura de los ojos (escala 0,22, x -0,60, y 0,30): a la derecha tapan la cara o caen bajo los botones.
- Pocos efectos de sonido y con motivo (golpe en el rótulo, tic en las listas). Más de una docena en un reel sobra. Ningún efecto puede pasar del final del vídeo.
- Música libre para promocionar: Pixabay o Mixkit. Volumen 0,06-0,07 con Pixabay y 0,13-0,14 con Mixkit (las de Pixabay suenan unos 7 dB más fuerte). Nada de himnos ni canciones famosas: Meta bloquea el anuncio.
- B-roll solo de Pexels (
herramientas/pexels_buscar.mjs, necesitaPEXELS_API_KEYen{{REPO}}\.env). Música y efectos de Mixkit o Pixabay. Nunca uses material de otras cuentas en el vídeo final.
Trampas conocidas
- CapCut abierto pisa los cambios: su autoguardado sobrescribe lo que escribe
montar_reel.py. Pide al usuario que cierre CapCut ANTES de montar, y que lo reinicie para ver el proyecto nuevo (no ve proyectos nuevos en caliente). - Exportar desde CapCut es manual: no se puede automatizar. Si el usuario no quiere CapCut, usa
subtitular.py. - Nada importante detrás de la cabeza: la tapa. Ponlo delante, a la altura del pecho y grande.
- Si existe la carpeta del proyecto destino, VectCutAPI la borra: usa siempre un nombre nuevo (
-v2,-v3). - Para limpiar proyectos de CapCut: mueve, no borres, y solo con CapCut cerrado.
- Los botones de CapCut no son accesibles a la automatización. No hagas clics a ciegas: pide al usuario que abra él el proyecto.
- En la revisión del export, mide dónde cae el texto en píxeles: una captura a mitad de animación engaña.
- El final de la toma, cuando la mano va al móvil o al teleprompter, no se detecta bien: revísalo a ojo y corta con
--fin. - Las muletillas no se quitan solas. Los subtítulos pueden traer errores de transcripción: léelos antes de entregar.
- La primera transcripción descarga los modelos de Whisper (varios GB): avisa de que tarda.
Portadas
- Su fotograma real entero, luminoso y con su fondo. Nunca la persona recortada y pegada sobre otro fondo ni fondos oscuros.
- La frase clave en caja de color con letra del color de marca, una línea en blanco encima y, si acaso, una etiqueta pequeña.
- El bloque de texto debajo de la barbilla y entero dentro del recorte 3:4 de la rejilla del perfil (y 240-1680).
- Hazlas con Pillow y
rotulos_lib.py(fuentes y colores deconfig.json). Si se usa IA para mejorar el gesto, se entregan las dos versiones y la de IA lleva la etiqueta "Hecha con IA" de Meta.
Personalización
A. Su estilo escrito: mi-estilo/estilo.md
Plantilla para que el usuario diga cómo quiere sus reels. Cada vez que el usuario corrija algo ("no cortes tan
pegado", "la clave siempre en rojo", "más rápido"), añádelo en "Correcciones aprendidas" de estilo.md con la fecha,
y aplícalo desde ese momento. Si la corrección es un número (aire, hueco, tamaño, color), cámbialo también en
aprendido.json o en config.json.
B. Aprender de sus reels
Cuando diga "aprende de mis reels" o "aprende cómo edito":
- Pide que copie a
mi-estilo/mis-reels/entre 3 y 10 reels suyos ya publicados (los.mp4exportados). python analizar_reels.py mis-reels->mi-estilo/mis-reels.json(duración, segundos por plano, palabras por segundo, volumen, gancho de los 3 primeros segundos, cierre) y una hoja de fotogramas por vídeo.- Mira las hojas (
Readde cada*-hoja.jpg): tamaño, posición y color de los subtítulos, si usa rótulos, B-roll, zooms, encuadre. - Si tiene proyectos de CapCut donde corrigió a mano un corte automático, compáralos:
python aprender_corte.py <toma-limpia.mp4> <proyecto_capcut> [...]->mi-estilo/aprendido.json(aire antes y después de cada corte y huecos que no corta).cortes.pylo usa automáticamente. - Escribe
mi-estilo/aprendido.md: lo medido (con los números) y lo visto en las hojas, en reglas concretas ("subtítulos a media altura, 2 palabras, amarillo"). No inventes: si algo no se ve, no lo pongas. - Enséñale el resumen y pregúntale si se reconoce. Lo que diga que no, se quita.
C. Cuenta fantasma (reels de referencia)
Cuando diga "analiza esta cuenta", "cuenta fantasma" o "quiero editar como este":
- Que pegue los enlaces de los reels en
mi-estilo/referencias.txt(uno por línea). python referencias.py: los descarga con yt-dlp ami-estilo/referencias/y lanza el análisis (mi-estilo/referencias.json+ hojas).- Mira las hojas y escribe
mi-estilo/referencias.md: qué hace esa cuenta (ritmo, gancho, subtítulos, rótulos, cierre) y qué de eso choca conestilo.md, para que el usuario elija. - Las referencias son un mapa, no una plantilla: se copia la estructura (ritmo, tipo de gancho), nunca el texto, la música ni las imágenes de otra cuenta.
Reglas de la cuenta fantasma:
- Los vídeos descargados son solo para analizarlos en este ordenador. No se suben, no se republican y no salen de
mi-estilo/referencias/(está fuera de git). - Nunca inicies sesión en Instagram ni pidas la contraseña del usuario. Si un enlace pide sesión, se salta.