Communitygithub.com

alyshadotmd/video-editing

Añade subtítulos incrustados a un video vertical (9:16) de una persona hablando: sincronización exacta de palabras, una palabra a la vez o fragmentos cortos divididos por significado, con la tipografía Figtree Bold en blanco con contorno y una palabra resaltada opcional, colocados en el área segura lejos del rostro y el titular. Diseñado para Claude Code y Runneth. Se usa después del encuadre y el titular, cuando alguien pide subtítulos o palabras en pantalla.

¿Qué es video-editing?

Esta habilidad para agentes de IA (como Claude Code y Runneth) automatiza la creación de subtítulos incrustados (burned-in captions) en videos verticales de formato 9:16, típicos de redes sociales como Reels, Stories y TikTok. Su objetivo es generar subtítulos que un espectador lea sin esfuerzo: cada uno es un fragmento corto y completo de significado, con sincronización exacta de palabra, ubicado siempre en el mismo lugar del video. El flujo de trabajo incluye transcripción con timings precisos (usando faster-whisper), división inteligente en fragmentos según el significado (para evitar cortes incómodos), aplicación de estilo tipográfico (Figtree Bold, blanco con contorno negro, sin caja ni sombra) y colocación automática en el área segura, por debajo de la barbilla y evitando la superposición con el titular o el rostro. También ofrece la opción de resaltar la palabra que se está diciendo en un color diferente (modo karaoke). La habilidad está optimizada para Claude Code (requiere las herramientas del skill video-editing-setup) y para Runneth (donde ya vienen instaladas).

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/alyshadotmd/video-editing/tree/HEAD/skills/captions

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Subtítulos

El objetivo: subtítulos que un espectador lea sin esfuerzo. Cada uno es un fragmento corto y completo de significado, sincronizado con la palabra exacta, situado en el mismo lugar durante todo el video.

Este es el paso 5 del orden de edición: corte del material principal (a-roll), material de apoyo (b-roll), encuadre, titular, subtítulos. Se ejecuta sobre el video encuadrado, después del titular, para que los subtítulos no estorben al titular.

Esta habilidad está diseñada para Claude Code y Runneth.

Antes de empezar: las herramientas

En Runneth, ya está todo instalado: sáltate esta sección.

En Claude Code, esta habilidad necesita las herramientas de video gratuitas que instala la habilidad video-editing-setup. Comprueba silenciosamente que ~/.video-editing-tools/bin/ffmpeg -version funciona. Si es así, usa las herramientas en ~/.video-editing-tools/bin (ffmpeg, ffprobe, python) dondequiera que esta habilidad diga ffmpeg, ffprobe o python3, y continúa. Si no funciona, sigue primero la habilidad video-editing-setup y luego vuelve aquí.

La tipografía: Figtree Bold, la única que usa esta habilidad. Es una tipografía gratuita de Google. Comprueba silenciosamente si está en el ordenador o en una carpeta de tipografías junto al proyecto. Si no está, pregunta: "Esto usa Figtree, una tipografía gratuita de Google. ¿Quieres que la descargue?" Si la respuesta es sí, descarga el archivo Figtree Bold de Google Fonts (fonts.google.com/specimen/Figtree) en una carpeta de tipografías junto al proyecto y continúa. Esta comprobación también se aplica en Runneth.

Qué necesita

  • El video, encuadrado y con el titular (o su sincronización).
  • El guion, si lo hay, para que los nombres y las palabras de producto se escriban correctamente.
  • Cuándo está el titular en pantalla y dónde se sitúa.

Paso 0: Pregunta primero por el estilo

Pregunta esto de una en una, esperando cada respuesta:

  1. "¿Quieres los subtítulos una palabra a la vez o unas pocas palabras a la vez?"
  2. Solo para unas pocas palabras a la vez: "¿Quieres que la palabra que se dice se ilumine en un color diferente?"
  3. Solo si la respuesta es sí: "¿Qué color?" Ofrece amarillo brillante (#FFFF3A) como predeterminado, o su color de marca.

Paso 1: Obtén cada palabra con su tiempo

  1. Transcribe el sonido propio del video con tiempos de palabra (faster-whisper base, word_timestamps=True, vad_filter=False). Los tiempos deben provenir de este video exacto, porque cada corte los mueve.
  2. Usa la ortografía del guion para nombres, marcas y palabras de producto, y mantén los tiempos de la transcripción.
  3. Cada palabra hablada recibe un subtítulo. Nada que no se haya dicho recibe uno.

Paso 2: Divide en fragmentos por significado (solo para unas pocas palabras a la vez)

  1. Normalmente de 1 a 3 palabras por fragmento, hasta unas 5 cuando eso mantiene una frase completa y aún cabe en el ancho.
  2. Mantén juntos: un sustantivo con sus palabras descriptivas ("una bebida para dormir"), nombres ("habilidad Claude"), un verbo con sus palabras pequeñas ("ir a la cama"), y pensamientos cortos completos ("pero así me sentía").
  3. Cada fragmento termina en una palabra que lleva significado. Las palabras pequeñas (el, la, de, a, y, porque, que, yo) comienzan el siguiente fragmento.
  4. Cada fragmento se muestra desde su primera palabra hasta que comienza el siguiente, para que la pantalla nunca se quede vacía entre frases.
  5. Lee toda la lista una vez como un espectador y corrige cualquier corte que se lea de forma incómoda.

Paso 3: El aspecto

Cada subtítulo usa Figtree Bold, blanco, con un contorno negro. Sin caja, sin sombra, sin animaciones de entrada o salida: los subtítulos simplemente aparecen. En su mayoría en minúsculas, con mayúscula en "yo", nombres y marcas, y sin puntos ni comas al final.

  • Una palabra a la vez: aproximadamente 140px con un contorno de 6px, una palabra en pantalla a la vez. Cada palabra se mantiene hasta que comienza la siguiente. Una palabra larga se reduce para caber en unos 720px de ancho. Omite la división en fragmentos del Paso 2.
  • Unas pocas palabras a la vez: aproximadamente 60px con un contorno de 3px, usando los fragmentos del Paso 2.
    • Con la palabra iluminada: la palabra que se dice cambia al color elegido dentro del fragmento, estilo karaoke.
    • Sin ella: todo el fragmento permanece blanco.

Paso 4: Dónde se colocan

  1. Centrado, a la altura del pecho, aproximadamente en y 1260 a 1305 en un video de 1080x1920: debajo de la barbilla, por encima de los subtítulos y botones de la aplicación.
  2. Dentro del área segura: Las zonas seguras provienen de la habilidad post-preview: mantén todo dentro de x 100 a 880, y 290 a 1340 en un fotograma de 1080x1920 (la única caja que es segura en Reels, Stories, Feed, TikTok y Facebook). Consulta post-preview para conocer las áreas exactas cubiertas por una ubicación cuando algo se acerca a un borde. Por lo tanto, los subtítulos centrados mantienen cada letra (incluido el contorno) dentro de x 200 a 880, que son unos 680px de ancho, y por encima de y 1340. Mide el ancho de cada fragmento; un fragmento demasiado ancho se divide.
  3. Sin interferir con el titular. Mientras el titular está en pantalla, los subtítulos se colocan debajo de él con un espacio claro; cuando el titular está bajo, los subtítulos se mueven hacia abajo dentro del área segura en lugar de superponerse.
  4. El mismo lugar durante todo el video, para que el ojo siempre sepa dónde mirar.
  5. Los subtítulos se colocan debajo de la boca, nunca sobre el rostro. Cada subtítulo evita los ojos, la nariz y la boca. Cuando el rostro está tan bajo que la ubicación del subtítulo lo cubriría, el problema es el encuadre: envíalo de vuelta a encuadre para arreglarlo (o mueve el subtítulo hacia abajo dentro del área segura mientras se arregla).

Paso 5: Construir e incrustar

  1. Escribe los subtítulos como un archivo de subtítulos ASS. Con la palabra iluminada, usa un evento por palabra para que el color se mueva con el habla. El espaciado entre letras va en una etiqueta en línea \fsp.
  2. Apunta el renderizador a una carpeta de tipografías que contenga solo el archivo Figtree Bold, para que se use el peso correcto: ass=captions.ass:fontsdir=fonts.
  3. Incrusta en una pasada desde el video de máxima calidad (x264, slow, crf 14 a 18), con el sonido copiado sin modificar.

Paso 6: Comprueba antes de que nadie lo vea

  1. Cada palabra, una vez, a tiempo: compara la lista de subtítulos con la transcripción palabra por palabra.
  2. Un fotograma de cada fragmento: dentro del área segura, nada cortado, nada superpuesto al titular, y todo el subtítulo debajo de la boca. Usa un detector de rostros o lee cada fotograma; un subtítulo sobre cualquier parte del rostro no pasa la comprobación.
  3. Con la palabra iluminada, el color cae en la palabra que se dice, comprobado en varios puntos del video.

Paso 7: Aprende del editor

Cuando el editor cambie una división, una palabra o el aspecto, pregunta por qué (a menos que lo explique). Escribe la razón como una regla en "Reglas de subtítulos del editor" a continuación, redactada como lo que debería ser cierto. Las razones que hayas descubierto por tu cuenta se marcan como "(IA)" y nunca cambian las reglas.

Reglas de subtítulos del editor

(Vacío al principio. Añade cada regla que dé el editor.)

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

alyshadotmd/video-editing

Turn raw talking-head footage full of repeated takes (one long recording, or several recordings of the same script) into a tight rough cut. Find every take of every line, judge each take on its words, sound and picture, pick the keeper for each line, and either show the editor the picks first or go straight to the cut. The cut is checked so no word is chopped and no pause is left in before anyone sees it. Built for Claude Code and Runneth. Use when someone uploads raw talking-head footage and asks to find the takes, pick the best ones, make a cut list or rough cut it. Triggers: "process my a-roll", "find my takes", "pick the best takes", "rough cut this", "cut list", "edit my talking head", "which take is best

alyshadotmd/video-editing

Turn raw b-roll footage into a tagged, searchable library of short clips. Watch each b-roll video once, tag every useful moment with timestamps, pick the moments worth keeping (the editor picks, or the AI picks on its own if the editor says so), cut only those picks with a 1-second buffer, and learn the editor's taste from their reasons. Use when someone uploads b-roll, asks to tag, bank or label b-roll, or asks to find a kind of shot ("find me unboxing b-roll"). Triggers: "process my b-roll", "tag this b-roll", "bank this b-roll", "b-roll library", "find me unboxing b-roll", "do we have b-roll of", "label my b-roll

alyshadotmd/video-editing

Plan and place b-roll on a video from its first cut: go through the cut line by line, decide which lines get b-roll and what kind of shot, pull the best matching moments from a tagged b-roll library, list what still needs filming, and place the b-roll once the editor approves. Use after a first cut exists and someone wants b-roll added, asks what b-roll a video needs, or asks for a b-roll shot list. Triggers: "add b-roll", "what b-roll do I need", "b-roll plan", "place the b-roll", "b-roll for this cut", "what should I film for b-roll", "shot list for this edit

Skills relacionados