Convertir JSON en TXT
Ou collez le texte d'un sous-titre
Ce que cette conversion change
5 éléments perdus ou à décider
- Minutage
toute la chronologie (le format de sortie n'enregistre aucun minutage)
- Style
tout le style (gras, italique, couleur, contour, ombre)
- Positionnement
le positionnement à l'écran (chaque bloc revient à la position par défaut)
- Karaoké
le minutage karaoké (surlignage par syllabe)
- Sauts de ligne
les sauts de ligne (les blocs sur plusieurs lignes seront réunis sur une seule)
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 réduit un document JSON à du texte brut. Chaque ligne de chaque bloc est écrite telle quelle, dans l’ordre du fichier : c’est ce qu’on veut quand les mots partent vers une relecture, une correction orthographique ou un moteur de traduction.
Le texte brut ne porte ni `start`, ni `end`, ni structure de `lines` : la chronologie, la table `styles`, l’objet `position`, les plages karaoké et le regroupement des lignes sont perdus. Un bloc à deux lignes sort sur deux lignes qui ne disent plus qu’elles vont ensemble. La liste ci-dessus vient des capacités.
Un fichier ou une saison complète : la file les enchaîne et le ZIP contient tous les résultats. Rien ne quitte l’ordinateur.
Exemples
Un fichier JSON typique, converti en TXT
Entrée
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
Sortie
Hello world.
Second line.
Plain line.
Styled line.
Roger: I am here.
Dans cette sortie, le minutage, les styles, la position, le karaoké et les sauts de ligne sont perdus. Il ne reste que les mots, dans l’ordre.
La même conversion sur une entrée abîmée
Entrée
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Sortie
First.
Second.
Third.
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
Où passent les horodatages d’un JSON dans un export TXT ?
Ils sont abandonnés : un export texte contient des mots, pas des instants. L’ordre des blocs et l’ordre des lignes sont conservés, mais rien dans le fichier ne dit quand un mot apparaît à l’écran.
Que deviennent les styles, la position et le karaoké du JSON dans un export TXT ?
Tout disparaît. Le TXT n’écrit que `Line.text`, sans balises : la table `styles`, les balises de ligne, l’objet `position` et les plages karaoké du JSON sont perdus. Les caractères, eux, restent identiques.
Un bloc JSON à deux lignes reste-t-il groupé en TXT ?
Non. Les deux lignes sont écrites l’une sous l’autre, mais le fichier cesse de dire qu’elles forment un seul sous-titre. Relu par un outil de retiming, l’export donnerait deux blocs là où votre JSON en avait un.
Le retour d’un TXT vers le JSON est-il sans perte ?
Non : il a sa propre liste, où le minutage figure. Le TXT n’ayant aucun temps, la conversion vers JSON doit fabriquer la chronologie, ligne par ligne, avec la durée que vous fixez.
L’ordre des blocs JSON est-il modifié par l’export TXT ?
Les blocs sont triés par `start` avant écriture : si votre JSON les listait dans le désordre, l’export les remet en ordre croissant. C’est un changement de structure, pas de contenu.