Edición Limpia en Premiere
Toma uno o más archivos de vídeo sin procesar y conviértelos en vídeos terminados y exportables:
corta los silencios y las palabras de relleno, corrige el color, añade subtítulos listos para
incrustar y exporta tanto una versión horizontal como una vertical, todo ello manejando
Adobe Premiere Pro a través de las herramientas MCP premiere-pro, con claude-video-vision
realizando el análisis de audio que Premiere no puede hacer sin interfaz gráfica.
Premiere Pro debe estar abierto en el equipo con el servidor MCP premiere-pro
conectado y el panel MCP Bridge (CEP) iniciado (Ventana → Extensiones)
— este skill no puede lanzar la aplicación. Ejecuta el skill setup del kit si el servidor no
está instalado. Si herramientas como create_sequence no aparecen directamente, el servidor las
está ocultando tras search_tools / invoke_tool: úsalas, o vuelve a registrar el servidor
con PREMIERE_MCP_TOOLSET=full. Si alguna llamada a la herramienta mcp__premiere-pro__*
falla con un error de conexión, dile al usuario que abra Premiere Pro y
reintente, en lugar de buscar soluciones alternativas.
Por qué son dos MCP, no uno
premiere-pro puede cortar, etalonar y exportar, pero no tiene forma de decidir dónde
cortar. No hay detección de silencios ni herramienta de transcripción en ese servidor.
claude-video-vision con video_analyze llena ese vacío: ejecuta detección de silencios con ffmpeg
y transcripción local con whisper (con marcas de tiempo a nivel de palabra) en el archivo crudo
antes de que toque Premiere. La lista de cortes se calcula una vez, en
datos planos, y luego se ejecuta como una secuencia de llamadas MCP. No intentes calcular los puntos de corte a ojo desplazándote por la línea de tiempo de Premiere — no tienes una audición precisa de fotogramas, el análisis lo hace.
Dos tipos de edición — elige antes de empezar
- Basada en diálogo (cabeza parlante, grabación de pantalla, voz en off): sigue el Pipeline a continuación — cortar silencios y relleno, y los subtítulos son el trabajo.
- Montaje / B-roll (recorrido de habitación, paseo, metraje de viaje — sin diálogo que guíe el corte): omite los pasos de silencios y relleno y sigue el pipeline de Montaje más abajo. Subtítulos opcionales; la música y el ritmo son el trabajo.
Ambos tipos terminan con el House Style a continuación. En caso de duda sobre qué tipo es: si el audio no transmite la historia, es un montaje.
House Style (apariencia predeterminada para redes sociales)
Estos valores predeterminados provienen de comparar un ensamblaje automático con un corte final hecho a mano. Un primer corte que los ignore generalmente se rehace a mano. Si la usuaria tiene su propio estilo o un vídeo de referencia que le guste, su gusto prevalece: pregunta, y ajusta estas reglas para que coincidan.
- Enmarca con la toma de marca/establishing más fuerte — abre con ella como una tarjeta de título Y cierra con ella. El orden narrativo supera al orden cronológico; un letrero de marca o una toma principal superan a "el clip que ocurrió primero".
- Corta sin piedad. Un ritmo por escena, ~3–6 segundos cada uno, solo el mejor momento — nunca el clip completo. Un corte de referencia bueno mantuvo 46s de 80s de material utilizable. Apunta a ~45–60s en total para entregables sociales.
- Descarta el material débil por completo — caminatas temblorosas, inicios torpes. Si un clip necesita una disculpa, no se incluye.
- Alterna planos generales con primeros planos de detalle — general de la habitación → pomos de la cocina, general del dormitorio → textura del cabecero. Detalles entre las tomas de establishing.
- Transiciones con encadenado entre escenas, no cortes secos. Cortes secos solo para énfasis deliberado (un buen corte de referencia tiene uno, quizás dos).
- Audio con música primero para montajes. Pista musical continua (~-11 LUFS), sin silencio; el audio original de la cámara/ambiente se elimina o se sepulta por completo, no solo se atenúa. Si no se proporciona ninguna pista, pide una o deja la línea de tiempo silenciada y márcalo — nunca envíes audio ambiente sin procesar.
- Entrega vertical primero: 1080×1920, 30fps, H.264 ~12 Mbps es la entrega principal incluso desde fuente 4K60. La horizontal es la opción adicional, no al revés.
Para clips de storytime/UGC (un momento real con diálogo — un encuentro, una reacción, una interacción espontánea), añade cuatro reglas además de las anteriores:
- Apertura en frío con el momento viral. Coloca el primer plano más impactante de 2–4s de la mitad del encuentro en 0:00, luego retrocede y cuenta la historia desde el principio. El orden cronológico es el modo de fallo básico aquí — nunca abras con la introducción/contexto.
- Deja espacio para un gancho narrado. Los creadores suelen grabar una línea de voz en off dirigiéndose directamente a la cámara sobre la apertura en frío ("Sé que probablemente os estáis preguntando por qué…"). La edición no puede generar esto — construye la apertura en frío, luego marca que el gancho de VO necesita grabarse (o pídelo) en lugar de enviar sin uno.
- Termina con la tarjeta de marca. Si la usuaria tiene una marca, producto o handle para promocionar, cierra con una tarjeta final corta (~3–5s) con ello. Pide su logotipo o handle; nunca inventes uno.
- Ecualiza el diálogo (~-16 LUFS, rango estrecho) en lugar de poner una pista musical — para storytime, el discurso es lo principal; para montaje, la música lo es.
Pipeline
Ejecuta estos pasos en orden. Para un lote de clips (ej. grabaciones de una semana), repite los pasos 2–8 por clip dentro de un mismo proyecto de Premiere compartido.
1. Confirma las entradas
Pregunta (o infiere del contexto) por: la(s) ruta(s) del archivo crudo, y si esto es una sola entrega o necesita tanto una exportación horizontal (estilo LinkedIn, 16:9) como vertical (Threads/TikTok/Reels, 9:16). Si la usuaria no lo dice, por defecto exporta ambos — reencuadrar es barato una vez que la edición está bloqueada.
2. Obtén datos de la fuente con ffprobe
ffprobe -v error -select_streams v:0 -show_entries stream=width,height,r_frame_rate \
-show_entries format=duration -of json "<archivo-crudo>"
Necesitas width, height, r_frame_rate (analiza la fracción, ej. 30000/1001 ≈ 29.97),
y duration. La secuencia que crees en Premiere debe coincidir con estos —
una configuración de secuencia no coincidente provoca un escalado/adaptación de velocidad de fotogramas silenciosa que
degrada la calidad.
3. Analiza el audio — silencios + transcripción
Llama a mcp__claude-video-vision__video_analyze en el archivo crudo con
filters: {silence: true, transcription: true}. Esto devuelve intervalos de silencio
y una transcripción a nivel de palabra (whisper se ejecuta localmente via whisper.cpp —
no se necesita clave API, la primera ejecución puede tardar un minuto en cargar el modelo).
Guarda el resultado en un archivo JSON — lo usarás para alimentar el script de lista de cortes a continuación.
4. Calcula la lista de cortes
Ejecuta scripts/build_cutlist.py en el JSON del análisis:
python3 "<ruta-del-skill>/scripts/build_cutlist.py" analysis.json \
--duration <duración-ffprobe> --srt-out captions.srt
Este script existe porque hacerlo bien a mano es propenso a errores de una manera específica: cada marca de tiempo de subtítulo después de un corte debe desplazarse por la duración acumulada de todo lo eliminado antes, o los subtítulos se desincronizan. El script maneja eso, más la lógica de combinación/relleno para los espacios de silencio, de modo que un corte nunca caiga a mitad de palabra.
Corta automáticamente tres cosas: espacios de silencio ≥0.35s (con un relleno de 0.08s para que el habla no se
corte), palabras de relleno duras (um, uh, er y variantes), y tartamudeos/falsos
inicios (repeticiones inmediatas de palabras como "el el"). Deliberadamente no
corta los rellenos suaves (like, so, right, you know, actually) — esas suelen ser
la voz real de alguien, no ruido. Comentarios reales de ediciones UGC pasadas: una improvisación como "¿sabes lo que te digo?" se marcó como el
elemento más auténtico del lote y se mantuvo explícitamente, no se recortó. El
script muestra estos en flagged_for_review con contexto — revisa esa lista
y solo escala a la usuaria si algo parece un relleno genuino en lugar de voz/personalidad;
ante la duda, déjalo.
5. Construye el proyecto de Premiere y el corte bruto
create_project(oopen_projectsi se reutiliza uno) ycreate_sequencecon la configuración que coincida con la salida de ffprobe (paso 2).import_mediael archivo crudo,add_to_timelineen el tiempo 0 en la pista 0.- Recorre el array
cutsde la lista de cortes en orden descendente de tiempostarty para cada uno:razor_timeline_at_timeal inicio y final del corte, luegoremove_from_timelineen el clip intermedio resultante condeleteMode: "ripple". El orden descendente importa — eliminar con ripple un corte anterior desplaza cada marca de tiempo posterior, por lo que si avanzas hacia adelante los puntos de corte restantes del paso 4 ya no coinciden con nada. - Confirma que la duración de la secuencia ahora coincide aproximadamente con
new_durationdel JSON de la lista de cortes.
6. Corrige el color
Aspecto predeterminado (la usuaria pidió limpio/natural, no un etalonaje estilizado): corrige
el balance de blancos, suaviza los reflejos duros, levanta ligeramente las sombras aplastadas,
saturación modesta. No puedes hacer esto a ciegas — los parámetros de color_correct
son controles deslizantes manuales sin detección automática detrás. Por lo tanto:
export_frameun fotograma representativo (unos segundos después del inicio, más allá de cualquier introducción).- Míralo. Evalúa el balance de blancos (los tonos de piel no deben verse naranjas o azules), la exposición (¿hay algo recortado/aplastado?) y el contraste.
- Aplica ajustes modestos de
color_correcten el clip de la línea de tiempo — pequeños empujones (valores de un solo dígito), no cambios drásticos. La corrección natural debe apenas notarse como "corrección", solo como "esto se ve bien". export_framede nuevo y compara. Itera una o dos veces si algo sigue fuera de lugar; no bucles infinitamente persiguiendo la perfección en un solo fotograma.
Si la usuaria tiene un LUT .cube/.3dl que quiera aplicar en lugar de/en
adicón a la corrección manual, usa apply_lut con una intensity
baja a moderada (0.5–0.8) sobre la corrección base en lugar de en lugar de ella — un LUT
no solucionará un problema real de balance de blancos, solo lo recoloreará.
7. Subtítulos
import_mediaelcaptions.srtescrito en el paso 4.create_caption_tracken la secuencia, apuntandoprojectItemIdal SRT importado.
Esto solo funciona porque el paso 4 ya reajustó los tiempos del SRT a la línea de tiempo post-corte — si regeneras los subtítulos a partir de las marcas de tiempo originales (pre-corte) de la transcripción aquí, estarán desincronizados con el vídeo editado.
8. Reencuadra para la segunda relación de aspecto
Reencuadrar recorta dentro del fotograma existente usando seguimiento de movimiento — funciona bien yendo de más ancho a más estrecho (16:9 → 9:16) pero no hay datos de fotograma reales para inventar yendo de más estrecho a más ancho (9:16 → 16:9 requeriría expansión generativa que el auto-reencuadre de Premiere no hace). Por lo tanto:
- Grabado horizontal →
auto_reframe_sequenceconnumerator: 9, denominator: 16para la exportación vertical. Este es el caso común y funciona bien. - Grabado vertical → si se necesita realmente una versión horizontal, díselo a la usuaria en lugar de rellenar/difuminar los lados silenciosamente; una regrabación o una exportación con bandas negras suele ser mejor opción que un mal reencuadre de IA.
9. Exporta
Los entregables sociales finales son H.264 1080p, no ProRes — esto es una
exportación terminada, no una transferencia de Premiere a Premiere. export_sequence cada versión:
- Horizontal:
format: "h264"(o"mp4"),resolutioncoincidiendo con la fuente,quality: "high". - Vertical (de la secuencia reencuadrada): misma configuración, 1080×1920.
Convención de salida cuando la usuaria no ha especificado una ruta: crea una carpeta edited/
junto al(los) archivo(s) fuente crudo(s) y nombra las salidas
<nombre-fuente>-final.mp4 (horizontal) y <nombre-fuente>-vertical.mp4.
save_project antes de terminar.
10. Informa
Dile a la usuaria: qué se cortó (recuentos por motivo — silencio/relleno/tartamudeo),
cualquier cosa de flagged_for_review que dejaste y por qué, qué cambió la corrección de color,
y dónde quedaron los archivos exportados. No te limites a decir "hecho"
— este es su material; deben saber qué se tocó.
Pipeline de Montaje (material sin diálogo)
- Mira cada clip fuente antes de que toque la línea de tiempo —
video_watcha 1fps como mínimo. No deduzcas el contenido de los nombres de archivo, miniaturas o resúmenes de carpetas anteriores: un clip de "solo habitación" puede terminar con la persona visible en un espejo (esto pasó — dos clips de baño estaban limpios hasta los últimos segundos). Mientras miras, anota el mejor 3–6s de cada clip y los puntos de corte exactos. - ffprobe a todos los clips (paso 2 del Pipeline). Crea la secuencia para que coincida con los fps de la fuente — los clips a 60fps obtienen una secuencia a 60fps. La configuración de la secuencia no se puede cambiar después de la creación (ver errores de MCP), así que hazlo bien primero.
- Ensambla en orden narrativo según el House Style: toma de marca → generales alternando con detalles → tomas de vista principal → toma de marca de nuevo.
- Recorta cada clip a su ritmo anotado: añade el clip completo en su lugar, corta con razor en
el límite de lo que se conserva, elimina con ripple el resto — pasando tanto
videoTrackIndicescomoaudioTrackIndices, luegolist_sequence_trackspara confirmar que las longitudes de las pistas de vídeo y audio siguen coincidiendo. Las colas de audio huérfanas desincronizan silenciosamente todo lo que está después. - Añade encadenados en cada límite de escena (
add_transition_to_clip). - Pista musical según House Style; elimina el audio de la cámara.
- Exporta vertical primero (1080×1920, 30fps, h264, alta calidad). Solo haz una versión horizontal si se pide.
Errores conocidos del MCP de premiere-pro (verificado en agosto de 2026)
trim_clipno-op silenciosamente — devuelve éxito, no cambia nada (con o sinduration). Nunca lo uses; corta con razor + elimina con ripple.export_frameignoratime— siempre devuelve el primer fotograma de la secuencia, independientemente del código de tiempo que pidas. Inútil para comprobar un momento específico o etalonar un clip en mitad de la secuencia; extrae fotogramas del archivo fuente con claude-video-vision. También añade su propia extensión (x.png→x.png.png), así que pasa unoutputPathsin extensión.razor_timeline_at_timecon solovideoTrackIndicesaún corta todas las pistas de audio — y las eliminaciones con ripple solo de vídeo dejan audio huérfano atrás. Siempre pasaaudioTrackIndicesexplícitamente y verifica la sincronización después.set_sequence_settingsno puede cambiar fps/tamaño después de la creación — crea una nueva secuencia con la configuración correcta y elimina la antigua.- Las llamadas MCP pueden agotar el tiempo de espera pero aún así tener éxito (
create_sequencelo hizo). En un tiempo de espera, compruebaget_project_info/list_sequencesantes de reintentar — los reintentos ciegos crean duplicados. export_sequencepuede informar éxito y no escribir nada — confirmado dos veces (con y sin extensión de archivo enoutputPath); también repite `format: "Pro... [truncado para la traducción]