Communitygithub.com

wjs-localizing-video (orquestrador)

Orquestrador fino para localização completa de vídeos, roteando para wjs-transcribing-audio → wjs-translating-subtitles → wjs-dubbing-video → wjs-burning-subtitles. Suíte com 131 estrelas.

O que é wjs-localizing-video (orquestrador)?

Este skill atua como um orquestrador para pipelines completos de localização de vídeo, gerenciando até quatro etapas: transcrição de áudio (ASR), tradução de legendas, dublagem (opcional) e queima de legendas/mixagem (opcional). Foi projetado para ser invocado apenas quando o usuário solicitar o pipeline completo de uma só vez; para etapas individuais, deve-se rotear diretamente para os sub-skills especializados. O orquestrador fornece uma lista de verificação de progresso em tempo real (via TaskCreate) para manter o usuário informado durante processos que podem levar vários minutos, e inclui convenções padronizadas (como manter o áudio original como fundo em volume baixo, usar vozes específicas para dublagem e seguir uma convenção de nomenclatura de arquivos baseada em BCP-47). É compatível com Claude Code e depende dos sub-skills /wjs-transcribing-audio, /wjs-translating-subtitles, /wjs-dubbing-video e /wjs-burning-subtitles para executar o trabalho pesado.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que wjs-localizing-video (orquestrador) faz?

Este skill foi dividido. O que antes era um único skill de 1300 linhas agora são 4 sub-skills focados. Use este orquestrador apenas quando o usuário solicitar o pipeline completo em uma única requisição. Para etapas individuais, roteie diretamente para o sub-skill.

Os quatro sub-skills

EtapaSkillENTRADASAÍDA
1. ASR/wjs-transcribing-audioáudio / vídeo + idioma de origemSRT no idioma de origem
2. Traduzir/wjs-translating-subtitlesSRT de origem + idioma de destinoSRT de destino (limitado por pontuação)
3. Dublar (opcional)/wjs-dubbing-videovídeo + SRT de destino + voz*_<lang>_dub.mp4 (áudio TTS substituído)
4. Queimar / mixar (opcional)/wjs-burning-subtitlesvídeo + SRT + (dublagem opcional)MP4 final (uma codificação)

As etapas 3 e 4 são opcionais e independentes — a maioria dos trabalhos "apenas legendas" para após a etapa 2 + mux suave via /wjs-burning-subtitles. A maioria dos trabalhos "apenas dublagem" para após a etapa 3.

Quando invocar este orquestrador vs. um sub-skill diretamente

Invoque este skill (wjs-localizing-video) quando o usuário solicitar a cadeia completa de uma só vez:

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

Invoque um sub-skill diretamente quando o usuário solicitar uma única etapa:

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

Os sub-skills são mais focados e documentam seus contratos de entrada/saída de forma mais restrita. Não roteie através deste orquestrador quando uma única etapa for toda a solicitação — você estará apenas lendo documentação desnecessária.

Lista de verificação de progresso (faça isso PRIMEIRO, antes de qualquer sub-skill)

O pipeline tem até quatro etapas e leva vários minutos para ser executado. O usuário quer ver progresso ao vivo, não uma parede de silêncio seguida por um arquivo finalizado. Antes de invocar o primeiro sub-skill, apresente as etapas planejadas como uma lista de verificação TaskCreate. Ao iniciar cada etapa, atualize sua tarefa para in_progress; quando terminar, marque como completed. O Claude Code renderiza isso como uma lista de verificação na interface que é marcada em tempo real.

Quais tarefas criar

Decida a partir da solicitação do usuário qual subconjunto das 4 etapas será executado:

Usuário solicitouTarefas a criar
Localização completa (legendas + dublagem + mixagem final)① Transcrever ② Traduzir ③ Dublar ④ Queimar legendas + mixar
Apenas legendas (sem troca de voz)① Transcrever ② Traduzir ③ Queimar legendas (ou mux suave)
Apenas dublagem (sem queimar)① Transcrever ② Traduzir ③ Dublar
Usuário já possui SRT de origempular ①; criar apenas as etapas restantes
Usuário já possui SRT de destinopular ① e ②; criar apenas as restantes

Não crie tarefas para etapas que não serão executadas — um item não marcado no final parece "esquecemos", não "pulamos".

Como formular os nomes das tarefas

Use os mesmos rótulos que você usará no "Modelo de resposta final" abaixo, para que a lista de verificação em andamento e o resumo de conclusão pareçam o mesmo artefato:

  • Transcrever <idioma-origem> (ex.: Transcrever espanhol)
  • Traduzir → <idioma-destino> (ex.: Traduzir → chinês)
  • Dublar <idioma-destino> (ex.: Dublar chinês (voz fria e madura -8%))
  • Queimar legendas + fundo original <volume> (ex.: Queimar legendas + fundo original 0.18)

Para activeForm, use a variante de gerúndio (Transcrevendo…, Traduzindo…, Dublando…, Sintetizando…).

Disciplina de estado

  • Marque in_progress apenas a tarefa atualmente em execução (uma de cada vez).
  • Marque completed imediatamente quando o sub-skill retornar seu arquivo de saída — não agrupe.
  • Se uma etapa levantar uma pergunta esclarecedora ou falhar, deixe-a como in_progress para que o usuário veja exatamente onde o pipeline parou. Não marque uma etapa incompleta como concluída.
  • Se o usuário redirecionar no meio do pipeline (ex.: "pule a dublagem"), atualize as tarefas restantes: exclua as que não são mais aplicáveis, mantenha as demais. Não as descarte silenciosamente.

Pipeline canônico completo (Espanhol → Chinês, com dublagem + fundo + queima)

Este é o "cenário de validação" original — conteúdo espanhol de yoga/espiritual para 微信视频号 / 小红书. Percorre todos os 4 sub-skills.

Etapa 1 — Transcrever a fonte em espanhol

Invocar /wjs-transcribing-audio com o vídeo e `--language es`.

O sub-skill lida com: divisão em chunks, timestamps no nível da palavra, montagem de legendas nos limites de pontuação, proteção contra loop, retry. Saída: entrevista.srt (espanhol, idioma de origem).

Etapa 2 — Traduzir para chinês simplificado

Invocar /wjs-translating-subtitles com o SRT em espanhol e destino `zh-CN`.

O sub-skill lida com: resegmentação das legendas nos limites de pontuação, minimização de demonstrativos de preenchimento, limite de comprimento de linha, preservação do tom do falante. Saída: entrevista.zh-CN.srt.

Etapa 3 — (Opcional) Dublar em chinês

Invocar /wjs-dubbing-video com o vídeo + entrevista.zh-CN.srt + um ID de voz.

Padrão para voz feminina madura contemplativa: zh_female_gaolengyujie_moon_bigtts (Volcano 高冷御姐, --rate -8% +0Hz). Se não houver credenciais Volcano: zh-CN-XiaoxiaoNeural --rate -8% --pitch -10Hz. O sub-skill amostra primeiro, depois executa.

Saída: entrevista_zh_dub.mp4.

Etapa 4 — Queimar legendas + mixar dublagem sobre o original como fundo

Invocar /wjs-burning-subtitles com --video entrevista.mp4 --srt entrevista.zh-CN.srt --dub entrevista_zh_dub.mp4

O sub-skill lida com: verificação de disponibilidade do libass, fallback para build estático evermeet, calibração de tamanho de fonte, verificação de quadro antes da renderização completa, mixagem de áudio de fundo em 0.18.

Saída: entrevista_zh_final.mp4 (pronto para envio).

Padrões que o usuário padronizou

Estes se aplicam em todo o pipeline; cada sub-skill aplica sua própria parte:

  • ASR em chinês roteia para 豆包 (Volcano) primeiro; Whisper é fallback. Aplicado em /wjs-transcribing-audio.
  • Voz única para toda a dublagem, a menos que o usuário mencione explicitamente múltiplos falantes. Aplicado em /wjs-dubbing-video.
  • Áudio original mantido como fundo em volume baixo (0.15–0.25) sob qualquer dublagem. Aplicado em /wjs-burning-subtitles.
  • Queima para 微信视频号 / 抖音; mux suave para todo o resto por padrão. Aplicado em /wjs-burning-subtitles.
  • Nome do CTA do canal (se adicionado à descrição): 王建硕 — nunca o nome de um convidado. (Regra global de ~/.claude/CLAUDE.md; aplica-se quando este pipeline é seguido por /wjs-uploading-video.)

Convenção de nomenclatura de arquivos (preservada do skill original)

entrada:                       entrevista.mp4

Pipeline chinês:
  SRT de origem                 entrevista.srt
  SRT chinês                    entrevista.zh-CN.srt
  Dublagem chinesa (só áudio)   entrevista_zh_dub.mp4
  Final chinês (legendas+dub)   entrevista_zh_final.mp4

Pipeline inglês:
  SRT inglês                    entrevista.en.srt
  Dublagem inglesa              entrevista_en_dub.mp4
  Final inglês                  entrevista_en_final.mp4

Legendas bilíngues:
  Espanhol + Chinês             entrevista.es-zh.srt
  Espanhol + Inglês             entrevista.es-en.srt
  Três idiomas                  entrevista.es-zh-en.srt

Sufixos no estilo BCP-47 mantêm múltiplas saídas de idioma de destino lado a lado e tornam o destino óbvio à primeira vista.

O que este orquestrador NÃO faz

  • Ele não reimplementa nada. Cada etapa delega para um sub-skill.
  • Ele não agrupa os scripts. dub.py vive em /wjs-dubbing-video/scripts/, render.py vive em /wjs-burning-subtitles/scripts/, visual_diarize.py vive em /wjs-dubbing-video/scripts/. Se você vir cópias desatualizadas em wjs-localizing-video/scripts/, prefira os locais canônicos dos sub-skills.

Modelo de resposta final

Quando o pipeline completo terminar, responda brevemente no idioma do usuário. Corresponda ao modelo "Done" original que o usuário está acostumado:

已完成:
- 西班牙语转写  (/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 背景噪音较大,原文可能不完全准确。

Se não houver partes incertas, remova a segunda lista.

Veja também

  • /wjs-segmenting-video — cortar vídeos longos em clipes curtos independentes (usa seu próprio fatiador de SRT; ortogonal a este pipeline).
  • /wjs-overlaying-video — legendas HTML/CSS em um clipe via HyperFrames. Não combine com /wjs-burning-subtitles — escolha um sistema de legendas por saída.
  • /wjs-uploading-video — enviar o MP4 final para o YouTube.
  • /lark-minutes — caminho alternativo de transcrição apenas em chinês via 飞书妙记 quando o ASR local 豆包 não estiver configurado.

Individual skills in this repo

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

Habilidades Relacionadas