Communitygithub.com

kaylon-he/video-subtitle-skill

Ajoute automatiquement des sous-titres incrustés à un fichier vidéo ou une URL et génère un MP4 sous-titré ainsi qu'un fichier SRT. À utiliser lorsque l'utilisateur demande de légender ou sous-titrer une vidéo. Ne pas utiliser pour éditer des sous-titres existants uniquement.

Qu'est-ce que video-subtitle-skill ?

Ce skill automatise l'ajout de sous-titres incrustés (hard subtitles) à des vidéos, produisant un fichier MP4 avec sous-titres et un fichier SRT. Il est conçu pour les développeurs et utilisateurs d'agents IA qui doivent sous-titrer rapidement des vidéos, par exemple des présentations, tutoriels ou contenus multilingues. Le skill prend en charge les vidéos locales ou via URL, et fonctionne sur les plateformes prenant en charge les scripts shell (Linux, macOS, WSL). Il utilise une pipeline en quatre étapes : extraction audio avec ffmpeg, transcription avec whisper.cpp (via whisper-cli), conversion SRT en ASS avec gestion intelligente des retours à la ligne pour le CJK, puis incrustation des sous-titres avec ffmpeg compilé avec libass. Une attention particulière est portée à l'exactitude des transcriptions (notamment pour les noms propres et expressions idiomatiques) et à la qualité des sous-titres (pas de débordement). Un mécanisme de vérification et correction manuelle est recommandé avant livraison finale.

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

Demander à votre IA préférée

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

Documentation

Sous-titres Vidéo

Ajoute automatiquement des sous-titres à une vidéo et les incruste dans l'image, produisant un « MP4 sous-titré + SRT ».

Pipeline

  1. Extraction audio en wav 16k mono (ffmpeg)
  2. Transcription via whisper.cpp en SRT (whisper-cli)
  3. SRT → ASS : retours à la ligne automatiques selon la largeur de l'image, police CJK, fond semi-transparent centré en bas
  4. Incrustation de l'ASS avec ffmpeg (nécessite libass), copie directe de la piste audio

Utilisation

bash scripts/add_subtitles.sh entree.mp4 -o sortie.mp4 -l fr
  • -l/--language Langue source, par défaut zh, peut être auto
  • -f/--fontsize Taille de police, par défaut 42
  • -s/--srt-only Génère uniquement le SRT, sans incrustation

Règles impératives

  • Vérifier le texte transcrit avant livraison : le script affiche le SRT dans le terminal. Les noms de personnes, de lieux et les expressions idiomatiques sont souvent mal reconnus (ex. : « 重阳姐 » → « 重阳节 », « 久久重扬 » → « 九九重阳 »). En cas d'erreur, utilisez -s pour générer une nouvelle version, corrigez le SRT, puis incrustez.
  • Valider le rendu final : extrayez 2 à 3 images du fichier final (-ss <secondes> -frames:v 1) pour vérifier que les sous-titres sont complets et ne sont ni coupés ni débordants.
  • Ne pas utiliser le ffmpeg allégé de Homebrew : cette version n'inclut pas libass, les filtres subtitles/ass/drawtext sont absents. Le script sélectionne automatiquement un ffmpeg avec libass ; voir README.md pour l'installation.
  • Couper les phrases longues : l'ASS utilise WrapStyle: 2 (reconnaît uniquement \N), srt_to_ass.py insère automatiquement \N en fonction de largeur de l'image / taille de police. Si une phrase déborde encore, réduisez la taille avec -f.

Dépendances

ffmpeg (avec libass) + whisper-cli + modèle ggml + python3. En cas d'absence, le script affiche une erreur claire. La liste complète des bibliothèques, les commandes d'installation et les instructions de dépannage se trouvent dans le README.md.

Skills associés