Communitygithub.com

wjs-localizing-video (orquestrador)

Orquestrador fino para localización completa de video: enruta a wjs-transcribing-audio → wjs-translating-subtitles → wjs-dubbing-video → wjs-burning-subtitles. Suite con 131★.

¿Qué es wjs-localizing-video (orquestrador)?

Este skill actúa como un orquestador para la localización completa de video, dividiendo el proceso en cuatro sub-skills especializados y enfocados. En lugar de un monolito de 1300 líneas, el pipeline ahora se compone de pasos independientes: transcripción de audio (ASR), traducción de subtítulos, doblaje de video y quemado/mezcla de subtítulos. Cada sub-skill puede invocarse directamente para tareas individuales, pero el orquestador es ideal cuando el usuario solicita el flujo completo en una sola solicitud, como 'traduce este video de español a chino con doblaje'. El orquestador proporciona una lista de verificación de progreso en tiempo real, mostrando qué paso se está ejecutando, y maneja decisiones como qué voz de doblaje usar (por defecto, una voz madura femenina china con tono sereno) y cómo mezclar el audio original como fondo (nivel 0.15–0.25). Está diseñado para plataformas como WeChat Video Account, Douyin, Xiaohongshu, y es parte de un ecosistema más amplio que incluye skills para segmentar, superponer y subir videos. El orquestador no reimplementa nada, solo delega a los sub-skills canónicos, manteniendo la consistencia en convenciones de nombres de archivo, formatos BCP-47 y reglas globales como el nombre de CTA del canal (王建硕).

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jianshuo/claude-skills/tree/main/wjs-localizing-video

Preguntar en tu IA favorita

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

Documentación

¿Qué hace wjs-localizing-video (orquestrador)?

Este skill fue dividido. Lo que antes era un monolito de 1300 líneas ahora son 4 sub-skills enfocados. Usa este orquestador solo cuando el usuario solicite el pipeline completo en una sola petición. Para cualquier paso individual, enruta directamente al sub-skill correspondiente.

Los cuatro sub-skills

PasoSkillENTRADASALIDA
1. ASR/wjs-transcribing-audioaudio / video + idioma de origenSRT en idioma de origen
2. Traducir/wjs-translating-subtitlesSRT origen + idioma destinoSRT destino (delimitado por puntuación)
3. Doblar (opcional)/wjs-dubbing-videovideo + SRT destino + voz*_<lang>_dub.mp4 (audio TTS reemplazado)
4. Quemar / mezclar (opcional)/wjs-burning-subtitlesvideo + SRT + (doblaje opcional)MP4 final (una codificación)

Los pasos 3 y 4 son opcionales e independientes; la mayoría de los trabajos "solo subtítulos" terminan después del paso 2 + mux suave mediante /wjs-burning-subtitles. La mayoría de los trabajos "solo doblaje" terminan después del paso 3.

Cuándo invocar este orquestador vs. un sub-skill directamente

Invoca este skill (wjs-localizing-video) cuando el usuario solicite toda la cadena de una sola vez:

  • "帮我把这个西班牙语视频做成中文字幕和中文配音"
  • "translate this Spanish video to English with dubbing"
  • "全套:转写、翻译、烧字幕、配音、混音"

Invoca un sub-skill directamente cuando el usuario solicite un solo paso:

  • "转写一下这个音频" → /wjs-transcribing-audio
  • "把这个 SRT 翻译成中文" → /wjs-translating-subtitles
  • "给这个视频配个中文音" → /wjs-dubbing-video
  • "把字幕烧进视频" → /wjs-burning-subtitles

Los sub-skills son más enfocados y documentan sus contratos de entrada/salida de manera más estricta. No enrutes a través de este orquestador cuando un solo paso sea toda la solicitud; solo estarías leyendo documentación innecesaria.

Lista de verificación de progreso (haz esto PRIMERO, antes de cualquier sub-skill)

El pipeline tiene hasta cuatro pasos y se ejecuta durante varios minutos. El usuario quiere ver progreso en vivo, no un muro de silencio seguido de un archivo terminado. Antes de invocar el primer sub-skill, describe los pasos planificados como una lista de verificación de TaskCreate. A medida que inicies cada paso, actualiza su tarea a in_progress; cuando termine, márcala como completed. Claude Code renderiza esto como una lista de verificación en la interfaz que se va marcando en tiempo real.

Qué tareas crear

Decide a partir de la solicitud del usuario qué subconjunto de los 4 pasos se ejecutará:

Usuario solicitóTareas a crear
Localización completa (subs + doblaje + mezcla final)① 转写 ② 翻译 ③ 配音 ④ 烧字幕 + 混音
Solo subtítulos (sin cambio de voz)① 转写 ② 翻译 ③ 烧字幕 (o mux suave)
Solo doblaje (sin quemar)① 转写 ② 翻译 ③ 配音
El usuario ya tiene el SRT de origensaltar ①; crear solo los pasos restantes
El usuario ya tiene el SRT destinosaltar ① y ②; crear solo los pasos restantes

No crees tareas para pasos que no ejecutarás; un elemento sin marcar al final se lee como "olvidamos", no como "omitimos".

Cómo redactar los títulos de las tareas

Usa las mismas etiquetas que usarás en la "Plantilla de respuesta final" a continuación, para que la lista de verificación en curso y el resumen de finalización se lean como un mismo artefacto:

  • 转写 <idioma-origen> (ej., 转写 西班牙语)
  • 翻译 → <idioma-destino> (ej., 翻译 → 中文)
  • 配音 <idioma-destino> (ej., 配音 中文 (高冷御姐 -8%))
  • 烧字幕 + 原声底层 <nivel> (ej., 烧字幕 + 原声底层 0.18)

Para activeForm, usa la variante de presente continuo (转写中…, 翻译中…, 配音中…, 合成中…).

Disciplina de estado

  • Marca in_progress solo la tarea que se está ejecutando actualmente (una a la vez).
  • Marca completed inmediatamente cuando el sub-skill devuelva su archivo de salida; no agrupes.
  • Si un paso plantea una pregunta aclaratoria o falla, déjalo como in_progress para que el usuario pueda ver exactamente dónde se detuvo el pipeline. No marques un paso a medio terminar como completado.
  • Si el usuario redirige a mitad del pipeline (ej., "salta el doblaje"), actualiza las tareas restantes: elimina las que ya no sean aplicables, conserva las demás. No las elimines silenciosamente.

Pipeline canónico completo (Español → Chino, con doblaje + fondo + quemado)

Este es el "escenario de validación" original: contenido espiritual/yoga en español a chino para 微信视频号 / 小红书. Recorre los 4 sub-skills.

Paso 1 — Transcribir la fuente en español

Invoca /wjs-transcribing-audio con el video y `--language es`.

El sub-skill maneja: fragmentación, marcas de tiempo a nivel de palabra, ensamblaje de señales en límites de puntuación, bucle de guardia, reintento. Salida: entrevista.srt (español, idioma de origen).

Paso 2 — Traducir al chino simplificado

Invoca /wjs-translating-subtitles con el SRT en español y destino `zh-CN`.

El sub-skill maneja: re-segmentación de señales en puntuación, minimización de demostrativos de relleno, límite de longitud de línea, preservación del tono del hablante. Salida: entrevista.zh-CN.srt.

Paso 3 — (Opcional) Doblaje al chino

Invoca /wjs-dubbing-video con el video + entrevista.zh-CN.srt + un ID de voz.

Predeterminado para mujer madura y contemplativa: zh_female_gaolengyujie_moon_bigtts (Volcano 高冷御姐, --rate -8% +0Hz). Si no hay credenciales de Volcano: zh-CN-XiaoxiaoNeural --rate -8% --pitch -10Hz. El sub-skill muestra una muestra primero, luego se compromete.

Salida: entrevista_zh_dub.mp4.

Paso 4 — Quemar subtítulos + mezclar doblaje sobre original como fondo

Invoca /wjs-burning-subtitles con --video entrevista.mp4 --srt entrevista.zh-CN.srt --dub entrevista_zh_dub.mp4

El sub-skill maneja: verificación de disponibilidad de libass, fallback de compilación estática evermeet, calibración de tamaño de fuente, verificación de fotograma antes de renderizado completo, mezcla de fondo de audio a 0.18.

Salida: entrevista_zh_final.mp4 (listo para enviar).

Valores predeterminados que el usuario ha estandarizado

Estos aplican a lo largo del pipeline; cada sub-skill aplica su propia parte:

  • El ASR para chino enruta a 豆包 (Volcano) primero; Whisper es el respaldo. Aplicado en /wjs-transcribing-audio.
  • Una sola voz para todo el doblaje a menos que el usuario mencione explícitamente múltiples hablantes. Aplicado en /wjs-dubbing-video.
  • El audio original se conserva como un fondo de bajo volumen (0.15–0.25) debajo de cualquier doblaje. Aplicado en /wjs-burning-subtitles.
  • Quemado para 微信视频号 / 抖音; mux suave para todo lo demás por defecto. Aplicado en /wjs-burning-subtitles.
  • Nombre de CTA del canal (si se agrega a la descripción): 王建硕 — nunca el nombre de un invitado. (Regla global de ~/.claude/CLAUDE.md; aplica cuando este pipeline es seguido por /wjs-uploading-video.)

Convención de nombres de archivos (preservada del skill original)

entrada:                       entrevista.mp4

Pipeline en chino:
  SRT origen                 entrevista.srt
  SRT chino                  entrevista.zh-CN.srt
  Doblaje chino (solo audio) entrevista_zh_dub.mp4
  Final chino (subs+doblaje) entrevista_zh_final.mp4

Pipeline en inglés:
  SRT inglés                 entrevista.en.srt
  Doblaje inglés             entrevista_en_dub.mp4
  Final inglés               entrevista_en_final.mp4

Subtítulos bilingües:
  Español + Chino            entrevista.es-zh.srt
  Español + Inglés           entrevista.es-en.srt
  Tres idiomas               entrevista.es-zh-en.srt

Los sufijos de estilo BCP-47 mantienen múltiples salidas de idioma destino lado a lado y hacen evidente el destino de un vistazo.

Qué NO hace este orquestador

  • No reimplementa nada. Cada paso delega a un sub-skill.
  • No agrupa los scripts. dub.py vive en /wjs-dubbing-video/scripts/, render.py vive en /wjs-burning-subtitles/scripts/, visual_diarize.py vive en /wjs-dubbing-video/scripts/. Si ves copias obsoletas bajo wjs-localizing-video/scripts/, prefiere las ubicaciones canónicas del sub-skill.

Plantilla de respuesta final

Cuando el pipeline completo termine, responde brevemente en el idioma del usuario. Usa la misma plantilla "Hecho" a la que el usuario está acostumbrado:

已完成:
- 西班牙语转写  (/wjs-transcribing-audio)
- 中文翻译     (/wjs-translating-subtitles)
- 中文配音     (/wjs-dubbing-video, voice: 高冷御姐 -8%)
- 烧入字幕 + 原声底层 0.18  (/wjs-burning-subtitles)

输出:
- entrevista.srt
- entrevista.zh-CN.srt
- entrevista_zh_dub.mp4
- entrevista_zh_final.mp4

不确定片段:
- 00:01:23–00:01:26 背景噪音较大,原文可能不完全准确。

Si no hay partes inciertas, omite la segunda lista.

Ver también

  • /wjs-segmenting-video — corta videos de larga duración en clips cortos independientes (usa su propio cortador de SRT; ortogonal a este pipeline).
  • /wjs-overlaying-video — subtítulos HTML/CSS en un clip mediante HyperFrames. No combines con /wjs-burning-subtitles — elige un sistema de subtítulos por salida.
  • /wjs-uploading-video — sube el MP4 final a YouTube.
  • /lark-minutes — ruta alternativa de transcripción solo en chino mediante 飞书妙记 cuando el ASR local 豆包 no está configurado.

Individual skills in this repo

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

Skills relacionados