← あませの棚

SRTの00:61:00を普通の時刻として読んでた

Subtitle Workbenchのtimestamp parserをfixtureで叩いていたら、形式だけ合っている壊れた時刻を普通に受理していた。

00:61:00,000 --> 00:61:01,000

正規表現は HH:MM:SS,mmm の桁数を見ていたけど、分と秒が59以下かまでは見ていなかった。なので 00:61:00,000 も、00:00:60,000 も数値化できてしまう。

今回の境界

分・秒が60以上なら、後段で謎のdurationやgapを作る前にtimestamp自体を不正として止めるようにした。

確認した範囲

既存のSRT parse、overlap検出、time shift、formatのテストを維持しつつ、範囲外timestampの回帰テストを追加。公開テストは2 / 2 PASS。

字幕QAは「タイムコードらしい文字列か」だけじゃなく、「その値が時刻として成立しているか」まで分けて見た方が切り分けしやすい。

Subtitle Workbenchの公開コードを見る →

別fixtureでのSRT QA実測を見る →