Communitygithub.com

jianshuo/claude-skills

Orchestrateur léger pour la localisation vidéo de bout en bout : achemine vers wjs-transcribing-audio → translating-subtitles → dubbing-video → burning-subtitles. Suite de 131 étoiles.

Qu'est-ce que claude-skills ?

Ce skill agit comme un orchestrateur pour la localisation vidéo complète. Il divise un pipeline autrefois monolithique de 1300 lignes en quatre sous-skills spécialisés : transcription audio (ASR), traduction de sous-titres, doublage vocal, et incrustation de sous-titres/mixage. L'orchestrateur ne doit être invoqué que lorsque l'utilisateur demande le pipeline complet en une seule requête ; pour une étape individuelle, il est recommandé d'appeler directement le sous-skill concerné. Le skill gère un tableau de bord de progression en temps réel via des tâches Claude Code, ce qui permet à l'utilisateur de suivre l'avancement de chaque étape (transcription, traduction, doublage, mixage). Il supporte des paramètres par défaut comme le routage de la reconnaissance vocale chinoise vers l'API Volcano (avec Whisper comme solution de repli), la conservation d'un fond sonore à faible volume (0,15–0,25) sous tout doublage, et une convention de nommage des fichiers basée sur BCP-47. Le skill est typiquement utilisé pour convertir des vidéos (par exemple, espagnol → chinois) destinées à des plateformes comme 微信视频号, 小红书, ou 抖音.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

wjs-localizing-video (orchestrateur)

Ce skill a été divisé. Ce qui était auparavant un fourre-tout de 1300 lignes est maintenant composé de 4 sous-skills ciblés. Utilisez cet orchestrateur uniquement lorsque l'utilisateur demande le pipeline complet en une seule requête. Pour toute étape individuelle, acheminez directement vers le sous-skill.

Les quatre sous-skills

ÉtapeSkillENTRÉESORTIE
1. ASR/wjs-transcribing-audioaudio / vidéo + langue sourceSRT en langue source
2. Traduction/wjs-translating-subtitlesSRT source + langue cibleSRT cible (délimité par la ponctuation)
3. Doublage (optionnel)/wjs-dubbing-videovidéo + SRT cible + voix*_<langue>_dub.mp4 (audio TTS échangé)
4. Incrustation / mixage (optionnel)/wjs-burning-subtitlesvidéo + SRT + (doublage optionnel)MP4 final (un encodage)

Les étapes 3 et 4 sont optionnelles et indépendantes — la plupart des tâches "sous-titres uniquement" s'arrêtent après l'étape 2 + mux logiciel via /wjs-burning-subtitles. La plupart des tâches "doublage uniquement" s'arrêtent après l'étape 3.

Quand invoquer cet orchestrateur vs un sous-skill directement

Invoquez ce skill (wjs-localizing-video) lorsque l'utilisateur demande la chaîne complète en une seule fois :

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

Invoquez un sous-skill directement lorsque l'utilisateur demande une seule étape :

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

Les sous-skills sont plus ciblés et documentent leurs contrats d'entrée/sortie de manière plus stricte. Ne passez pas par cet orchestrateur lorsqu'une seule étape est la demande complète — vous liriez simplement de la documentation inutile.

Liste de contrôle de progression (à faire EN PREMIER, avant tout sous-skill)

Le pipeline comprend jusqu'à quatre étapes et s'exécute pendant plusieurs minutes. L'utilisateur veut voir une progression en direct, pas un mur de silence suivi d'un fichier terminé. Avant d'invoquer le premier sous-skill, présentez les étapes prévues sous forme de liste de contrôle TaskCreate. Au début de chaque étape, mettez à jour sa tâche à in_progress ; lorsqu'elle se termine, marquez-la comme completed. Claude Code affiche cela sous forme de liste à cocher dans l'interface qui se valide en temps réel.

Quelles tâches créer

Décidez, d'après la demande de l'utilisateur, quel sous-ensemble des 4 étapes sera exécuté :

L'utilisateur a demandéTâches à créer
Localisation complète (sous-titres + doublage + mix final)① Transcription ② Traduction ③ Doublage ④ Incrustation sous-titres + mixage
Sous-titres uniquement (pas de changement de voix)① Transcription ② Traduction ③ Incrustation sous-titres (ou mux logiciel)
Doublage uniquement (pas d'incrustation)① Transcription ② Traduction ③ Doublage
L'utilisateur a déjà le SRT sourceIgnorer ① ; créer uniquement les étapes restantes
L'utilisateur a déjà le SRT cibleIgnorer ① et ② ; créer uniquement les étapes restantes

Ne créez pas de tâches pour les étapes que vous n'exécuterez pas — un élément non coché à la fin donne l'impression que "nous avons oublié", pas que "nous avons sauté".

Comment formuler les sujets des tâches

Utilisez les mêmes libellés que ceux du "Modèle de réponse finale" ci-dessous, afin que la liste de contrôle en cours et le résumé de fin soient perçus comme le même artefact :

  • Transcription <langue_source> (par ex., Transcription espagnol)
  • Traduction → <langue_cible> (par ex., Traduction → chinois)
  • Doublage <langue_cible> (par ex., Doublage chinois (Voix hautaine et mature -8%))
  • Incrustation sous-titres + fond sonore <niveau> (par ex., Incrustation sous-titres + fond sonore 0.18)

Pour activeForm, utilisez la variante en cours (En transcription…, En traduction…, En doublage…, En synthèse…).

Discipline d'état

  • Marquez in_progress uniquement pour la tâche en cours d'exécution (une à la fois).
  • Marquez completed immédiatement lorsque le sous-skill renvoie son fichier de sortie — ne faites pas de regroupement.
  • Si une étape soulève une question de clarification ou échoue, laissez-la en in_progress afin que l'utilisateur puisse voir exactement où le pipeline s'est arrêté. Ne marquez pas une étape à moitié terminée comme complétée.
  • Si l'utilisateur redirige en cours de pipeline (par exemple, "saute le doublage"), mettez à jour les tâches restantes : supprimez celles qui ne sont plus applicables, conservez les autres. Ne les supprimez pas silencieusement.

Pipeline canonique de bout en bout (espagnol → chinois, avec doublage + fond sonore + incrustation)

Il s'agit du "scénario de validation" original — contenu espagnol de yoga/spirituel vers le chinois pour 微信视频号 / 小红书. Parcourt les 4 sous-skills.

Étape 1 — Transcrire la source espagnole

Invoquez /wjs-transcribing-audio avec la vidéo et `--language es`.

Le sous-skill gère : le découpage, les horodatages au niveau du mot, l'assemblage des répliques aux limites de ponctuation, la boucle de garde, les nouvelles tentatives. Sortie : entrevista.srt (espagnol, langue source).

Étape 2 — Traduire en chinois simplifié

Invoquez /wjs-translating-subtitles avec le SRT espagnol et la cible `zh-CN`.

Le sous-skill gère : le re-découpage des répliques à la ponctuation, la réduction des démonstratifs de remplissage, la limitation de la longueur des lignes, la préservation du ton du locuteur. Sortie : entrevista.zh-CN.srt.

Étape 3 — (Optionnel) Doublage en chinois

Invoquez /wjs-dubbing-video avec la vidéo + entrevista.zh-CN.srt + un identifiant de voix.

Par défaut pour une voix féminine mature et contemplative : zh_female_gaolengyujie_moon_bigtts (Volcano 高冷御姐, --rate -8% +0Hz). Si pas d'identifiants Volcano : zh-CN-XiaoxiaoNeural --rate -8% --pitch -10Hz. Le sous-skill échantillonne d'abord, puis valide.

Sortie : entrevista_zh_dub.mp4.

Étape 4 — Incruster les sous-titres et mixer le doublage sur l'original en fond sonore

Invoquez /wjs-burning-subtitles avec --video entrevista.mp4 --srt entrevista.zh-CN.srt --dub entrevista_zh_dub.mp4

Le sous-skill gère : la vérification de disponibilité de libass, le repli sur le binaire statique d'evermeet, le calibrage de la taille de police, la vérification d'image avant le rendu complet, le mixage du fond sonore à 0,18.

Sortie : entrevista_zh_final.mp4 (prêt à être diffusé).

Valeurs par défaut standardisées par l'utilisateur

Elles s'appliquent à l'ensemble du pipeline ; chaque sous-skill impose sa propre partie :

  • La reconnaissance vocale chinoise passe d'abord par 豆包 (Volcano) ; Whisper est le repli. Appliqué dans /wjs-transcribing-audio.
  • Une seule voix pour tout le doublage, sauf si l'utilisateur mentionne explicitement plusieurs locuteurs. Appliqué dans /wjs-dubbing-video.
  • L'audio original est conservé comme un fond sonore à faible volume (0,15–0,25) sous tout doublage. Appliqué dans /wjs-burning-subtitles.
  • Incrustation pour 微信视频号 / 抖音 ; mux logiciel pour tout le reste par défaut. Appliqué dans /wjs-burning-subtitles.
  • Nom du CTA de la chaîne (si ajouté à la description) : 王建硕 — jamais le nom d'un invité. (Règle globale depuis ~/.claude/CLAUDE.md ; s'applique lorsque ce pipeline est suivi de /wjs-uploading-video.)

Convention de nommage des fichiers (préservée du skill original)

entrée :                      entrevista.mp4

Pipeline chinois :
  SRT source                  entrevista.srt
  SRT chinois                 entrevista.zh-CN.srt
  Doublage chinois (audio uniquement)  entrevista_zh_dub.mp4
  Final chinois (sous-titres + doublage) entrevista_zh_final.mp4

Pipeline anglais :
  SRT anglais                 entrevista.en.srt
  Doublage anglais            entrevista_en_dub.mp4
  Final anglais               entrevista_en_final.mp4

Sous-titres bilingues :
  Espagnol + chinois          entrevista.es-zh.srt
  Espagnol + anglais          entrevista.es-en.srt
  Trois langues               entrevista.es-zh-en.srt

Les suffixes au format BCP-47 permettent de conserver plusieurs sorties en langues cibles côte à côte et de rendre la cible évidente en un coup d'œil.

Ce que cet orchestrateur NE fait PAS

  • Il ne réimplémente rien. Chaque étape délègue à un sous-skill.
  • Il ne regroupe pas les scripts. dub.py se trouve dans /wjs-dubbing-video/scripts/, render.py dans /wjs-burning-subtitles/scripts/, visual_diarize.py dans /wjs-dubbing-video/scripts/. Si vous voyez des copies obsolètes sous wjs-localizing-video/scripts/, préférez les emplacements canoniques des sous-skills.

Modèle de réponse finale

Lorsque le pipeline complet se termine, répondez brièvement dans la langue de l'utilisateur. Suivez le modèle "Terminé" original auquel l'utilisateur est habitué :

Terminé :
- Transcription espagnol  (/wjs-transcribing-audio)
- Traduction chinois     (/wjs-translating-subtitles)
- Doublage chinois       (/wjs-dubbing-video, voix : Voix hautaine et mature -8%)
- Incrustation sous-titres + fond sonore 0,18  (/wjs-burning-subtitles)

Sortie :
- entrevista.srt
- entrevista.zh-CN.srt
- entrevista_zh_dub.mp4
- entrevista_zh_final.mp4

Parties incertaines :
- 00:01:23–00:01:26 Bruit de fond important, le texte original pourrait ne pas être parfaitement exact.

S'il n'y a pas de parties incertaines, supprimez la deuxième liste.

Voir aussi

  • /wjs-segmenting-video — découpe une vidéo longue en clips courts autonomes (utilise son propre découpeur SRT ; orthogonal à ce pipeline).
  • /wjs-overlaying-video — sous-titres HTML/CSS sur un clip via HyperFrames. Ne combinez pas avec /wjs-burning-subtitles — choisissez un système de sous-titrage par sortie.
  • /wjs-uploading-video — pousse le MP4 final vers YouTube.
  • /lark-minutes — chemin alternatif pour la transcription chinoise uniquement via 飞书妙记 lorsque l'ASR local 豆包 n'est pas configuré.

Individual skills in this repo

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

Skills associés