Pour convertir un fichier TXT en SRT, il faut ajouter ce qu'un fichier texte ne contient pas : pour chaque sous-titre, un numéro, un code temporel de début et un de fin. Renommer transcription.txt en transcription.srt ne change rien au contenu. La façon d'ajouter les codes temporels dépend de ce que vous avez : une transcription horodatée se remet en forme, un texte brut accompagné de la vidéo peut être synchronisé automatiquement, et un texte seul doit être découpé et minuté à la main. Nous avons converti notre propre transcription d'exemple en quatre langues et vérifié chaque sous-titre avec les vitesses de lecture des guides de Netflix.
Quelle méthode pour votre fichier ?
| Ce que vous avez | Ce qu'il faut faire | Outils gratuits |
|---|---|---|
| Un texte avec un code temporel sur chaque ligne | Le remettre en forme : numéros, fins, retours à la ligne | Le court script ci-dessous ou un éditeur de texte |
| Un texte brut et la vidéo | Laisser un logiciel caler le texte sur la parole | Synchronisation automatique de YouTube Studio, alignement forcé de Subtitle Edit |
| Un texte brut seul | Le découper en sous-titres et les minuter à la main | Subtitle Edit, YouTube Studio |
Deux raccourcis d'abord. Si la transcription sort d'un outil qui sait aussi faire des sous-titres, exportez le SRT depuis cet outil : Fireflies propose le SRT parmi les formats de téléchargement des transcriptions, et Descript exporte les sous-titres en SRT ou en VTT. Et si votre fichier n'est pas du texte brut mais du WebVTT ou du LRC, il contient déjà des codes temporels : voyez le fichier VTT et convertir un LRC en SRT.
Ce qui manque à une transcription TXT
Voici l'exemple que nous avons écrit pour ce guide : les 40 premières secondes d'une vidéo imaginaire d'une petite boutique en ligne. Chaque ligne commence par le moment où elle est prononcée, comme le font beaucoup d'outils de transcription :
[00:00:00] Bonjour, je suis Camille, et voici la table d'emballage de notre petite boutique.
[00:00:05] Aujourd'hui, je vous montre comment nous emballons une tasse en céramique pour qu'elle arrive intacte.
[00:00:10] D'abord, enveloppez l'anse à part : c'est elle qui casse le plus souvent.
[00:00:15] Ensuite, roulez toute la tasse dans deux couches de papier.
[00:00:18] [bruit de ruban adhésif]
[00:00:20] Choisissez un carton qui laisse environ deux doigts d'espace de chaque côté.
[00:00:24] Remplissez cet espace de papier froissé jusqu'à ce que plus rien ne bouge quand vous secouez le carton, puis fermez les bords au ruban adhésif en H, dessus et dessous.
[00:00:35] Et voilà.
[00:00:37] Des questions ? Posez-les en commentaire.Un fichier SRT demande quatre éléments par sous-titre : un numéro, une ligne de temps au format hh:mm:ss,mmm --> hh:mm:ss,mmm, une ou deux lignes de texte et une ligne vide. Notre guide du fichier SRT détaille le format. Il manque donc à la transcription les numéros et toutes les fins, et ses lignes sont trop longues : l'une d'elles occuperait quatre lignes à l'écran. Ses codes n'ont que des secondes entières : le résultat sera juste à une seconde près, ce qui suffit le plus souvent.
Méthode 1 : la transcription a déjà des codes temporels
Il suffit alors d'une mise en forme, selon ces règles :
- Un code temporel par sous-titre. Une transcription copiée depuis le panneau de transcription de YouTube place chaque code temporel sur sa propre ligne, au-dessus du texte. Notre script a aussi lu cette présentation et produit exactement le même fichier SRT.
- Chaque sous-titre se termine quand le suivant commence, mais au bout de 7 secondes au plus. Les règles générales de Netflix prévoient entre 5/6 de seconde et 7 secondes par sous-titre.
- Le dernier sous-titre a besoin d'un temps de lecture. Divisez son nombre de caractères par la vitesse de lecture. Notre dernière ligne compte 41 caractères ; à 17 caractères par seconde, cela fait environ 2,4 secondes, elle se termine donc à
00:00:39,412. - Coupez les lignes trop longues. Le guide français de Netflix autorise 42 caractères par ligne et deux lignes par sous-titre. Coupez après une ponctuation ou avant « et », « dans » ou « de », jamais entre l'article et le nom. Comme le français met une espace avant « ? » et « ! », veillez aussi à ce que ces signes ne se retrouvent pas seuls en début de ligne.
- Ce qui ne tient pas sur deux lignes devient deux sous-titres, qui se partagent le temps selon leur longueur.
- Numérotez à partir de 1, laissez une ligne vide après chaque sous-titre et enregistrez le fichier en UTF-8.
Nous avons écrit un petit script qui fait les étapes 1 à 6, puis vérifie le résultat : numéros, flèche, longueur des lignes et caractères par seconde. Voici ce qu'il a tiré de notre exemple :

La vérification a signalé quatre sous-titres plus rapides que les 17 caractères par seconde que Netflix fixe pour le français, contre 20 pour l'anglais. Pour comparer, nous avons écrit la même courte scène en anglais, en allemand et en espagnol, puis l'avons convertie de la même manière :
| Langue | Sous-titres | Ligne la plus longue | Sous-titre le plus rapide | Limite Netflix | Trop rapides |
|---|---|---|---|---|---|
| Français | 13 | 41 caractères | 20,2 caractères par seconde | 17 | 4 |
| Anglais | 10 | 41 caractères | 19,5 caractères par seconde | 20 | 0 |
| Allemand | 12 | 42 caractères | 20,5 caractères par seconde | 17 | 3 |
| Espagnol | 10 | 42 caractères | 17 caractères par seconde | 17 | 0 |
Aucun script ne corrige un sous-titre trop rapide : il faut raccourcir le texte. Nous avons réécrit trois phrases ; « Ensuite, roulez toute la tasse dans deux couches de papier. », par exemple, est devenue « Puis roulez la tasse dans deux couches de papier. ». Après cela, plus aucun sous-titre ne dépassait la limite. C'est la même chose quand vous traduisez des sous-titres : les codes temporels restent, donc un texte français plus long doit être formulé plus court. Pour les sous-titres destinés aux sourds et malentendants, le guide français de Netflix admet jusqu'à 20 caractères par seconde.
Un court script à utiliser vous-même
Si votre transcription commence chaque ligne par un code temporel, ce script en fait un fichier SRT. Il vous faut Node.js, qui est gratuit. Enregistrez le code sous txt2srt.mjs et lancez node txt2srt.mjs transcription.txt transcription.srt :
// txt2srt.mjs : transforme des lignes comme « [00:01:05] texte » en fichier SRT et signale les sous-titres à revoir.
// Utilisation : node txt2srt.mjs transcription.txt transcription.srt
import { readFileSync, writeFileSync } from 'node:fs'
const MAX_LINE = 42 // caractères par ligne, deux lignes par sous-titre
const MAX_CPS = 17 // caractères par seconde : 17 pour le français, 20 pour l’anglais
const [input, output] = process.argv.slice(2)
const cues = []
for (const line of readFileSync(input, 'utf8').replace(/^/, '').split(/\r?\n/)) {
const m = line.match(/^\[?(?:(\d{1,2}):)?(\d{1,2}):(\d{2})\]?\s+(.+)/)
if (m) cues.push({ start: ((+(m[1] ?? 0) * 60 + +m[2]) * 60 + +m[3]) * 1000, text: m[4].trim() })
}
const time = (ms) => new Date(ms).toISOString().slice(11, 23).replace('.', ',')
const wrap = (text) => {
if (text.length <= MAX_LINE) return text
let cut = -1
for (let i = 0; i < text.length; i++)
if (text[i] === ' ' && (cut < 0 || Math.abs(i - text.length / 2) < Math.abs(cut - text.length / 2))) cut = i
return cut < 0 ? text : text.slice(0, cut) + '\n' + text.slice(cut + 1)
}
let srt = ''
cues.forEach((cue, i) => {
// Fin = début du sous-titre suivant, 7 secondes au plus ; le dernier reste affiché le temps de le lire.
const next = cues[i + 1]?.start
const end = next !== undefined ? Math.min(next, cue.start + 7000) : cue.start + Math.max(1000, Math.ceil((cue.text.length / MAX_CPS) * 1000))
const lines = wrap(cue.text)
srt += `${i + 1}\n${time(cue.start)} --> ${time(end)}\n${lines}\n\n`
const cps = lines.replace('\n', '').length / ((end - cue.start) / 1000)
if (lines.split('\n').some((l) => l.length > MAX_LINE)) console.log(`Sous-titre ${i + 1} : trop long pour deux lignes, à couper`)
if (cps > MAX_CPS) console.log(`Sous-titre ${i + 1} : ${cps.toFixed(1)} caractères par seconde, à raccourcir`)
})
writeFileSync(output, srt, 'utf8')Il lit les codes comme [00:01:05], 00:01:05 ou 1:05 quand le texte suit sur la même ligne. Il coupe les lignes longues à l'espace le plus proche du milieu, pas toujours au bon endroit : il peut même renvoyer un « ? » en début de ligne. Relisez chaque sous-titre de deux lignes. Sur notre exemple français, il a signalé trois sous-titres trop longs pour deux lignes et quatre trop rapides, à couper et à raccourcir à la main.
Méthode 2 : le texte brut et la vidéo
Quand le texte n'a aucun code temporel, un logiciel peut écouter la vidéo et y placer vos mots. On parle d'alignement (en anglais « forced alignment »), et votre texte reste exactement tel que vous l'avez écrit.
YouTube Studio, pour vos propres vidéos. D'après l'aide de YouTube, connectez-vous à YouTube Studio, sélectionnez Sous-titres dans le menu de gauche, puis la vidéo. Cliquez sur Ajouter une langue, choisissez la langue et, sous « Sous-titres », cliquez sur Ajouter. Sélectionnez ensuite Synchronisation automatique, saisissez ce qui est dit dans la vidéo ou importez un fichier de transcription, puis terminez par MODIFIER et ENREGISTRER ET FERMER. Le réglage des codes temporels peut prendre quelques minutes ; les sous-titres sont ensuite publiés automatiquement sur la vidéo.
YouTube pose trois conditions : la transcription doit être dans la langue parlée dans la vidéo, cette langue doit être prise en charge par sa reconnaissance vocale, et les transcriptions ne sont pas recommandées pour les vidéos de plus d'une heure ou d'une qualité audio médiocre. Ses conseils pour le fichier : du texte brut (.txt), une ligne vide pour forcer le départ d'un nouveau sous-titre, les bruits entre crochets et « >> » pour un changement d'interlocuteur. Notre exemple, préparé ainsi :
>> CAMILLE : Bonjour, je suis Camille, et voici la table d'emballage de notre petite boutique.
Aujourd'hui, je vous montre comment nous emballons une tasse en céramique pour qu'elle arrive intacte.
[bruit de ruban adhésif]Une fois les codes temporels réglés, vous pouvez télécharger les sous-titres depuis YouTube Studio sous forme de fichier SRT. Nous n'avons pas testé la synchronisation automatique sur une vidéo pour ce guide ; les étapes viennent de l'aide YouTube en français, consultée le 25 octobre 2026.
Subtitle Edit, sans envoi en ligne. Cet éditeur de sous-titres gratuit existe pour Windows, macOS et Linux. Choisissez Fichier, Importer, Texte brut…, puis, sous Scinder le texte à, Lignes vides ou Une ligne correspond à un sous-titre. Selon la documentation, Synchroniser les horodatages via un alignement forcé… cale alors votre texte sur le son de la vidéo sans le retranscrire. À la première utilisation, le logiciel télécharge un modèle : les modèles propres à une langue font environ 200 à 300 Mo, et il existe aussi des modèles multilingues. Si l'aligneur ne gère pas votre langue, Aligner les horodatages via « Reconnaissance vocale »… transcrit d'abord la vidéo, puis y rattache votre texte. Enregistrez enfin au format SubRip. Ces informations viennent de la documentation de la version 5.3.0 ; nous n'avons pas lancé l'aligneur nous-mêmes.
Descript. Sa fonction Import transcript (ou Replace transcript si le fichier est déjà transcrit) cale votre propre texte sur l'enregistrement, mais uniquement en anglais selon sa page d'aide. Pour une transcription française, elle ne sert donc à rien.
Méthode 3 : le texte seul, minuté à la main
Sans la vidéo, aucun logiciel ne peut savoir quand chaque phrase est dite. Chaque code temporel que vous ajoutez reste une estimation tant que vous ne l'avez pas vérifié sur la vidéo. Découpez d'abord, minutez ensuite :
- Découpez en sous-titres de deux lignes au plus, de 42 caractères chacune, de préférence en fin de phrase ou après une virgule.
- Donnez à chacun assez de temps : nombre de caractères divisé par la vitesse de lecture. Notre sous-titre raccourci « Puis roulez la tasse / dans deux couches de papier. » compte 48 caractères et demande au moins 2,9 secondes en français ; en anglais, à longueur égale, 2,4 suffiraient.
- Gardez chaque sous-titre entre 5/6 de seconde et 7 secondes à l'écran.
Dans Subtitle Edit, Importer du texte brut fait les deux premières étapes pour vous : sans vidéo, il place les sous-titres les uns après les autres à partir de zéro, avec une durée calculée sur la longueur du texte. Vous déplacez ensuite chacun au bon endroit pendant la lecture de la vidéo. Si vous préférez noter les codes temporels en regardant, notre guide de la transcription horodatée montre comment faire.
Ce que font les convertisseurs TXT en SRT en ligne
La plupart des sites qui convertissent un TXT en SRT n'écoutent pas votre vidéo : ils estiment les durées à partir du texte. Voici ce qu'indiquaient leurs propres pages le 25 octobre 2026 :
- SubtitleKit place les sous-titres bout à bout depuis le début, avec un nombre fixe de secondes par ligne, présente ces durées comme provisoires et traite les codes temporels déjà présents comme du texte ordinaire.
- Submagic compte 170 mots par minute par défaut, garde chaque sous-titre entre 1,2 et 6 secondes et coupe les lignes à 42 caractères.
- ScreenApp compte environ 4 mots par seconde et lit les fichiers en UTF-8.
- MConverter convertit dans son cloud ou, pour certains formats, sur votre appareil, et dit supprimer les fichiers du cloud quatre heures après la conversion.
Méfiez-vous des promesses : une page affirme conserver le minutage de vos sous-titres, mais le « TXT » qu'elle lit est un format déjà minuté ; un autre convertisseur n'accepte même pas les fichiers TXT. Les durées estimées sont au mieux un point de départ, et pour un entretien confidentiel, mieux vaut une méthode sans envoi en ligne.
Encodage : garder les accents intacts
YouTube exige des fichiers SRT en UTF-8 brut et recommande l'UTF-8 pour toute transcription qui n'est pas en anglais. Son aide décrit l'enregistrement ainsi :
- Bloc-notes sous Windows : Fichier, Enregistrer sous, puis UTF-8 sous Encodage.
- TextEdit sur Mac : Format, Convertir au format texte, puis Fichier, Enregistrer et Unicode (UTF-8).
En français, un mauvais encodage se voit tout de suite : « céramique » devient « céramique » ou affiche un caractère de remplacement, selon l'erreur. Le guide du fichier SRT cité plus haut montre comment le réparer.
Vérifier le fichier avant de l'envoyer
Pour tester notre vérification, nous avons glissé six erreurs courantes dans notre fichier SRT français raccourci : deux lignes fusionnées, une flèche tapée avec un tiret, un point avant les millisecondes, un numéro répété, deux sous-titres qui se chevauchent, et le fichier entier enregistré en Windows-1252. Elle les a toutes trouvées :
12 sous-titres, ligne la plus longue : 55 caractères, le plus rapide : 17 caractères par seconde
- 11 ligne(s) pas en UTF-8 valide, à partir de la ligne 6 (enregistrez le fichier en UTF-8)
- ligne 6 : la flèche contient un tiret (–) au lieu de deux traits d’union : écrivez -->
- ligne 10 : point avant les millisecondes, le SRT exige une virgule
- ligne 19 : numéro de sous-titre 5 attendu, trouvé « 4 »
- sous-titre 6 : commence avant la fin du sous-titre 5
- sous-titre 2 : ligne de 55 caractères (42 au maximum)
6 problème(s) trouvé(s)Sans script de vérification, passez cette liste en revue :
- Des sous-titres numérotés à partir de 1, avec une ligne vide après chacun.
- Chaque flèche faite de deux traits d'union et d'un signe « supérieur à », que les traitements de texte changent volontiers en tiret.
- Une virgule avant les millisecondes.
- Aucun sous-titre qui commence avant la fin du précédent.
- Deux lignes de 42 caractères au plus et 17 caractères par seconde pour des sous-titres français.
- Un fichier enregistré en UTF-8, et un aperçu sur la plateforme où vous publiez.
Si vous avez besoin plus tard du texte seul, convertir un SRT en TXT retire de nouveau les numéros et les codes temporels.
