/clip
Corta un video en clips cortos y los reencuadra. Los subtítulos no son tarea de esta habilidad — después del corte, la habilidad srt los estiliza (ver la transición a continuación).
Puntos de entrada
-
Timecodes explícitos ("corta 2:00–3:00 de este video") → corta el archivo local directamente:
--video "<archivo>" --ranges "2:00-3:00,...". Sin STT, sin clave, sin créditos. -
Selección de momentos destacados por IA en un proyecto STT →
--planluego--clips(el flujo a continuación). Necesita la transcripción del proyecto y las marcas de tiempo por palabra. -
Video en bruto, "encuentra los buenos momentos" (sin timecodes proporcionados) → no se pueden elegir momentos destacados sin una transcripción, así que pregunta al usuario cuál quiere:
- STT (selección adecuada, usa créditos): ejecuta primero el STT de la habilidad
srtpara crear el proyecto, luego corta con--plan/--clips. - Gratuito (sin STT): el usuario proporciona los timecodes y los cortas con
--video --ranges.
Procede con su elección — no ejecutes STT (que factura créditos) sin preguntar.
- STT (selección adecuada, usa créditos): ejecuta primero el STT de la habilidad
Reglas principales
- Solo el trabajador ve la clave sin procesar — nunca la abras, la muestres ni la pases como argumento.
- La restricción de clave aplica solo a
--project/--plan/--clips.--video --rangesy--sidecarsson completamente offline — nunca ejecutes una verificación/registro de clave para ellos. - Ejecuta en segundo plano — la codificación toma tiempo.
- Esta habilidad comparte las bibliotecas del skill de doblaje: la carpeta
dubbingdebe estar instalada junto aclip.
Flujo
Fase 1 — planificar. node scripts/clip.mjs --project <seq> --plan imprime el mapa de secciones del resumen (guía de temas) más la transcripción completa por oraciones, cada línea como orden [inicio-fin] texto.
Fase 2 — elegir, luego cortar. Lee la transcripción y elige clips, cada uno como { "title": "...", "start_order": N, "end_order": M }. Rúbrica:
- Enganche primero — comienza en una oración que capte la atención (pregunta, afirmación audaz, línea graciosa/sorprendente).
- Termina donde se resuelve el momento, no en la primera oración completa. Sigue el ritmo hasta su final — toda la reacción, el seguimiento y cualquier remate secundario. Lee unas cuantas oraciones más allá del final aparente; consérvalas si siguen siendo la misma reacción.
- Corta en la transición — termina justo antes de que la energía baje o el tono cambie (reacción emocionada → narración calmada).
- Pico — favorece momentos graciosos / sorprendentes / emocionales / citables; el punto álgido suele estar una o dos oraciones después de la revelación literal.
- Duración 30–90 s — el trabajador advierte cuando está fuera; prefiere el arco completo sobre un corte prematuro.
- Título — describe el momento; se convierte en el nombre del archivo (
01_<title>.mp4).
Las secciones tienen la duración de un capítulo — usa el mapa de secciones solo como guía, luego ajusta al enganche.
Ejecuta: node scripts/clip.mjs --project <seq> --clips '<json>' [--out carpeta] (--clips también acepta @ruta). Las fuentes en horizontal (16:9) se reencuadran a 9:16 (letterbox tipo drama-shorts); las fuentes en vertical se mantienen. El trabajador escribe los clips más un manifiesto clips.json (registra cada clip + el fragmento de transcripción necesario para los subtítulos posteriores). Transmite [progreso]; entrega los archivos desde [salida-clips].
Subtítulos → transición a la habilidad srt
Los subtítulos están desactivados por defecto. Después del corte, informa al usuario de que los clips están listos y pregunta si quiere añadir subtítulos. Si quiere subtítulos, muestra primero las preconfiguraciones — nunca vayas directamente a una, exactamente como hace el flujo de estilizado de la habilidad srt: la galería interactiva (seleccionar + Aplicar) en la app de Claude, o el menú estático ../srt/assets/style_presets.png + node ../srt/scripts/style.mjs --list-presets en otros lugares. Deja que el usuario elija una preconfiguración o describa un estilo (las preconfiguraciones para formato corto como karaoke/bold-punch son adecuadas para clips). Solo después de que elija:
- Escribe los sidecars:
node scripts/clip.mjs --sidecars "<salida>/clips.json"— añade--karaokesolo para una preconfiguración karaoke (también escribe<clip>.timestamps.jsonpara la temporización medida de palabras; una preconfiguración simple solo necesita el.srt). - Estiliza cada clip con la habilidad srt:
node ../srt/scripts/style.mjs "<clip>.mp4" "<clip>.srt" --preset <id>(añade--word-timestamps "<clip>.timestamps.json"para karaoke). Consulta la sección "Estilizar y grabar subtítulos" de la habilidad srt.
Añade --host <runtime> para telemetría (silenciosa), igual que los otros trabajadores.
Configuración (env)
Igual que /dubbing / /srt (PERSO_API_BASE/PERSO_MEDIA_BASE — solo hosts https perso.ai, PERSO_SPACE_SEQ, XP_API_KEY, PERSO_NO_TELEMETRY, …).