feat: Ausschnitte an Satzgrenzen erweitern (--exakt schneidet genau)
Bei -s/-e werden angeschnittene Sätze an beiden Enden vollständig aufgenommen (höchstens 30 s über den Zeitraum hinaus). rede_korrigieren.py weist das Modell bei Ausschnitten zusätzlich an, nichts zu ergänzen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
9bbf325bd3
commit
faea4bf465
1 changed files with 234 additions and 28 deletions
|
|
@ -45,11 +45,12 @@ def parse_args():
|
|||
return args
|
||||
|
||||
|
||||
def fetch_text(url, lang=None, start=None, end=None):
|
||||
def fetch_text(url, lang=None, start=None, end=None, exact=False):
|
||||
"""Download the subtitles of a video; return (video info, text lines).
|
||||
|
||||
Without `lang` the language of the original audio is used. `start`/`end`
|
||||
(seconds) keep only the captions of that time range.
|
||||
(seconds) keep only the captions of that time range, completed to whole
|
||||
sentences unless `exact`.
|
||||
"""
|
||||
info = fetch_info(url)
|
||||
print(f"Video: {info.get('title', '?')}")
|
||||
|
|
@ -69,7 +70,7 @@ def fetch_text(url, lang=None, start=None, end=None):
|
|||
vtt = Path(f"{target_base}.{track}.vtt")
|
||||
if not vtt.is_file():
|
||||
raise SystemExit("yt-dlp hat keine Untertitel-Datei geschrieben.")
|
||||
lines = vtt_to_lines(vtt.read_text(encoding="utf-8-sig"), start, end)
|
||||
lines = vtt_to_lines(vtt.read_text(encoding="utf-8-sig"), start, end, exact)
|
||||
|
||||
if not lines:
|
||||
if start is None and end is None:
|
||||
|
|
@ -80,7 +81,7 @@ def fetch_text(url, lang=None, start=None, end=None):
|
|||
|
||||
def main():
|
||||
args = parse_args()
|
||||
info, lines = fetch_text(args.url, args.lang, args.start, args.ende)
|
||||
info, lines = fetch_text(args.url, args.lang, args.start, args.ende, args.exakt)
|
||||
suffix = time_suffix(args.start, args.ende)
|
||||
output = args.output or Path(f"{default_name(info)}{suffix}.txt")
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue