VideoCaptioner CLI
Sous-titrage vidéo assisté par IA : transcrire la parole → optimiser les sous-titres → traduire → incruster dans la vidéo avec un rendu élégant.
Quand l'utiliser
- L'utilisateur souhaite ajouter des sous-titres à une vidéo
- L'utilisateur souhaite transcrire un fichier audio/vidéo en texte
- L'utilisateur souhaite traduire des sous-titres dans une autre langue
- L'utilisateur souhaite personnaliser l'apparence des sous-titres (couleurs, polices, fonds arrondis)
- L'utilisateur souhaite télécharger et sous-titrer des vidéos en ligne
Avant de commencer
Exécutez toujours videocaptioner <commande> --help en premier pour vérifier les dernières options et les valeurs par défaut avant d'exécuter une commande. Les exemples ci-dessous sont des motifs courants, mais --help est la source de vérité.
- Installation :
pip install videocaptioner - FFmpeg requis pour la synthèse vidéo (
brew install ffmpegsur macOS) - Gratuit (sans clé API) : transcription (bijian/jianying), traduction (Bing/Google)
- Nécessite une clé API LLM : optimisation des sous-titres, re-segmentation des sous-titres, traduction LLM. Définir via la variable d'environnement
OPENAI_API_KEYou le paramètre--api-key
Scénarios courants
1. Ajouter des sous-titres anglais à une vidéo chinoise (une seule commande, tout gratuit)
videocaptioner process video.mp4 --asr bijian --translator bing --target-language en \
--subtitle-mode hard --quality high -o output.mp4
2. Transcrire une vidéo en SRT (gratuit)
videocaptioner transcribe video.mp4 --asr bijian -o output.srt
# Sortie au format JSON vers un dossier
videocaptioner transcribe video.mp4 --asr bijian --format json -o ./subtitles/
3. Traduire des sous-titres existants
# Gratuit Bing → Anglais, sortie bilingue avec traduction au-dessus de l'original
videocaptioner subtitle input.srt --translator bing --target-language en --layout target-above -o translated.srt
# Gratuit Google → Japonais, traduction uniquement (supprime le texte original)
videocaptioner subtitle input.srt --translator google --target-language ja --no-optimize --layout target-only -o output_ja.srt
# Traduction LLM de haute qualité avec mode réflexif
videocaptioner subtitle input.srt --translator llm --target-language en --reflect \
--api-key $OPENAI_API_KEY -o output_en.srt
4. Pipeline complet avec sous-titres stylisés
# Sous-titres style anime (couleur chaude + contour orange), vidéo haute qualité
videocaptioner process video.mp4 --asr bijian --translator bing --target-language ja \
--subtitle-mode hard --style anime --quality high -o output_ja.mp4
# Sous-titres modernes avec fond arrondi
videocaptioner process video.mp4 --asr bijian --translator google --target-language ko \
--subtitle-mode hard --render-mode rounded -o output_ko.mp4
# Couleurs personnalisées : texte blanc avec contour rouge, qualité ultra
videocaptioner process video.mp4 --asr bijian --translator bing --target-language en \
--subtitle-mode hard --quality ultra \
--style-override '{"outline_color": "#ff0000", "primary_color": "#ffffff"}' -o output_en.mp4
5. Sous-titres uniquement, sortie au format ASS (sans synthèse vidéo)
videocaptioner process video.mp4 --asr bijian --translator bing --target-language en \
--format ass --no-synthesize -o ./output/
6. Contrôle étape par étape (transcrire → traduire → synthétiser séparément)
# Étape 1 : Transcrire
videocaptioner transcribe video.mp4 --asr bijian -o video.srt
# Étape 2 : Traduire (bilingue, texte original au-dessus de la traduction)
videocaptioner subtitle video.srt --translator bing --target-language en --layout source-above -o video_en.srt
# Étape 3 : Incruster dans la vidéo avec fond arrondi, haute qualité
videocaptioner synthesize video.mp4 -s video_en.srt --subtitle-mode hard \
--render-mode rounded --quality high -o video_with_subs.mp4
7. Traiter un fichier audio (ignore automatiquement la synthèse vidéo)
videocaptioner process podcast.mp3 --asr bijian --translator bing --target-language en -o ./output/
8. Transcrire d'autres langues (whisper-api)
videocaptioner transcribe french_video.mp4 --asr whisper-api \
--whisper-api-key $OPENAI_API_KEY --language fr -o french.srt
9. Optimiser uniquement les sous-titres avec LLM (corriger les erreurs ASR, sans traduction)
videocaptioner subtitle raw_subtitle.srt --no-translate --api-key $OPENAI_API_KEY -o optimized.srt
10. Style de fond arrondi personnalisé avec police personnalisée
videocaptioner synthesize video.mp4 -s subtitle.srt --subtitle-mode hard \
--style-override '{"text_color": "#ffffff", "bg_color": "#000000cc", "corner_radius": 10, "font_size": 36}' \
--font-file ./NotoSansSC.ttf --quality high -o styled_video.mp4
Référence des commandes
| Commande | Objectif |
|---|---|
transcribe | Parole → sous-titres. Moteurs : bijian(gratuit) jianying(gratuit) whisper-api whisper-cpp |
subtitle | Optimiser (LLM) et/ou traduire (LLM/Bing/Google) des fichiers de sous-titres |
synthesize | Incruster les sous-titres dans une vidéo avec des styles personnalisables |
process | Pipeline complet : transcrire → optimiser → traduire → synthétiser |
download | Télécharger une vidéo depuis YouTube, Bilibili, etc. |
config | Gérer les paramètres (show set get path init) |
style | Lister tous les styles de sous-titres prédéfinis avec leurs paramètres |
Exécutez videocaptioner <commande> --help pour toutes les options.
Styles de sous-titres
Deux modes de rendu pour des sous-titres élégants :
Mode ASS (par défaut) — style contour/ombre :
- Préréglages :
default(blanc+contour noir),anime(chaud+contour orange),vertical(vidéos portrait) - Champs personnalisables :
font_name,font_size,primary_color,outline_color,outline_width,bold,spacing,margin_bottom
Mode arrondi — boîtes de fond arrondies modernes :
- Préréglage :
rounded(texte foncé sur fond semi-transparent) - Champs personnalisables :
font_name,font_size,text_color,bg_color(#rrggbbaa),corner_radius,padding_h,padding_v,margin_bottom
Les options de style fonctionnent uniquement avec --subtitle-mode hard.
Langues cibles
Codes BCP 47 : zh-Hans zh-Hant en ja ko fr de es ru pt it ar th vi id et 23 autres.
Variables d'environnement
| Variable | Objectif |
|---|---|
OPENAI_API_KEY | Clé API LLM |
OPENAI_BASE_URL | URL de base de l'API LLM |
Codes de sortie
0 succès · 2 mauvais arguments · 3 fichier introuvable · 4 dépendance manquante · 5 erreur d'exécution
Astuces
- Utilisez
-qpour le scripting (stdout = chemin du résultat uniquement) - La traduction Bing/Google est gratuite, aucune clé API nécessaire
- Les ASR
bijian/jianyingsont gratuits mais ne prennent en charge que le chinois et l'anglais - Exécutez
videocaptioner stylepour voir tous les styles prédéfinis