このリファレンスは未完成であり,SRV3 の書き方の解説書ではありません。不正確な情報が含まれている可能性があるためご了承ください。
また,JSON3 形式はほぼ SRV3 互換であるため,キーを併記しておきます。
head タグ
アップロード後,head 内の id のあるタグはすべて記載した id 関係なしにタグの記載順に id を振り直されるので注意されたい。
pen タグ
(JSON3 キー pens)
| SRV3 | JSON3 キー | YouTube の字幕オブションでの名前 | |
|---|---|---|---|
id |
なし(インデックスで処理) | ID | |
b |
bAttr |
太字 | |
i |
iAttr |
斜体 | |
u |
uAttr |
下線 | |
of |
ofOffset |
垂直方向オフセット | |
fc |
fcForeColor |
前景色 | フォントの色 / Font color |
fo |
foForeAlpha |
前景アルファ | フォントの透過度 / Font opacity |
bc |
bcBackColor |
背景色 | 背景色 / Background color |
bo |
boBackAlpha |
背景アルファ | 背景の透過度 / Background opacity |
et |
etEdgeType |
縁タイプ | 文字装飾スタイル / Character edge style |
ec |
ecEdgeColor |
縁色 | |
fs |
fsFontStyle |
フォントスタイル | フォント ファミリー / Font family |
sz |
szPenSize |
pen サイズ | フォント サイズ / Font size |
rb |
rbRuby |
ルビ/圏点 | |
hg |
hgHorizGroup |
縦中横 |
b 属性
| 値 | |
|---|---|
0 |
|
1 |
太字 |
1 で CSS の font-weight が bold になる。
i 属性
| 値 | |
|---|---|
0 |
|
1 |
斜体 |
1 で CSS の font-style が italic になる。
u 属性
| 値 | |
|---|---|
0 |
|
1 |
下線 |
1 で CSS の text-decoration が underline になる。
of 属性
| 値 | |
|---|---|
0 |
下付き文字 |
1 |
なし |
2 |
上付き文字 |
0 のとき CSS の vertical-align が sub になり,フォントサイズは 0.8 倍になる。
2 のとき CSS の vertical-align が super になり,フォントサイズは 0.8 倍になる。
fc 属性
| 値 | |
|---|---|
#FFFFFF |
ユーザー設定のデフォルト |
#****** |
前景色 |
前景色が RGB に変換され,以下のような CSS が適用される。
color: rgba(R, G, B, 前景アルファ);
fill: rgba(R, G, B, 前景アルファ);
fo 属性
| 値 | |
|---|---|
255 |
ユーザー設定のデフォルト |
0 - 254
|
前景アルファ |
$前景アルファ \div 255$ が CSS の color と fill のアルファ値になる。
bc 属性
| 値 | |
|---|---|
#FFFFFF |
ユーザー設定のデフォルト |
#****** |
背景色 |
背景色が RGB に変換され,以下のような CSS が適用される。
background: rgba(R, G, B, 背景アルファ);
bo 属性
| 値 | |
|---|---|
255 |
ユーザー設定のデフォルト |
0 - 254
|
背景アルファ |
$背景アルファ \div 255$ が CSS の background のアルファ値になる。
et 属性
| 値 | YouTube の字幕オブションでの名前 |
|---|---|
0 |
|
1 |
浮き彫り / Raised |
2 |
沈み彫り / Depressed |
3 |
アウトライン / Outline |
4 |
ドロップ シャドウ / Drop Shadow |
CSS の text-shadow が生成される。
アルファ値は前景アルファのものが用いられる。
2 は ec 未指定のときは暗色と明色の 2 色が用いられる。
ec 属性
| 値 | |
|---|---|
#****** |
縁色 |
デフォルトの暗色は rgb(34, 34, 34) = #222222,デフォルトの明色は rgb(204, 204, 204) = #CCCCCC。
値を指定すると暗色明色ともにその値に上書きされる。
fs 属性
| 値 | YouTube の字幕オブションでの名前 |
|---|---|
0 |
(ユーザー設定のデフォルト ≒ 4) |
1 |
等幅セリフ / Monospaced Serif |
2 |
プロポーショナル セリフ / Proportional Serif |
3 |
等幅サンセリフ / Monospaced Sans-Serif |
4 |
プロポーショナル サンセリフ / Proportional Sans-Serif |
5 |
カジュアル / Casual |
6 |
草書体 / Cursive |
7 |
スモール キャピタル / Small Capitals |
-
1等幅セリフ - CSS の
font-familyが"Courier New", Courier, "Nimbus Mono L", "Cutive Mono", monospaceになる。 -
2プロポーショナル セリフ - CSS の
font-familyが"Times New Roman", Times, Georgia, Cambria, "PT Serif Caption", serifになる。 -
3等幅サンセリフ - CSS の
font-familyが"Deja Vu Sans Mono", "Lucida Console", Monaco, Consolas, "PT Mono", monospaceになる。 -
4プロポーショナル サンセリフ - CSS の
font-familyが"YouTube Noto", Roboto, "Arial Unicode Ms", Arial, Helvetica, Verdana, "PT Sans Caption", sans-serifになる。 -
5カジュアル - CSS の
font-familyが"Comic Sans MS", Impact, Handlee, fantasyになる。 -
6草書体 - CSS の
font-familyが"Monotype Corsiva", "URW Chancery L", "Apple Chancery", "Dancing Script", cursiveになる。 -
7スモール キャピタル - CSS の
font-familyが"Carrois Gothic SC", sans-serif-smallcapsになり,font-variantがsmall-capsになる。
sz 属性
| 値 | |
|---|---|
0 - |
フォントサイズ(デフォルト 100) |
基準フォントサイズの $1 + 0.25 \times ( \frac{フォントサイズ}{100} - 1 )$ 倍で表示される。
rb 属性
| 値 | |
|---|---|
0 |
なし |
1 |
ルビ構文開始/親文字 |
2 |
代替表示用括弧 |
3 - 8
|
ルビテキスト |
9, 11 - 15
|
圏点 |
10 |
(欠番) |
rb には 2 つの用法がある。
1 つ目は圏点のために単体で用いる用法,2 つ目は 4 つの <s> を用いてルビの構造を作る用法である。
単体用法
9, 11 - 15 は以下の CSS を生成する。
text-emphasis-style: filled circle;
text-emphasis-color: currentcolor;
-webkit-text-emphasis: filled circle;
値に応じて text-emphasis-position および -webkit-text-emphasis-position に以下の値が指定される。
| 値 | (-webkit-)text-emphasis-position |
|---|---|
9, 11
|
未指定 |
12, 15
|
over right |
13, 14
|
under left |
ルビ構文用法
rb が 1 の pen を持つ <s> を置くことで,それ自体と後続の 3 つの <s> がルビの構造になる。
<p><s p="(rb=1)">親文字</s><s p="(rb=2)">(</s><s p="(rb=3 以上)">ルビ</s><s p="(rb=2)">)</s></p>
↓
<ruby>
<span>親文字</span>
<rp>(</rp>
<rt>ルビ</rt>
<rp>)</rp>
</ruby>
ルビテキスト (3 - 8)
値に応じて ruby-position および -webkit-ruby-position に以下の値が指定される。
| 値 | ruby-position |
-webkit-ruby-position |
|---|---|---|
3, 8
|
未指定 | 未指定 |
4, 7
|
over |
before |
5, 6
|
under |
after |
圏点 (11 - 15)
ルビ構文において 3 つ目の <s> で圏点を指定するとルビに圏点がつくという奇妙な描画になる。
11 - 15 は以下の CSS を生成する。
text-emphasis-style: filled circle;
text-emphasis-color: currentcolor;
-webkit-text-emphasis: filled circle;
値に応じて text-emphasis-position,-webkit-text-emphasis-position,ruby-position,-webkit-ruby-position に以下の値が指定される。
| 値 | (-webkit-)text-emphasis-position |
ruby-position |
-webkit-ruby-position |
|---|---|---|---|
11 |
未指定 | 未指定 | 未指定 |
12, 14
|
under left |
under |
after |
13, 15
|
未指定 | over |
before |
hg 属性
| 値 | |
|---|---|
0 |
なし |
1 |
縦中横 |
1 で text-combine-upright が all,text-orientation が mixed になる。
また,<ws> の pd 属性の値が 3 のとき,更に transform がかかる。
縦書きウィンドウ内(<ws> の pd 属性の値が 2 か 3)でのみ動作。
wp タグ
(JSON3 キー wpWinPositions)
| SRV3 | JSON3 キー | |
|---|---|---|
id |
なし(インデックスで処理) | ID |
ap |
apPoint |
アンカーポイント |
cc |
ccCols |
ウィンドウ幅 |
ah |
ahHorPos |
アンカーポイント水平位置 |
rc |
rcRows |
ウィンドウ行数 |
av |
avVerPos |
アンカーポイント垂直位置 |
ap 属性
| 値 | 位置 |
|---|---|
0 |
左上 |
1 |
上 |
2 |
右上 |
3 |
左 |
4 |
中央 |
5 |
右 |
6 |
左下 |
7 |
下 |
8 |
右下 |
ah 属性
| 値 | 位置 |
|---|---|
0 - 100
|
左起点の水平位置 |
av 属性
| 値 | 位置 |
|---|---|
0 - 100
|
上起点の垂直位置 |
ws タグ
(JSON3 キー wsWinStyles)
| SRV3 | JSON3 キー | YouTube の字幕オブションでの名前 | |
|---|---|---|---|
id |
なし(インデックスで処理) | ID | |
mh |
mhModeHint |
ウィンドウモード | |
ju |
juJustifCode |
文字揃え | |
pd |
pdPrintDir |
プリント方向 | |
sd |
sdScrollDir |
スクロール方向 | |
wfc |
wfcWinFillColor |
ウィンドウ塗りつぶし色 | ウィンドウの色 / Window color |
wfo |
wfoWinFillAlpha |
ウィンドウ塗りつぶしアルファ | ウィンドウの透過度 / Window opacity |
mh 属性
| 値 | ウィンドウモード |
|---|---|
0 |
ポップオン式字幕(デフォルト) |
1 |
ペイントオン式字幕 |
2 |
ロールアップ式字幕(自動字幕やリアルタイム字幕放送等) |
ju 属性
| 値 | 文字揃え |
|---|---|
0 |
始端揃え |
1 |
終端揃え |
2 |
中央揃え |
3 |
均等割付 |
pd 属性
| 値 | |
|---|---|
0 |
なし(横書き LTR) |
1 |
横書き RTL |
2 |
正立 縦書き LTR |
3 |
横倒 縦書き LTR |
1 は HTML に dir="rtl" を付加する。
2 は CSS に writing-mode: vertical-rl; text-orientation: upright; を適用する。
3 は CSS に writing-mode: vertical-rl; transform: rotate(180deg); を適用する。
3 は,transform を用いた奇妙な実装により,和文が完全に倒立する。
sd 属性
| 値 | |
|---|---|
0 |
なし(右縦書き) |
1 |
左縦書き |
3 |
(自動字幕などロールアップ字幕に現れる) |
1 は pd による writing-mode の変更を上書きし vertical-lr にする。
1 には縦書きの pd 属性が必須。
2 の存在は不明で,3 は描画にかかわらない。
body タグ
(JSON3 キー events)
p タグ
| SRV3 | JSON3 キー | |
|---|---|---|
t |
tStartMs |
タイムスタンプ(ミリ秒) |
d |
dDurationMs |
デュレーション(ミリ秒,デフォルト 5000) |
p |
pPenId |
pen ID |
ws |
wsWinStyleId |
ws ID |
wp |
wpWinPosId |
wp ID |
w |
wWinId |
親 w ID |
a |
aAppend |
自動字幕の行追加 |
a 属性
| 値 | |
|---|---|
0 |
なし |
1 |
自動字幕の改行時に現れる。
s タグ
(JSON3 キー segs)
| SRV3 | JSON3 キー | |
|---|---|---|
t |
tOffsetMs |
親からの相対タイムスタンプ(ミリ秒) |
p |
pPenId |
pen ID |
ac |
acAsrConf |
自動音声認識信頼度 |
ac 属性
| 値 | |
|---|---|
0 - 255
|
自動音声認識信頼度 |
描画にはかかわらない。最近生成された自動字幕ではすべて 0 になっているようだ。
w タグ
| SRV3 | JSON3 キー | |
|---|---|---|
id |
id |
ID |
t |
tStartMs |
タイムスタンプ(ミリ秒) |
d |
dDurationMs |
デュレーション(ミリ秒) |
ws |
wsWinStyleId |
ws ID |
wp |
wpWinPosId |
wp ID |
通常,各 <p> はそれ自体でウィンドウを持つ。