Aller au contenu principal
SubtitleMatrix

Convertir SSA en CSV

Conversion de formatsSubStation Alpha (SSA)
Ou collez le texte d'un sous-titre

Ce que cette conversion change

4 é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)

  • Karaoké

    le minutage karaoké (surlignage par syllabe)

  • 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 SSA en CSV : une ligne d’en-tête `start,end,text`, puis une ligne par bloc de sous-titres. Le texte et les horodatages sont repris ; tout ce que le SSA dit en dehors du texte d’un bloc n’a pas de colonne où se ranger.

Dans le sens SSA vers CSV, quatre choses se perdent : le style, la position, le karaoké et les constructions propres au format — `[Script Info]`, la table `[V4 Styles]`, les lignes `Comment:`, les polices de `[Fonts]` et les dessins de `[Graphics]`. La liste affichée en haut de page vient de ce que chaque format sait exprimer, pas de votre fichier : elle ne change donc pas selon ce que vous déposez.

Le traitement se fait dans le navigateur, sans envoi de fichier ni inscription. Plusieurs fichiers peuvent être déposés d’un coup : la file les traite dans l’ordre et les résultats repartent ensemble dans une archive ZIP.

Exemples

Un fichier SSA courant converti en CSV

Entrée

[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

Sortie

start,end,text
00:00:01.000,00:00:04.000,Hello there.
00:00:05.000,00:00:08.000,<i>Italic</i> line.
00:00:09.000,00:00:12.000,"Two
lines"

Perdus dans cette sortie : le style, la position, le karaoké et les constructions propres au SSA. Le reste correspond ligne pour ligne.

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

Entrée

[Script Info]
Title: Dirty SSA
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.

Sortie

start,end,text
00:00:01.000,00:00:04.000,<b>Bold</b> and <u>underlined</u>.
00:00:05.000,00:00:08.000,"A soft
break and a {\p1}mystery{\p0} code."

Fins de ligne mélangées, espaces parasites, lignes `Comment:` et champs vides : le CSV reste régulier, les blocs inutilisables sont signalés et les guillemets nécessaires sont ajoutés.

Questions fréquentes

Les gras et italiques d’un SSA survivent-ils dans le CSV ?

L’accentuation oui, la table de styles non. Le gras, l’italique, le soulignement et la couleur portés par un morceau de texte sont écrits dans la cellule `text` sous forme de balises `<b>`, `<i>`, `<u>` et `<font color="…">`. Ce qui disparaît, c’est ce que le fichier SSA disait globalement : la police, sa taille, le contour, l’ombre et les marges.

Où passe la position à l’écran lors d’une conversion SSA vers CSV ?

Le CSV ne sait pas où dessiner un sous-titre : les codes `\pos`, `\an` et `\move` sont retirés au passage, et chaque bloc revient à la position par défaut du lecteur — en bas de l’image et centré dans la plupart des cas.

Que devient le minutage karaoké d’un SSA dans un CSV ?

Le minutage part, les mots restent. Les codes `\k`, `\kf` et `\ko` marquent l’allumage de chaque syllabe à l’intérieur d’une ligne ; le CSV n’a aucun moyen d’enregistrer un instant interne, donc les marques tombent et les syllabes arrivent en texte ordinaire.

Que deviennent `[Script Info]`, les lignes `Comment:` et les polices intégrées dans le CSV ?

Seules les lignes `Dialogue:` deviennent des lignes de CSV. `[Script Info]` avec son titre, la table `[V4 Styles]`, les lignes `Comment:` et le contenu de `[Fonts]` ou `[Graphics]` sont abandonnés. Pour un SSA dont le style a été écrit à la main, c’est la perte la plus visible.

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

À un CSV : la ligne `start,end,text`, puis une ligne par bloc. Un bloc SSA donne une ligne CSV, dans le même ordre et avec le même texte. Si le dialogue contient un saut de ligne, la cellule `text` est entourée de guillemets et le saut est conservé à l’intérieur.

Les horodatages SSA sont-ils exacts dans le fichier CSV ?

Oui, à la milliseconde près, ce qui est la finesse maximale des deux côtés. SSA écrit un instant en centièmes (`0:00:04.13`, soit 4 130 ms) et le CSV l’écrit `00:00:04.130` ; rien n’est arrondi ni décalé, et un bloc affiché 2,9 s le reste.

Outils associés