Communitygithub.com

kaylon-he/video-subtitle-skill

Agrega subtítulos duros generados automáticamente a un archivo de video o URL y produce un MP4 subtitulado más SRT. Úsalo cuando el usuario pida añadir subtítulos a un video. No lo uses solo para editar subtítulos existentes.

¿Qué es video-subtitle-skill?

Esta habilidad automatiza el proceso de añadir subtítulos duros (quemados en el video) a partir de un archivo de video o URL. Es útil para creadores de contenido, editores de video o cualquier persona que necesite subtitular videos de forma rápida y profesional, obteniendo tanto un MP4 con subtítulos incrustados como un archivo SRT independiente. Compatible con sistemas Linux/macOS (con ffmpeg, whisper-cli y Python3), la habilidad extrae el audio, lo transcribe mediante whisper.cpp, genera subtítulos SRT, los convierte a ASS con formato óptimo para CJK (fuente china, fondo semitransparente, ajuste de líneas según el ancho del video) y finalmente los quema en el video usando ffmpeg con soporte libass. Incluye controles de calidad: revisión manual del SRT antes de la quema, verificación visual de frames y advertencia contra el uso de ffmpeg sin libass. El proceso es configurable mediante parámetros de línea de comandos (idioma, tamaño de fuente, solo SRT).

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add kaylon-he/video-subtitle-skill

Preguntar en tu IA favorita

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

Documentación

Subtítulos de Video

Añade subtítulos automáticos a un video y quémalos en el cuadro, produciendo un «MP4 con subtítulos + SRT».

Flujo de trabajo

  1. Extraer audio WAV mono de 16 kHz (ffmpeg)
  2. whisper.cpp transcribe y genera SRT (whisper-cli)
  3. SRT → ASS: ajuste de línea automático según el ancho del cuadro, fuente CJK, fondo semitransparente centrado en la parte inferior
  4. Quemar ASS con ffmpeg que tenga libass, copiar la pista de audio directamente

Uso

bash scripts/add_subtitles.sh input.mp4 -o output.mp4 -l zh
  • -l/--language idioma de origen, por defecto zh, se puede usar auto
  • -f/--fontsize tamaño de fuente, por defecto 42
  • -s/--srt-only solo generar SRT, sin quemar

Obligaciones

  • Revisar el texto transcrito antes de entregar: el script imprime el SRT en la terminal. Nombres de personas, lugares y modismos suelen reconocerse incorrectamente (ej.: «重阳姐» → «重阳节», «久久重扬» → «九九重阳»). Si hay errores, usa -s para generar una nueva versión, corrige el SRT y luego quémalo.
  • Verificar el producto final: extrae 2–3 fotogramas del video resultante (-ss <segundos> -frames:v 1) para confirmar que los subtítulos estén completos y no se corten ni desborden.
  • No uses el ffmpeg reducido de Homebrew: esa compilación no incluye libass, por lo que faltan los filtros subtitles/ass/drawtext. El script seleccionará automáticamente un ffmpeg con libass; la instalación se detalla en README.md.
  • Las frases largas deben dividirse: ASS usa WrapStyle: 2 (solo reconoce \N), y srt_to_ass.py ya inserta \N automáticamente según ancho del cuadro / tamaño de fuente. Si alguna línea aún se desborda, reduce el tamaño de fuente con -f.

Dependencias del entorno

ffmpeg (con libass) + whisper-cli + modelo ggml + python3. Si falta algo, el script mostrará un error claro. La lista completa de bibliotecas, comandos de instalación y solución de problemas se encuentra en README.md.

Skills relacionados