feat: Hinweis, wenn ein Zeitbereich über das Ende der Untertitel reicht
„-z 0-05:00“ bedeutet fünf Stunden und bearbeitete bisher stillschweigend das ganze Video. vtt2txt.py (und damit extract_text.py und abschrift_korrigieren.py) nennt jetzt das Ende der Untertitel, bei Bereichen ab einer Stunde mit dem Tipp „Minute 5 ist 00:05“. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
37e4a2bca0
commit
d9512bcedc
1 changed files with 57 additions and 5 deletions
|
|
@ -366,10 +366,33 @@ def test_vtt_to_text_skips_empty_range(capsys):
|
|||
assert text == "[00:01:40 - 00:01:41]\nErster Satz ist hier."
|
||||
out = capsys.readouterr().out
|
||||
assert "keine Untertitel im Bereich 00:00:00 – 00:00:50" in out
|
||||
assert "keine Untertitel im Bereich 00:03:20 – Ende" in out
|
||||
assert "keine Untertitel im Bereich 00:03:20 – Ende (die Untertitel enden bei" in out
|
||||
assert vtt2txt.vtt_to_text(SPEECH, [(200, None)]) == ""
|
||||
|
||||
|
||||
def test_vtt_to_text_notes_range_past_last_caption(capsys):
|
||||
# "-z 0-05:00" means five hours, not five minutes
|
||||
text = vtt2txt.vtt_to_text(SPEECH, [(0, 5 * 3600)])
|
||||
assert text.startswith("[00:01:40 - ")
|
||||
out = capsys.readouterr().out
|
||||
assert "Bereich 00:00:00 – 05:00:00 reicht über das Ende der Untertitel hinaus" in out
|
||||
assert "Stunden:Minuten, Minute 5 ist 00:05" in out
|
||||
|
||||
|
||||
@pytest.mark.parametrize("start, end, expected", [
|
||||
(100, 110, ""), # inside
|
||||
(None, None, ""),
|
||||
(100, 200, " (die Untertitel enden bei 00:02:00)"),
|
||||
(150, None, " (die Untertitel enden bei 00:02:00)"),
|
||||
(0, 3600, " (die Untertitel enden bei 00:02:00; zwei Zahlen wie 05:00 sind "
|
||||
"Stunden:Minuten, Minute 5 ist 00:05)"),
|
||||
(0, 200, ""), # no captions at all: no end known
|
||||
])
|
||||
def test_end_hint(start, end, expected):
|
||||
captions_end = None if (start, end) == (0, 200) else 120
|
||||
assert vtt2txt.end_hint(start, end, captions_end) == expected
|
||||
|
||||
|
||||
def test_vtt_to_text_without_ranges_has_no_header():
|
||||
assert vtt2txt.vtt_to_text(SPEECH).splitlines()[0] == "Erster Satz ist hier."
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue