Rainbow Captions Blog Télécharger

Format .ytt :une référence de travail

Une référence du format de texte synchronisé de YouTube — le XML derrière les sous-titres stylisés, enregistré en .ytt et appelé format 3, ou SRV3, chez YouTube. Tout ce qui suit est ce que le format accepte en pratique, y compris les valeurs qui semblent raisonnables et qui sont silencieusement ignorées.

La forme d’un fichier

<timedtext format="3">
  <head>
    <pen id="1" b="1" fc="#FEFEFE" fo="254" et="4" ec="#000000"/>
    <wp id="0" ap="7" ah="50" av="90"/>
    <ws id="0" ju="2"/>
  </head>
  <body>
    <p t="1000" d="1600" wp="0" ws="0" p="1">Today we fix that.</p>
  </body>
</timedtext>

L’en-tête déclare des styles réutilisables : pen pour le texte, wp pour l’endroit où se place la fenêtre de sous-titre, ws pour l’alignement du texte à l’intérieur. Le corps est la liste des lignes de sous-titres, chacune pointant par identifiant vers les styles qu’elle utilise.

<pen> — le style de texte

AttributValeursSignification
fs0–7Police : 0 sans-serif par défaut, 1 Courier New, 2 Times New Roman, 3 Lucida Console, 5 Comic Sans MS, 6 Monotype Corsiva, 7 Carrois Gothic SC. 4 n’est pas défini.
szintegerTaille. 100 est la valeur par défaut de YouTube ; l’échelle n’est pas linéaire (voir plus bas).
b, i, u"1"Gras, italique, souligné. Écrits seulement quand ils sont vrais.
fc#RRGGBBCouleur du texte. Le blanc pur #FFFFFF s’écrit couramment #FEFEFE.
fo0–254Opacité du texte. 255 est supprimé — totalement opaque, c’est 254.
bc, bo#RRGGBB, 0–254Couleur du fond et son opacité. bo="0" supprime le fond.
et1–4Bordure : 1 ombre dure, 2 biseau, 3 halo, 4 ombre douce. Il n’existe pas de type contour — un halo sombre en tient lieu.
ec#RRGGBBCouleur de la bordure. Par défaut #222222, à l’opacité du texte.
of0–2Décalage : 0 indice, 1 normal, 2 exposant.
rb0–5Annotation ruby (furigana) : 0 aucune, 1 base, 2 parenthèse, 4 texte avant, 5 texte après.

La formule de taille

La valeur de sz n’est pas la taille que vous visez. Elle avance quatre fois plus vite que l’échelle réelle :

sz    = (1 + (scale − 1) × 4) × 100
scale = 1 + (sz / 100 − 1) / 4

Ainsi sz="100" vaut 100 %, sz="200" vaut 125 %, et sz="50" environ 87 %. La taille de sous-titre par défaut de YouTube est d’environ 4,6–4,8 % de la hauteur de l’image, et c’est la taille à laquelle sz="100" s’affiche.

<wp> — la position de la fenêtre

AttributValeursSignification
ap0–8Point d’ancrage : 0 haut gauche, 1 haut centre, 2 haut droite, 3 milieu gauche, 4 centre, 5 milieu droite, 6 bas gauche, 7 bas centre, 8 bas droite.
ah0–100Position horizontale.
av0–100Position verticale.

Les positions ne sont pas des pourcentages bruts de l’image. YouTube les ramène dans une zone de sécurité :

screen% = value × 0.96 + 2

av="0" tombe à 2 % du haut et av="100" à 98 %. Un convertisseur qui va dans l’autre sens utilise value = (screen% − 2) / 0.96.

<ws> — le style de la fenêtre

AttributValeursSignification
ju0–2Justification : 0 à gauche, 1 à droite, 2 centré.
pd0–3Sens d’écriture ; 0 est horizontal, de gauche à droite.
sd0–1Sens de défilement, pour le texte vertical.

<p> et <s> — lignes et segments

AttributValeursSignification
p.t≥ 1 msHeure de départ. Certains lecteurs Android ignorent une ligne qui démarre à 0.
p.d> 0 msDurée.
p.wp, p.wsidPosition de fenêtre et style de fenêtre à utiliser.
p.pidPlume pour toute la ligne.
s.pidPlume pour un segment à l’intérieur de la ligne.
s.t≥ 0 msDépart du segment, relatif à la ligne — c’est ainsi que fonctionne le minutage mot par mot.

Les bizarreries qui coûtent un après-midi

D’où viennent ces informations

Le format n’est pas documenté publiquement par YouTube. Le comportement de référence vient de YTSubConverter, le convertisseur open source dont le code fait office de spécification de fait, vérifié sur de vraies pistes de sous-titres téléchargées depuis YouTube et sur ce que les lecteurs affichent réellement. Rainbow Captions écrit le même format — vous pouvez construire vos pistes à la main à partir des tableaux ci-dessus, ou laisser l’application gérer l’empilement, les garde-fous et le minutage mot par mot.

Laissez l’application écrire le XML

Rainbow Captions gère les plumes, les contours empilés, les caractères de garde et le minutage mot par mot, en 170 langues. Téléchargement gratuit, 10 premières langues offertes.

Télécharger pour Mac