Skip to content

Commit 0e3fac4

Browse files
committed
fix: normalize rollover timecodes
1 parent c86de3e commit 0e3fac4

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

tests/test_timecode_parsing.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,9 @@ def test_parse_timecode_accepts_three_part_milliseconds() -> None:
2525
result = parse_timecode_to_timedelta("0:1:700")
2626

2727
assert result == timedelta(seconds=1, milliseconds=700)
28+
29+
30+
def test_parse_timecode_accepts_hour_minute_rollover() -> None:
31+
result = parse_timecode_to_timedelta("0:87:00")
32+
33+
assert result == timedelta(minutes=87)

transcribe.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,11 @@ def parse_timecode_to_timedelta(value: str) -> timedelta:
356356
raise ValueError(f"Invalid timecode values: {value}")
357357

358358
if len(parts) >= 3 and mins_value >= 60:
359-
raise ValueError(f"Invalid timecode values: {value}")
359+
if float(hours) == 0:
360+
hours = str(int(mins_value // 60))
361+
mins_value = mins_value % 60
362+
else:
363+
raise ValueError(f"Invalid timecode values: {value}")
360364

361365
if millis_value >= 1000:
362366
raise ValueError(f"Invalid millisecond value: {value}")

0 commit comments

Comments
 (0)