Aller au contenu principal
SubtitleMatrix

Convertir SMI en CSV

Ou collez le texte d'un sous-titre

Ce que cette conversion change

3 éléments perdus ou à décider

  • Style

    tout le style (gras, italique, couleur, contour, ombre)

  • Positionnement

    le positionnement à l'écran (chaque bloc revient à la position par défaut)

  • Contenu propre au format

    le contenu que le format source garde hors de ses blocs (blocs hors sous-titres, texte d'en-tête, réglages par bloc, événements commentés) — le format cible n'a nulle part où le mettre

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 convertit un fichier SAMI (`.smi`) en CSV, pour relire ou retravailler les sous-titres dans un tableur. Un SAMI est un document HTML qui remplace l’écran à chaque `<SYNC>` ; le CSV, lui, ne garde qu’une ligne par bloc avec son début, sa fin et son texte.

Trois familles se perdent : le style, la position et les constructions propres à SAMI — bloc `<STYLE>`, `<TITLE>`, attributs `Class=`, logique de nettoyage par `<P>&nbsp;`. Le rapport affiché en haut de page vient des capacités déclarées par chaque format, pas de votre fichier : il ne change donc pas selon ce que vous déposez, et il nomme chaque famille de données qui n’a pas de place dans la sortie.

La sortie suit la forme `start,end,text` : une ligne d’en-tête, puis une ligne par sous-titre. Tout se passe dans le navigateur, sans envoi ni compte. Plusieurs fichiers peuvent être déposés ensemble : la file les traite l’un après l’autre, l’annulation est possible, et les résultats arrivent dans une archive ZIP.

Exemples

Un fichier SAMI courant converti en CSV

Entrée

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>&nbsp;
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

Sortie

start,end,text
00:00:01.000,00:00:03.000,Hello there.
00:00:03.500,00:00:06.000,"How are you?
Fine, thanks."

Perdus dans cette sortie : le style, la position et les constructions SAMI. Les temps et le texte restent, dans l’ordre du document.

La même conversion sur une entrée abîmée

Entrée

<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom &amp; Jerry
<SYNC Start=12000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

Sortie

start,end,text
00:00:02.500,00:00:09.000,"Line one
Line two"
00:00:09.000,00:00:12.000,Tom &amp; Jerry

BOM, retours chariot et blocs sans SYNC lisible : les lignes valides sortent, les blocs écartés sont comptés plutôt que reconstruits.

Questions fréquentes

À quoi ressemble la sortie quand un SAMI devient un CSV ?

À un CSV : une ligne d’en-tête `start,end,text`, puis une ligne par sous-titre. Un bloc SAMI donne une ligne, avec ses deux instants et son texte ; le balisage HTML du document d’origine ne se retrouve nulle part dans les cellules.

Comment la fin d’un bloc SAMI est-elle calculée dans le CSV ?

Un SAMI n’écrit pas de fin : c’est le `<SYNC>` suivant qui efface l’écran. Pour remplir la colonne `end`, la conversion prend donc l’instant du SYNC suivant, et pour le dernier bloc, une durée générée à partir du texte. Le CSV ne peut pas représenter l’effacement sans ce calcul.

Que deviennent les balises et les classes du SAMI dans le CSV ?

Elles sont abandonnées : le CSV ne porte que du texte brut. Les `<br>` deviennent des sauts de ligne dans la cellule, mais les `<P Class=…>`, le bloc `<STYLE>` et le `<TITLE>` n’ont aucune colonne pour les accueillir et disparaissent, avec le style et la position qu’ils décrivaient.

Les blocs SAMI conservent-ils leur ordre dans le CSV produit ?

Oui, et ils sont triés par heure de début au passage. Un SAMI dont les `<SYNC>` se chevauchaient ressort rangé en chronologie croissante, ce qui rend le tableau lisible et les durées vérifiables ligne à ligne.

Que perd le retour du CSV vers le SAMI ?

Un CSV ne contient aucun style : le retour vers SAMI redonne des `<SYNC>` et des `<P>` nus, sans bloc `<STYLE>`, sans classe et sans position. Le texte et les temps reviennent, l’habillage du document d’origine ne revient pas.

Le CSV produit garde-t-il l’encodage du fichier SAMI ?

Non. La sortie est en UTF-8, avec des fins de ligne Unix et sans BOM. Un SAMI en UTF-16 ou dans un encodage Windows mono-octet est décodé à la lecture, et le décodage est mentionné dans le panneau de résultat.

Outils associés