Vérifié juillet 2026
Convertisseur VTT vers SRT (Gratuit, Côté Client)
Convertissez un fichier .vtt en .srt — ou l'inverse — entièrement dans votre navigateur. Rien ne quitte votre appareil. Rapport de conversion honnête montrant exactement ce qui a été retiré.
Déposez un fichier de sous-titres (ou collez du texte), choisissez une direction, téléchargez le fichier converti. L'outil tourne à 100% dans votre navigateur avec JavaScript — aucun upload, aucun serveur, aucun compte. Gère l'en-tête WEBVTT, le swap de séparateur timecode (point ↔ virgule), la renumération des identifiants de cues, et retire les features WebVTT-only (styles inline, positionnement des cues, blocs NOTE et STYLE) que SRT ne peut pas représenter.
or drag & drop, or paste text below
Ce qui vient de se passer — la conversion en un paragraphe
Quatre changements mécaniques transforment un fichier WebVTT en fichier SRT valide. Premièrement, la ligne d'en-tête WEBVTT — plus les blocs NOTE, STYLE et REGION — sont retirés car SRT n'a pas de concept d'en-tête. Deuxièmement, chaque séparateur milliseconde de timecode passe du point (00:00:03.500) à la virgule (00:00:03,500). Troisièmement, les identifiants de cues VTT (label optionnel au-dessus de chaque timecode) sont remplacés par des numéros séquentiels commençant à 1, car SRT exige des cues numérotées. Quatrièmement, les styles inline (<c.className>, <v Speaker>) et les paramètres de positionnement (line:0 position:50%) sont retirés. Le texte, la précision temporelle et l'ordre des cues restent identiques.
SRT → VTT est l'inverse : préfixer avec l'en-tête WEBVTT, swap virgules en points dans les timecodes, drop des numéros séquentiels (optionnels en VTT). Le reste — texte et timing — passe tel quel.
VTT vs SRT — la différence rapide
Les deux sont des formats de sous-titres en texte brut. Voici ce qui diffère réellement au niveau du fichier.
| Champ | VTT (WebVTT) | SRT (SubRip) |
|---|---|---|
| Séparateur timecode | Point — 00:00:03.500 | Virgule — 00:00:03,500 |
| En-tête fichier | Ligne WEBVTT requise en haut | Aucun — commence par cue #1 |
| Identifiant cue | Label optionnel au-dessus du timecode | Numéro séquentiel (1, 2, 3…) |
| Styles inline | <c.class>, <v Speaker>, <i>, <b>, <ruby> | Texte seulement (certains players honorent <i>, <b>) |
| Positionnement | line:, position:, align:, size: | Non supporté |
| Usage principal | HTML5 <track>, streaming HLS | YouTube, Premiere, DaVinci, CapCut |
Quand convertir VTT → SRT
Convertissez en SRT chaque fois que la destination est un éditeur vidéo ou un workflow d'upload de captions qui n'est pas un navigateur web. Cas concrets :
- Upload de captions YouTube Studio. YouTube accepte les deux, mais SRT est le format que les docs YouTube et tous les tutoriels référencent — plus sûr et plus facile à débugger.
- Adobe Premiere Pro, Final Cut Pro, DaVinci Resolve, Avid Media Composer. Tous parsent SRT nativement via File → Import Captions. Le support VTT varie par version et est bugué dans les anciens releases.
- CapCut, InShot, VN, et autres éditeurs mobiles. SRT est le format d'import universel. Certains n'acceptent pas VTT du tout.
- Vimeo, Wistia, et outils broadcast legacy. SRT est le défaut sûr quand les docs plateforme ne listent pas explicitement VTT.
- VLC, MPC-HC, PotPlayer (players desktop). Les deux fonctionnent, mais les fichiers .srt sidecar sont le standard de facto à côté d'un fichier vidéo.
Quand convertir SRT → VTT
Convertissez en VTT quand la destination est un navigateur web rendant un élément HTML5 <video>. Cas concrets :
- Intégration HTML5 <track>. Les navigateurs ne parsent que WebVTT pour l'élément
<track kind="captions" src="...">. Un .srt attaché à un tag track échouera silencieusement. - Streaming HLS et DASH. Les manifests adaptive-bitrate référencent des sidecars WebVTT pour les captions. Si vous avez des masters SRT, convertissez avant packaging.
- Video.js, Plyr, et autres players JS. La plupart exigent VTT — certains supportent SRT via plugins, mais VTT est le défaut sûr.
- Vidéos pédagogiques self-hosted avec captions stylées. Seul VTT supporte les cue classes CSS-styleables, le positionnement, et les voice tags de locuteurs.
Erreurs courantes et corrections
Mojibake — caractères accentués comme é ou ’
Symptôme : Vous avez uploadé un fichier Windows-1252 ou ISO-8859-1. Les caractères UTF-8 ont été mal lus.
Correction : Ré-enregistrez le fichier en UTF-8 (sans BOM). Dans VS Code : encoding label en bas à droite → Save with Encoding → UTF-8. Notepad++ : menu Encoding → Convert to UTF-8. Puis relancez le convertisseur.
Les cues fusionnent à l'écran après conversion
Symptôme : Deux sous-titres s'affichent en même temps, ou un cue en écrase un autre.
Correction : SRT requiert une ligne vide entre chaque cue. Si votre VTT source a été édité à la main sans lignes vides, le parser le traite comme un seul bloc de cue. Corrigez la source, puis reconvertissez.
Le player rejette le .srt comme corrompu
Symptôme : VLC, YouTube Studio, ou votre éditeur ne charge pas le fichier.
Correction : Vérifiez le format timecode — SRT utilise HH:MM:SS,mmm (virgule, 3 chiffres milliseconds). Si votre fichier a HH:MM:SS.mmm (point), il est encore au format VTT. Re-téléchargez depuis cet outil.
BOM UTF-8 casse le premier cue
Symptôme : Cue #1 apparaît comme 1 avec un préfixe invisible, ou le player le saute.
Correction : Ré-enregistrez sans BOM. Cet outil exporte sans BOM par défaut ; le problème vient généralement d'un fichier source exporté par Excel ou un vieux Notepad.
Vous n'avez pas encore de fichier de sous-titres ?
Ce convertisseur transforme uniquement un fichier .vtt ou .srt existant. Si vous avez un fichier vidéo ou audio et pas de sous-titres, il vous faut d'abord la transcription. VexaScribe génère les deux formats directement depuis les sources média avec Whisper Large-v3 — horodatages au niveau du mot, 99 langues, vous choisissez le format d'export à la fin.
Sauter le workflow en deux étapes
Uploadez de l'audio ou de la vidéo (ou collez une URL YouTube / TikTok / Google Drive). VexaScribe transcrit, aligne les timestamps, et exporte en .srt ou .vtt — au choix. 30 minutes gratuites, sans carte.
Questions fréquentes
Qu'est-ce qui change concrètement quand je convertis VTT en SRT ?
Quatre choses. (1) La ligne d'en-tête WEBVTT et les métadonnées d'en-tête (blocs NOTE, STYLE, REGION) sont supprimées — le format SRT ne les possède pas. (2) Les timecodes changent de séparateur : 00:00:03.500 (VTT utilise un point avant les millisecondes) devient 00:00:03,500 (SRT utilise une virgule). (3) Les identifiants de cues (labels optionnels au-dessus des timecodes en VTT) sont remplacés par des numéros séquentiels commençant à 1 — SRT exige des cues numérotées. (4) Les styles inline et le positionnement sont retirés : les tags WebVTT (c.className, v Speaker, i, b, ruby) et le positionnement (line:0 position:50%) disparaissent car SRT n'a pas d'équivalent syntaxique. Le contenu texte, la précision temporelle et l'ordre des cues sont préservés.
Le fichier quitte-t-il mon navigateur ?
Non. Ce convertisseur tourne entièrement dans votre navigateur — le fichier .vtt ou .srt que vous uploadez est lu et traité localement avec JavaScript. Aucun upload vers un serveur, aucune requête vers une API. Vous pouvez le vérifier en ouvrant les DevTools du navigateur → onglet Network — vous ne verrez aucune requête pour votre fichier de sous-titres. C'est important quand le fichier contient du contenu sensible (enregistrements de support client, formation interne, contenu média non publié).
Qu'est-ce qui se perd dans la conversion ?
Les fonctionnalités spécifiques à WebVTT que SRT ne peut pas représenter. Styles : les tags c.class, v Speaker, i, b, u, ruby, rt sont tous retirés. Positionnement : les paramètres de cue comme line:0, position:50%, align:center sont supprimés. Métadonnées : l'en-tête WEBVTT + blocs NOTE + blocs STYLE + définitions REGION sont retirés. Les identifiants de cues (le label optionnel au-dessus d'un timecode) sont remplacés par des numéros séquentiels. Le rapport de conversion affiché sur cette page vous indique exactement ce qui a été retiré de votre fichier. Le contenu texte, la précision temporelle et l'ordre des cues sont tous préservés.
Pourquoi YouTube et les éditeurs vidéo veulent-ils SRT plutôt que VTT ?
SRT (SubRip) est plus ancien (début des années 2000) et plus simple — pas de style, pas de métadonnées, pas d'options de positionnement. Cette simplicité l'a rendu universel : quasiment tous les éditeurs vidéo (Premiere, DaVinci Resolve, Final Cut Pro, CapCut, Avid), tous les players (VLC, MPC), et le workflow d'upload de sous-titres de YouTube parsent nativement SRT. WebVTT (standardisé W3C en 2010) est plus récent et plus riche — conçu pour l'élément HTML5 track avec styles et positionnement — mais cette richesse n'est pas supportée par la plupart des plateformes non-web. Si votre cible est le web (HTML5 video), gardez VTT. Si votre cible est un éditeur vidéo ou l'upload sur YouTube Studio, convertissez en SRT.
Pourquoi les players web HTML5 veulent-ils VTT plutôt que SRT ?
L'élément HTML5 track exige spécifiquement le format WebVTT pour les captions et sous-titres embarqués. Le W3C a standardisé WebVTT (Web Video Text Tracks) autour de 2010 pour supporter les styles CSS-like, le positionnement des cues et les métadonnées inline. Les navigateurs ne parsent pas un fichier .srt comme track HTML5. Si vous avez un fichier SRT et voulez l'attacher à un élément video via track, passez-le d'abord dans la direction SRT → VTT de ce convertisseur.
Et pour les formats SSA / ASS / TTML ?
Ce convertisseur gère les deux formats de sous-titres les plus courants : SRT et VTT. Pour SSA/ASS (Advanced SubStation Alpha — anime et karaoké), le chemin de conversion est plus complexe car ASS possède un stylage étendu que ni SRT ni VTT ne peuvent représenter — utilisez Subtitle Edit ou Aegisub pour ça. Pour TTML/IMSC1.1 (broadcast, livraison Netflix), utilisez un outil professionnel qui gère les formats XML. Ce convertisseur est intentionnellement focalisé sur la conversion SRT ↔ VTT car ils représentent 90%+ des conversions de sous-titres pour les workflows créateurs.