Communitygithub.com

shortcut-clips

Convierte un video local largo (podcast, charla, entrevista, directo) en clips verticales cortos 9:16 con encuadre que sigue la cara, subtítulos animados, títulos y hashtags. Claude selecciona los momentos más virales de una transcripción con marcas de tiempo; un pipeline local de ffmpeg hace el resto. Sin claves de API. Úsalo cuando el usuario pida crear cortos, reels, TikToks o clips a partir de un video o podcast, encontrar momentos virales o citables, o para recortar, renombrar o regenerar clips hechos anteriormente.

¿Qué es shortcut-clips?

shortcut-clips es una habilidad para agentes de IA (Claude Code, Cursor, Codex) que automatiza la creación de clips verticales cortos para redes sociales (YouTube Shorts, Instagram Reels, TikTok) a partir de videos locales largos como podcasts, entrevistas o transmisiones en vivo. Utiliza un pipeline local basado en ffmpeg para transcribir, encontrar ventanas candidatas, reencuadrar siguiendo el rostro, añadir subtítulos animados y renderizar el video final. El agente de IA se encarga de la parte de juicio: lee las transcripciones con marcas de tiempo, puntúa los momentos según una rúbrica, selecciona los mejores y escribe un archivo `clips.json` que define los cortes, títulos, hashtags y estilo de subtítulos. No requiere claves de API y todo el procesamiento se realiza localmente, lo que garantiza privacidad y sin costos de servicios externos. Soporta varios idiomas y estilos de subtítulos (bold-pop, minimal, karaoke-highlight), y permite ediciones iterativas sin reprocesar todo el video.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thanmaiashok/shortcut-clips/tree/HEAD/skills/shortcut-clips

Preguntar en tu IA favorita

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

Documentación

¿Qué hace shortcut-clips?

Un pipeline local hace el trabajo mecánico (transcribir, encontrar ventanas candidatas, reencuadrar, subtitular, renderizar). Tu trabajo es el paso de juicio: lee los momentos candidatos como texto, elige los mejores y escribe clips.json. Nunca ves ni necesitas los fotogramas del video.

0. Entradas

  • Video: una ruta de archivo local. Si el usuario proporciona una URL, explica que shortcut-clips solo funciona con archivos que ellos mismos proporcionen (contenido que posean o tengan derechos) y pide un archivo. No descargues nada.
  • Número de clips: usa el número del usuario; si no, 3.
  • Opciones (solo si el usuario lo pide): --language hi|kn|en|…, --min-len/--max-len (por defecto 20-60 s), estilo bold-pop (por defecto), minimal o karaoke-highlight.

1. Preparar (transcribir + candidatos)

shortcut-clips prepare "<video>"
  • Imprime la carpeta de salida, luego una línea por cada archivo de chunk. Anota ambos.
  • La primera ejecución descarga el modelo de habla. Un video de 1 hora tarda aproximadamente 15-25 min en CPU y 5-10 min en GPU. Para videos de más de unos 10 minutos, ejecuta el comando en segundo plano y espera a que termine. Dile al usuario que está trabajando. Re-ejecutar es seguro: las etapas finalizadas se almacenan en caché.
  • Si falla, muéstrale al usuario el consejo de solución del error. shortcut-clips doctor verifica la instalación.

2. Elegir los momentos

  1. Lee <carpeta de salida>/work/candidates.txt, luego todos los archivos de chunk que lista, en orden. Cada chunk enumera oraciones (s0012 [68.3] texto) y candidatos (c004 s0012-s0021 68.2-108.6 (40s)), cada candidato un rango de esas oraciones. No leas transcript.json ni candidates.json: los chunks contienen todo lo que necesitas, con muchos menos tokens.
  2. Puntúa cada candidato con reference/rubric.md. A medida que avanzas, mantén una lista corta de aproximadamente 3 veces la cantidad solicitada: id del candidato, cinco puntuaciones de criterio, nota de una línea. Descarta el resto.
  3. Mejora los ganadores. Puedes mover los bordes de un clip a otros límites de oraciones, por ejemplo comenzando en la oración con el gancho más fuerte o terminando justo después del remate:
    • start = el tiempo de la primera oración elegida.
    • end = el tiempo de la oración después de la última que conservas, o el tiempo de finalización del candidato si conservas su última oración.
    • Mantente dentro del rango de duración. El validador ajusta los bordes a palabras completas.
  4. Elige el conjunto final: puntuaciones generales más altas, que no compartan más de unos pocos segundos, y temas diferentes cuando sea posible.

3. Escribir clips.json

Escribe <carpeta de salida>/clips.json siguiendo reference/clips-format.md. Escribe hook_text, title y caption en el idioma y escritura de la transcripción a menos que el usuario indique lo contrario. Ordena los clips del mejor al peor. Luego ejecuta:

shortcut-clips validate "<carpeta de salida>/clips.json" --write

Corrige cada error y vuelve a ejecutar hasta que imprima ✓. Corrige las advertencias cuando sea fácil. Las líneas info informan ajustes automáticos (bordes ajustados) y no requieren acción.

4. Renderizar

shortcut-clips render "<carpeta de salida>/clips.json"

Luego informa al usuario: para cada clip, su número, título, duración, puntuación y ruta de video, además de la galería <carpeta de salida>/index.html. Añade una oración sobre por qué funciona el clip principal. Menciona que puede pedir cambios.

Ediciones y re-ejecuciones

  • "Haz el clip 2 más corto", "nuevo título", "usa estilo karaoke": edita clips.json (anulación por clip de style/layout sobre defaults), valida con --write, renderiza de nuevo. Los clips sin cambios se reutilizan desde la caché.
  • "Encuentra momentos diferentes": vuelve al paso 2 con los mismos chunks. No vuelvas a ejecutar prepare.
  • Idioma detectado incorrecto: vuelve a ejecutar prepare con --language <código>. Solo la transcripción y etapas posteriores se rehacen.
  • No candidate windows: el video es corto o tiene poca voz. Vuelve a ejecutar prepare con un --min-len más pequeño (por ejemplo 10).

Skills relacionados