Un fichier SRT est un fichier texte brut qui contient les sous-titres d'une vidéo. Chaque sous-titre y occupe un petit bloc : un numéro, un code temporel comme 00:00:01,000 --> 00:00:04,500, une ou deux lignes de texte, puis une ligne vide. Vous l'ouvrez avec n'importe quel éditeur de texte et le lisez avec la vidéo, par exemple dans VLC. Pour que é, è, ç, à et les guillemets « » s'affichent correctement, enregistrez-le en UTF-8 : YouTube l'exige. Nous avons créé un fichier en français et montrons ce qu'il devient quand un programme se trompe d'encodage.
Fichier SRT : c'est quoi exactement ?
L'extension .srt vient de SubRip, le programme Windows qui a rendu ce format populaire ; on parle aussi de format SubRip. Rien à voir avec SRT, le protocole de diffusion vidéo Secure Reliable Transport, qui porte le même sigle.
Il n'existe pas de norme officielle. La Bibliothèque du Congrès des États-Unis, qui documente les formats de fichiers, décrit le SRT comme un format texte très simple, peu standardisé et sans encodage de caractères défini. C'est cette dernière lacune qui abîme les accents, nous y revenons plus bas.
Sa simplicité fait son succès. YouTube recommande le SRT (ou le SBV) aux personnes qui débutent en sous-titrage, parce qu'il ne contient que des informations de temps de base et se modifie avec n'importe quel éditeur de texte. Le même format sert aux sous-titres de traduction et aux sous-titres pour sourds et malentendants (SME) ; seul le contenu change, les seconds ajoutant par exemple les bruits et la musique.
Le format SRT, bloc par bloc
Voici notre fichier d'exemple : quatre sous-titres d'une petite scène inventée dans un café.

Chaque bloc a quatre parties :
- Le numéro : 1, 2, 3 et ainsi de suite, dans l'ordre.
- Le code temporel : début et fin au format heures:minutes:secondes,millisecondes, reliés par une flèche
-->faite de deux traits d'union et d'un signe « supérieur à ». Avant les millisecondes, une virgule, pas un point. - Le texte : une ou deux lignes.
- Une ligne vide, qui ferme le bloc.
Les plateformes sont plus strictes que le format lui-même. Vimeo, par exemple, attend deux chiffres pour les heures, les minutes et les secondes, et trois pour les millisecondes. Certains lecteurs comprennent des balises comme <i> pour l'italique, <b> pour le gras ou <font color> pour la couleur, mais pas tous, et YouTube ignore tout balisage dans un fichier SRT.
Accents et cédille : ce que fait un mauvais encodage
Un fichier texte ne contient pas des lettres, mais des octets. L'encodage dit quels octets représentent quelle lettre. Deux encodages comptent pour les sous-titres en français :
- UTF-8 peut représenter tous les caractères et s'est imposé. YouTube l'écrit noir sur blanc pour le SRT : « Le fichier doit être au format texte brut UTF-8. »
- Windows-1252, souvent appelé « ANSI » sous Windows, est un ancien encodage pour les langues d'Europe occidentale ; le programme SubRip d'origine enregistrait ses fichiers ainsi. Microsoft le désigne comme « ANSI Latin 1 ; Europe occidentale (Windows) » et prévient que les pages de codes ANSI peuvent différer d'un ordinateur à l'autre : pour des résultats cohérents, les applications doivent utiliser Unicode, par exemple UTF-8.
Nous avons enregistré notre fichier en UTF-8, puis l'avons relu comme s'il était en Windows-1252, ce que fait un programme qui se trompe d'encodage. Voici les sous-titres 2 à 4 :
2
00:00:04,900 --> 00:00:08,900
Aujourd’hui : la crème brûlée
de notre pâtissière française.
3
00:00:09,300 --> 00:00:12,300
- Avec des œufs frais ?
- Oui, c’est déjà prêt !
4
00:00:12,700 --> 00:00:17,200
« Ça sent bon. » Où est la cuillère ?
À côté du bocal, sur l’étagère.| Caractère | Octets en UTF-8 | Affiché en Windows-1252 |
|---|---|---|
| é | C3 A9 | é |
| è | C3 A8 | è |
| ç | C3 A7 | ç |
| Ç | C3 87 | Ç |
| à | C3 A0 | Ã suivi d'une espace insécable |
| À | C3 80 | À |
| œ | C5 93 | Å“ |
| « et » | C2 AB et C2 BB | « et » |
| ’ (apostrophe typographique) | E2 80 99 | ’ |
L'explication tient dans le nombre d'octets. En UTF-8, chaque lettre accentuée de notre fichier occupe deux octets, l'apostrophe typographique trois. Windows-1252 n'utilise qu'un octet par caractère : un programme qui lit en Windows-1252 affiche donc deux ou trois caractères à la place d'un seul. Notre fichier compte 367 caractères ; il pèse 395 octets en UTF-8 et 367 en Windows-1252.
Deux cas sont particulièrement trompeurs. Le « à » devient un « à » suivi d'une espace insécable, qui ressemble à une espace normale. Le « À » majuscule devient « À », avec un signe euro.
L'inverse existe aussi. Enregistré en Windows-1252 puis lu en UTF-8, chaque caractère accentué devient un caractère de remplacement :
- Oui, c�est d�j� pr�t !
� �a sent bon. � O� est la cuill�re ?Les lignes sans accent, elles, passent dans les deux cas. C'est pourquoi un problème d'encodage peut rester invisible sur un fichier anglais et n'apparaître qu'au premier fichier français.
BOM, espace fine, VLC : trois pièges invisibles
- Le BOM. Un fichier UTF-8 peut commencer par une marque invisible, le BOM (byte order mark, ou indicateur d'ordre des octets). Elle est facultative, et certains logiciels ne l'attendent pas : elle peut alors s'afficher sous la forme «  » devant le premier numéro. Subtitle Edit recommande l'UTF-8 sans BOM, et le Bloc-notes de Windows enregistre ainsi les nouveaux fichiers par défaut depuis une mise à jour annoncée par Microsoft en décembre 2018.
- L'espace fine insécable. La typographie française place souvent une espace fine insécable avant ? et !. Ce caractère n'existe pas en Windows-1252 : un fichier enregistré dans cet encodage le perd. L'espace insécable ordinaire, elle, y existe. En UTF-8, les deux sont conservées.
- VLC pardonne beaucoup. Son code source détecte l'UTF-8, se rabat sur Windows-1252, ignore un BOM et accepte un point à la place de la virgule. Un fichier qui s'affiche bien dans VLC peut donc être refusé par YouTube ou Vimeo.
Ouvrir un fichier SRT
- Sous Windows, avec le Bloc-notes : cliquez sur Démarrer, tapez « Bloc-notes » et ouvrez-le. L'encodage du fichier s'affiche en bas à droite, dans la barre d'état.
- Sur Mac, avec TextEdit. Dans TextEdit > Réglages > Ouverture et enregistrement, le menu « Encodage du fichier au format Texte » fixe l'encodage utilisé pour ouvrir et enregistrer les fichiers texte.
- Avec la vidéo, dans VLC : placez le fichier SRT dans le même dossier que la vidéo, sous le même nom, et VLC le charge tout seul (réglage « Détection automatique du fichier de sous-titres », actif par défaut). Sinon, passez par Sous-titres > Ajouter un fichier de sous-titres… VLC reconnaît l'UTF-8 de lui-même (« Détection automatique des sous-titres UTF-8 ») ; pour un fichier dans un autre encodage, indiquez-le dans Outils > Préférences > Sous-titres / OSD > Encodage par défaut.
- Pas dans Word : un traitement de texte ajoute de la mise en forme. Restez sur un éditeur de texte brut.
Créer un fichier SRT
- Ouvrez le Bloc-notes ou TextEdit. Dans TextEdit, choisissez d'abord Format > Convertir au format Texte ; sinon, le document reste en texte enrichi (RTF).
- Écrivez vos sous-titres sur le modèle de notre exemple : numéro, code temporel, texte, ligne vide.
- Enregistrez en UTF-8 avec l'extension .srt. Dans TextEdit, si l'option Ajouter une extension « .txt » aux fichiers au format Texte est cochée,
film.srtdevientfilm.srt.txt. - Surveillez la flèche dans TextEdit. Le réglage « Tirets intelligents » remplace deux traits d'union par un tiret cadratin. Si l'option « Guillemets courbes et tirets uniquement dans les documents RTF » n'est pas cochée, ce remplacement touche aussi les documents au format Texte, et la flèche
-->cesse d'en être une.
Au-delà de quelques lignes, un éditeur de sous-titres fait gagner du temps :
- Subtitle Edit est gratuit et open source, pour Windows, macOS et Linux. Il affiche la forme d'onde du son pour caler les temps, peut transcrire avec Whisper, vérifie vos sous-titres selon les règles de Netflix et enregistre en UTF-8 sans BOM.
- Aegisub, gratuit et open source lui aussi, est fort pour le calage. Il peut rouvrir un fichier abîmé avec un autre jeu de caractères, souvent la réparation la plus rapide. Son format natif est l'ASS : exportez en SRT à la fin.
- Depuis un outil de transcription : si vous transcrivez déjà avec Fireflies, le téléchargement de la transcription propose le SRT. Descript exporte les sous-titres en SRT ou en VTT.
Ne copiez pas d'exemples SRT depuis des pages web. Certains sites transforment les deux traits d'union de la flèche en tiret, et un fichier avec –> au lieu de --> ne fonctionne plus. Tapez la flèche vous-même.
Longueur des lignes et vitesse de lecture
Le format SRT ne fixe aucune limite ; ce sont les diffuseurs qui en fixent. Trois références pour le français :
| Référence | Caractères par ligne | Vitesse de lecture, programmes pour adultes |
|---|---|---|
| Netflix, guide français (France) | 42 | jusqu'à 17 caractères par seconde |
| Netflix, guide français (Canada) | 42 | jusqu'à 17 caractères par seconde |
| Charte de qualité du sous-titrage pour sourds et malentendants (télévision) | non fixé | 12 caractères en une seconde, 20 en deux, 36 en trois, 60 en quatre |
Netflix autorise deux lignes par sous-titre au plus et descend à 13 caractères par seconde pour les programmes pour enfants. Pour les sous-titres SME, ses deux guides français admettent jusqu'à 20 caractères par seconde chez les adultes. Notre fichier d'exemple respecte les limites de Netflix : sa plus longue ligne compte 37 caractères et aucun sous-titre ne dépasse 16 caractères par seconde.
La charte de décembre 2011, élaborée par le Conseil supérieur de l'audiovisuel avec les chaînes, les associations et les laboratoires de sous-titrage, et publiée sur le site de l'Arcom, vaut pour la télévision. Elle limite le sous-titre à deux lignes (trois en direct), tolère un écart de 20 pour cent sur les temps de lecture et prévoit un code couleur : blanc pour un locuteur visible, jaune hors champ, rouge pour les indications sonores, magenta pour la musique, cyan pour les pensées ou la voix off, vert pour une langue étrangère. Dans un SRT, la couleur passe au mieux par la balise <font color>, que certains lecteurs comprennent et que YouTube ignore. Parmi les formats que YouTube accepte, SAMI et RealText gèrent cet attribut de couleur.
France ou Québec : la ponctuation change
En juillet 2025, Netflix a publié un guide distinct pour le français du Canada. Les deux guides partagent la longueur de ligne et la vitesse de lecture, mais pas toute la ponctuation :
| Règle | Français (France) | Français (Canada) |
|---|---|---|
| Espace avant ? et ! | oui | non |
| Espace avant le point-virgule | non précisé | non |
| Deux-points | espace avant et après | espace avant et après |
| Citations | guillemets droits, sans espace | guillemets droits, sans espace |
| Deux personnes dans un sous-titre | trait d'union suivi d'une espace | trait d'union suivi d'une espace |
Deux remarques pratiques :
- Netflix demande des guillemets droits, pas les guillemets français. Notre fichier utilise « » parce que c'est l'usage typographique courant en France. Si votre client a sa propre charte, c'est elle qui compte.
- Le guide pour la France demande « une espace » avant ? et !, sans préciser laquelle. Si vous choisissez l'espace fine insécable, gardez le fichier en UTF-8.
Si la même vidéo vise la France et le Québec, une version par marché évite d'avoir la mauvaise ponctuation dans l'un des deux.
Traduire un fichier SRT
Faites un fichier par langue et ne changez que les lignes de texte : numéros et codes temporels restent identiques.
- Google Traduction n'accepte pas les fichiers SRT : sa traduction de documents ne prend que les formats .docx, .pdf, .pptx et .xlsx, et elle n'est pas disponible sur mobile. Vous pouvez en revanche coller le texte, jusqu'à 5 000 caractères à la fois.
- DeepL traduit les fichiers SRT dans l'onglet « Traduire des fichiers », mais seulement une fois connecté à un compte DeepL Pro ou DeepL API. Gratuitement, la fonction n'est accessible que par l'API.
- Subtitle Edit traduit le texte de chaque sous-titre dans l'éditeur, sans toucher aux codes temporels : gratuitement avec Google Traduction, avec DeepL, ChatGPT ou Claude par votre propre clé d'API, ou avec un modèle local par Ollama.
Le 13 octobre 2026, nous avons collé le même fichier SRT anglais de six sous-titres dans Google Traduction, DeepL et Microsoft Bing Translator, sans être connectés, et l'avons fait traduire en français :
| Outil | Structure du fichier | Adresse au spectateur |
|---|---|---|
| Google Traduction | intacte | vous |
| DeepL | intacte | vous |
| Microsoft Bing Translator | dans un code temporel, virgule remplacée par une espace ; balise de position {\an8} sans sa barre oblique inverse ; deuxième ligne d'un sous-titre commencée par « Et » majuscule ; espaces ajoutées en fin de sous-titre | tu |
Même intacte, aucune traduction n'était utilisable telle quelle :
- Le texte s'allonge : de 19 à 30 pour cent en français, selon l'outil.
- Les lignes débordent : chaque traduction avait au moins une ligne de plus de 42 caractères, jusqu'à 58.
- Le rythme ne suit plus : à timing inchangé, trois ou quatre des six sous-titres dépassaient 17 caractères par seconde dans chaque traduction.
- La ponctuation, elle, était juste : les trois outils ont ajouté l'espace avant ? et !.
Le 15 octobre 2026, avec un fichier allemand traduit en français, la virgule des codes temporels a de nouveau posé problème : dans certaines sessions, Google Traduction l'a remplacée par une espace. Les fichiers longs sont coupés, en plus : Google Traduction prend 5 000 caractères à la fois, et dans notre test du 13 octobre, DeepL sans compte n'a traduit que les 1 500 premiers caractères et Bing les 1 000 premiers. Découpez le fichier aux lignes vides avant de le coller.
Après la traduction, raccourcissez, vérifiez la structure (même nombre de sous-titres, codes temporels et flèches identiques) et choisissez une fois pour toutes entre vous et tu.
SRT ou WebVTT ?
Le WebVTT (.vtt) est né en 2010 sous le nom de WebSRT. Il ressemble au SRT, mais ce n'est pas un simple SRT renommé. Le même sous-titre dans les deux formats :
2
00:00:04,900 --> 00:00:08,900
Aujourd’hui : la crème brûlée
de notre pâtissière française.WEBVTT
2
00:00:04.900 --> 00:00:08.900
Aujourd’hui : la crème brûlée
de notre pâtissière française.| Point | SRT | WebVTT |
|---|---|---|
| Première ligne | directement le premier numéro | WEBVTT |
| Avant les millisecondes | virgule | point |
| Heures | toujours écrites | facultatives |
| Numéro du sous-titre | présent | facultatif |
| Encodage | non défini ; UTF-8 exigé par YouTube | UTF-8 obligatoire |
| Position et style | balises simples, selon le lecteur | réglages de position, blocs STYLE et NOTE |
Élément <track> des navigateurs | non | oui |
Sur YouTube, un fichier WebVTT peut positionner les sous-titres, mais n'accepte comme style que le gras, l'italique et le souligné. Vimeo recommande le WebVTT. Utilisez le SRT là où une plateforme l'exige, comme LinkedIn, et le WebVTT pour votre propre lecteur web ou quand la position compte.
Importer le fichier sur YouTube, Vimeo, LinkedIn et Meta
- YouTube : dans YouTube Studio, choisissez Sous-titres dans le menu de gauche, puis la vidéo. Cliquez sur Ajouter une langue, puis, sous « Sous-titres », sur Ajouter. Choisissez Importer un fichier, sélectionnez votre fichier et enregistrez. UTF-8 brut uniquement ; le balisage est ignoré.
- Vimeo : UTF-8, codes temporels avec le nombre exact de chiffres ; WebVTT recommandé.
- LinkedIn : SRT uniquement, et seulement depuis un navigateur sur ordinateur.
- Publicités Facebook et Instagram : le nom du fichier doit suivre le modèle nomdufichier.[code de langue]_[code de pays].srt ; Meta donne l'exemple
ice_cream_ad.en_US.srtpour l'anglais des États-Unis. Avec un nom erroné ou un code incorrect, les sous-titres ne sont pas importés : vérifiez votre code dans la liste de Meta. Sur Facebook, importez un fichier .srt par langue.
Si la vidéo vit aussi sur votre propre site, avec une page par langue, reliez ces pages par des balises hreflang ; notre guide hreflang et balise canonical montre comment. Pour un site qui s'adresse à plusieurs pays, notre guide du SEO international explique comment l'organiser.
Liste de contrôle avant l'import
- Encodage : UTF-8, sans BOM. Dans le Bloc-notes, il s'affiche dans la barre d'état.
- Structure : numéros dans l'ordre, une ligne vide après chaque bloc.
- Codes temporels :
hh:mm:ss,mmm --> hh:mm:ss,mmm, avec une virgule et une flèche de deux traits d'union. - Longueur : deux lignes au plus ; chez Netflix, 42 caractères par ligne et 17 caractères par seconde.
- Ponctuation : celle du marché visé, France ou Québec.
- Une langue par fichier, avec un nom qui l'indique.
- Aperçu sur la plateforme de publication, pas seulement dans VLC.
