Convertir CSV en SRT
Ou collez le texte d'un sous-titre
Ce que cette conversion change
Rien n'est perdu dans ce sens — chaque fonctionnalité du format source a un équivalent dans le format cible.
Ce rapport de pertes vient de la matrice de capacités de ces deux formats, pas du fichier particulier que vous avez chargé. Un fichier précis peut perdre davantage s'il utilise des fonctionnalités que le format autorise mais que la matrice ne modélise pas.
Cette page transforme un tableau en fichier de sous-titres. Elle demande trois choses à la feuille — un début, une fin et le texte — et les trouve par la ligne d’en-tête plutôt que par la position, si bien qu’un tableau aux colonnes dans un autre ordre, ou nommées `begin` et `finish`, se convertit sans être réarrangé. Sans en-tête, les colonnes sont lues dans l’ordre `start`, `end`, `text`.
Les heures des cellules sont lues dans les formes qu’un tableur produit : minutes et secondes, ou heures, minutes et secondes, avec une virgule ou un point avant la fraction, et une fraction d’un, deux ou trois chiffres. Les lignes collées depuis un sous-titre sans guillemets, où la virgule interne coupe l’heure en deux colonnes, sont recollées.
Une ligne devient un bloc, dans l’ordre du tableau, et le résultat est un SRT prêt à jouer. La conversion se fait dans le navigateur ; rien n’est envoyé.
Exemples
Un fichier CSV typique, converti en SRT
Entrée
start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."
Sortie
1
00:00:01,000 --> 00:00:03,500
The quick brown fox.
2
00:00:04,000 --> 00:00:06,250
Jumps over, the lazy dog.
3
00:00:07,000 --> 00:00:09,000
Two lines here.
And a second one.
Rien n’est perdu ici : les bornes, les lignes et le texte se comparent ligne pour ligne entre les deux côtés.
La même conversion sur une entrée abîmée
Entrée
id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.
Sortie
1
00:00:01,000 --> 00:00:04,000
Hello there, friend.
2
00:00:05,000 --> 00:00:07,000
Second line.
3
00:00:10,000 --> 00:00:10,001
End before start.
4
00:00:12,000 --> 00:00:14,000
Unquoted comma in text, right here.
C’est le genre de dégâts des vrais fichiers : fins de ligne mélangées, espaces parasites, champs vides. Comparez avec l’exemple propre ci-dessus pour voir ce que le lecteur pardonne.
Questions fréquentes
Quels noms de colonnes un CSV doit-il porter pour produire un SRT ?
Les plus courants, et la correspondance est souple : `start`, `start time`, `timecode in`, `begin`, `from` et `in` désignent le début ; `end`, `stop`, `to`, `out` et `finish` la fin ; `text`, `subtitle`, `caption`, `content`, `line`, `dialogue` et `transcript` le texte. Espaces, tirets et soulignés sont ignorés dans l’en-tête, et la casse ne compte pas.
Et si un CSV n’a pas de ligne d’en-tête pour la conversion en SRT ?
La première ligne est alors lue comme une donnée et les colonnes sont prises dans l’ordre `start`, `end`, `text`. Une ligne est reconnue comme en-tête quand sa première cellule n’est pas une heure, ce qui évite de prendre un vrai bloc pour des étiquettes.
Quelles formes d’heures un CSV peut-il contenir pour un SRT ?
Minutes et secondes, ou heures, minutes et secondes, avec une fraction facultative après une virgule ou un point. La fraction est lue selon son nombre de chiffres : 0,5, 0,50 et 0,500 valent tous une demi-seconde, ce qui absorbe les décimales variables d’un tableur.
Et si une heure d’un CSV n’a jamais été mise entre guillemets avant le SRT ?
Elle est réparée. Une heure écrite à la mode SRT contient une virgule et, collée sans guillemets, elle tombe dans deux colonnes ; le convertisseur recolle les deux moitiés quand elles ressemblent aux deux parties d’une même heure.
Puis-je construire un SRT depuis un CSV édité dans un tableur ?
Oui, et c’est la raison habituelle de venir ici : trois colonnes, une ligne par bloc, puis convertir. C’est une surface d’édition bien plus confortable qu’un fichier de sous-titres quand on travaille le texte.