Aller au contenu principal
SubtitleMatrix

Convertir ASS en TXT

Conversion de formatsAdvanced SubStation Alpha (ASS)
Ou collez le texte d'un sous-titre

Ce que cette conversion change

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

  • 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 ASS en texte brut. Le fichier produit ne garde que les mots, dans l'ordre, une ligne de texte pour une ligne de sous-titre.

Les deux formats ne stockent pas les mêmes choses : le minutage, le style, le positionnement, le karaoké, les retours à la ligne et les constructions propres au script n'ont pas de place dans un TXT. Les codes temporels disparaissent, les codes de surcharge et la table de styles aussi, et un Dialogue de deux lignes ne dit plus qu'il formait un seul sous-titre.

Un fichier ou une saison entière, traité dans le navigateur, avec un seul ZIP à la fin.

Exemples

Un fichier ASS typique, converti en TXT

Entrée

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

Sortie

Hello there.
Italic and bold text.
Positioned
karaoke
Line one
Line two
Top left

Les pertes annoncées sont le minutage, le style, le positionnement, le karaoké, les retours à la ligne et les constructions propres au script : seul le texte se compare.

La même conversion sur une entrée mal formée

Entrée

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

Sortie

Hello, world
{\fad(300,300)}Unmodelled override
Both, wrong order
One decimal centisecond
Soft
break

C'est le genre de dégâts que portent les vrais fichiers : fins de ligne mélangées, espaces parasites, champs vides. Comparez avec l'exemple propre ci-dessus pour voir ce que l'analyseur pardonne.

Questions fréquentes

Que garde un TXT d'un script ASS ?

Les mots, dans l'ordre des Dialogue. Aucun temps, aucun style et aucune indication de bloc ne subsiste : le fichier produit est une suite de lignes de texte, et tout ce que le script portait d'autre est perdu.

Où passent les codes temporels d'un script ASS dans le TXT ?

Ils n'ont pas d'équivalent : le TXT ne contient pas d'instants. L'ordre des Dialogue est conservé, mais rien ne dit quand une ligne apparaît à l'écran ni combien de temps elle reste.

Le karaoké d'un ASS laisse-t-il une trace dans le TXT ?

Non : les durées par syllabe et les codes \k sont retirés avec le reste du balisage. Le texte des syllabes reste dans l'ordre, mais aucune information ne permet de reconstituer l'animation.

Que devient la table de styles d'un ASS dans le TXT ?

Elle disparaît entièrement : le TXT ne stocke aucune mise en forme. La police, la taille, les couleurs, le contour et les marges du script ne peuvent pas être exprimés, et les balises écrites dans le texte sont retirées.

Comment un Dialogue ASS de deux lignes sort-il dans le TXT ?

Par deux lignes consécutives, sans séparateur ni temps. La coupure d'origine n'est plus distinguable d'une fin de sous-titre, donc une relecture du TXT peut compter deux blocs là où le script en avait un.

Les événements Comment: d'un ASS apparaissent-ils dans le TXT ?

Non : seuls les Dialogue sont convertis. Une ligne Comment: est une note d'auteur et n'a pas sa place dans un fichier de texte destiné à la lecture ou à la réutilisation du contenu.

Le TXT produit garde-t-il l'encodage du script source ?

Non : le fichier est toujours écrit en UTF-8, avec des fins de ligne Unix et sans BOM. L'encodage d'entrée est converti à la lecture, et non recopié dans la sortie.

Outils associés