¿Qué hace clipper?
Arrastra un video y Claude encuentra los momentos más impactantes, luego los convierte en clips cortos con subtítulos, listos para publicar.
Todo se ejecuta en este ordenador. No se sube nada. La skill se encuentra en ~/.claude/skills/clipper/; sus herramientas son
scripts/transcribe.py y scripts/make_clips.py, ejecutadas con su propio Python: ~/.claude/skills/clipper/.venv/bin/python.
0. Verificar la instalación (cada ejecución)
test -x ~/.claude/skills/clipper/.venv/bin/python && command -v ffmpeg
Si falta alguno, indícale al usuario en una línea y ejecuta el instalador desde el repositorio que clonó
(bash install.sh dentro de la carpeta clipper-skill). Si no encuentras la carpeta, clónala de nuevo:
git clone https://github.com/corbinsylk/clipper-skill && cd clipper-skill && bash install.sh.
1. Obtener el video
El usuario arrastra el archivo o proporciona una ruta. Si no da ninguna, pídelo en una línea. Ambos scripts usan la carpeta
de trabajo <nombre del video>-clips/ junto al video a menos que le pases otra. Los ajustes que el usuario puede dar (si no, usa los
valores predeterminados, nunca preguntes):
| Ajuste | Valor predeterminado |
|---|---|
| Número de clips | De 3 a 5, tantos como sean genuinamente potentes |
| Duración del clip | De 20 a 60 segundos (apunta a 30 a 45) |
| Colores de subtítulos | Blanco roto #F5F1EA, la palabra que se dice en arcilla #B03926 |
| Subtítulos | Activados |
2. Transcribir
~/.claude/skills/clipper/.venv/bin/python ~/.claude/skills/clipper/scripts/transcribe.py "<video>"
Imprime primero la carpeta de trabajo. La primera ejecución descarga el modelo de voz una vez (unos 500 MB para small); un video
de 2 minutos tarda alrededor de un minuto, uno de una hora varios minutos. Para cualquier video de más de unos 10 minutos, ejecuta el comando en
segundo plano (en Claude Code: la herramienta Bash con run_in_background) y dile al usuario que está funcionando. Para un acento
fuerte o audio deficiente añade --model medium. Una advertencia sobre un token de HF o un consejo de velocidad en la primera ejecución es inofensivo.
3. Elegir los momentos (esta es tu tarea, no de un script)
Lee completo <carpeta de trabajo>/transcript.md. Elige los 3 a 5 momentos más impactantes. Un momento impactante:
- Abre con un gancho en su primera frase. Una afirmación audaz, un número sorprendente, una pregunta, un error, el inicio de una historia. Nunca empieces con "entonces", "y", "eh", "como decía" ni una línea que necesite contexto anterior.
- Se sostiene por sí solo. Alguien que nunca vio el video completo lo entiende. Sin "esto", "esa cosa" ni "como mencioné" que apunten fuera del clip.
- Tiene recompensa. Termina en la respuesta, el remate, el resultado o la lección: un pensamiento completo, nunca a mitad de frase.
- Tiene energía. Opiniones, detalles concretos, números, emoción, un giro. Salta saludos, lecturas de patrocinadores, aspectos técnicos y preparación lenta.
- No repite otra selección. Cada clip plantea un punto diferente y los clips nunca se solapan en el tiempo. Un video corto da menos clips: por debajo de unos 5 minutos, de 1 a 3 clips es normal; nunca estires ni solapes para alcanzar un número.
Puntúa cada uno del 1 al 10 (gancho, independencia, recompensa y energía juntos). Conserva solo los que obtengan 7 o más; si menos de 3 lo
hacen, conserva los 3 mejores y di que son más débiles. Luego escribe <carpeta de trabajo>/moments.json:
[
{"title": "Título corto para el archivo", "start": 63.2, "end": 101.8, "score": 9,
"hook": "la primera frase del clip, palabra por palabra",
"why": "una línea: por qué funciona este momento",
"caption": "un pie de foto listo para publicar: una línea de gancho, luego 2-3 líneas cortas, luego una pregunta o llamada a la acción"}
]
start y end están en segundos desde el inicio del video (los tiempos de la transcripción están en minutos:segundos, así que 01:03.2 = 63.2).
<carpeta de trabajo>/words.json tiene cada palabra con su inicio (s) y final (e) exactos: léelo para fijar los bordes. Establece start
al s de la primera palabra del gancho y end al e de la última palabra de la recompensa. El script conserva las palabras desde start hasta end
(con un margen de 0.05 s) y nunca alcanza la palabra anterior o posterior, así que para eliminar una palabra como "Entonces" pon start en el s de la siguiente palabra.
4. Crear los clips
~/.claude/skills/clipper/.venv/bin/python ~/.claude/skills/clipper/scripts/make_clips.py "<video>"
Añade --text-color "#FFFFFF" --active-color "#FFD400" para otros colores de subtítulos, o --no-captions. Tarda aproximadamente un
minuto por clip.
Cada clip: cortado en los bordes de las palabras, reencuadrado a 1080x1920 (un video panorámico se recorta alrededor del rostro del hablante; cualquier tramo de un
segundo o más sin rostro, como un gráfico, una pantalla o material de archivo, se muestra completo sobre un fondo de relleno difuminado en lugar de recortarse; un video
vertical se mantiene completo), subtítulos de tres palabras a la vez con la palabra hablada resaltada, sonido nivelado a -14 LUFS.
5. Revisar antes de entregar
Abre cada clips/NN-*.jpg: cada una es una tira de 8 fotogramas a lo largo del clip completo. Míralas todas:
- El rostro está en el encuadre y los subtítulos se leen, debajo de la barbilla, en cada fotograma con voz.
- El video ya tiene subtítulos grabados (ves dos conjuntos de palabras): rehaz todos los clips con
--no-captions. - El script imprime "face in X/Y checks" por clip. Si X es 0 no hay rostro que encuadrar (una grabación de pantalla, diapositivas): el clip está centrado, así que indícalo en el informe. Los fotogramas sin rostro son esperados en un video editado; son los cortes que se muestran completos.
- Si un clip comienza o termina a mitad de palabra o pensamiento, corrige
start/enden moments.json y rehaz solo ese clip con--only N.
6. Informe
Una lista breve: el archivo de cada clip, duración, puntuación y por qué funciona, además de su pie de foto. Señala
clips/scores.md (todo en un archivo) y la carpeta clips/. Ofrece un siguiente paso: momentos diferentes, otros colores
de subtítulos, o clips más largos o más cortos.