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é.

Fichier SRT de quatre sous-titres en français avec numéros, codes temporels et texte ; les lettres accentuées, la cédille, le œ, les guillemets et l'apostrophe typographique sont surlignés en orange
Notre fichier d'exemple sous-titres-fr.srt, enregistré en UTF-8, 17 octobre 2026.

Chaque bloc a quatre parties :

  1. Le numéro : 1, 2, 3 et ainsi de suite, dans l'ordre.
  2. 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.
  3. Le texte : une ou deux lignes.
  4. 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 :

sous-titres-fr.srt, relu en Windows-1252
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.
Notre fichier enregistré en UTF-8 et relu en Windows-1252, 17 octobre 2026
CaractèreOctets en UTF-8Affiché 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 :

sous-titres-fr.srt, enregistré en Windows-1252, relu en UTF-8
- 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

  1. Ouvrez le Bloc-notes ou TextEdit. Dans TextEdit, choisissez d'abord Format > Convertir au format Texte ; sinon, le document reste en texte enrichi (RTF).
  2. Écrivez vos sous-titres sur le modèle de notre exemple : numéro, code temporel, texte, ligne vide.
  3. 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.srt devient film.srt.txt.
  4. 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 :

Limites pour les sous-titres en français, relevées le 17 octobre 2026
RéférenceCaractères par ligneVitesse de lecture, programmes pour adultes
Netflix, guide français (France)42jusqu'à 17 caractères par seconde
Netflix, guide français (Canada)42jusqu'à 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 :

Ponctuation des sous-titres selon les guides Netflix, relevés le 17 octobre 2026
RègleFrançais (France)Français (Canada)
Espace avant ? et !ouinon
Espace avant le point-virgulenon précisénon
Deux-pointsespace avant et aprèsespace avant et après
Citationsguillemets droits, sans espaceguillemets droits, sans espace
Deux personnes dans un sous-titretrait d'union suivi d'une espacetrait 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 :

Notre fichier SRT anglais de six sous-titres traduit en français, sans compte, 13 octobre 2026
OutilStructure du fichierAdresse au spectateur
Google Traductionintactevous
DeepLintactevous
Microsoft Bing Translatordans 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-titretu

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 :

exemple.srt
2
00:00:04,900 --> 00:00:08,900
Aujourd’hui : la crème brûlée
de notre pâtissière française.
exemple.vtt
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.
SRT et WebVTT : les différences qui comptent
PointSRTWebVTT
Première lignedirectement le premier numéroWEBVTT
Avant les millisecondesvirgulepoint
Heurestoujours écritesfacultatives
Numéro du sous-titreprésentfacultatif
Encodagenon défini ; UTF-8 exigé par YouTubeUTF-8 obligatoire
Position et stylebalises simples, selon le lecteurréglages de position, blocs STYLE et NOTE
Élément <track> des navigateursnonoui

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.srt pour 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

  1. Encodage : UTF-8, sans BOM. Dans le Bloc-notes, il s'affiche dans la barre d'état.
  2. Structure : numéros dans l'ordre, une ligne vide après chaque bloc.
  3. Codes temporels : hh:mm:ss,mmm --> hh:mm:ss,mmm, avec une virgule et une flèche de deux traits d'union.
  4. Longueur : deux lignes au plus ; chez Netflix, 42 caractères par ligne et 17 caractères par seconde.
  5. Ponctuation : celle du marché visé, France ou Québec.
  6. Une langue par fichier, avec un nom qui l'indique.
  7. Aperçu sur la plateforme de publication, pas seulement dans VLC.