feat: rede_korrigieren.py -u URL – von YouTube direkt zum korrigierten Text

- extract_text.fetch_text() aus main() herausgelöst und wiederverwendet
- -u/--url statt -i, -l/--lang für die Sprache (Standard: Original-Audio)
- Ohne -o: <Video-ID>.korrigiert.txt; der Rohtext wird daneben gespeichert,
  eine vorhandene, abweichende Rohtext-Datei aber nie überschrieben

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-10-10 20:02:53 +02:00
commit 5a072deca3

View file

@ -41,13 +41,15 @@ def parse_args():
return args
def main():
args = parse_args()
def fetch_text(url, lang=None):
"""Download the subtitles of a video; return (video info, text lines).
info = fetch_info(args.url)
Without `lang` the language of the original audio is used.
"""
info = fetch_info(url)
print(f"Video: {info.get('title', '?')}")
lang = args.lang or original_language(info)
lang = lang or original_language(info)
chosen = choose_track(info, lang) if lang else None
if chosen is None:
raise SystemExit(no_track_message(info, lang))
@ -58,7 +60,7 @@ def main():
# The VTT file is only an intermediate step
with tempfile.TemporaryDirectory() as tmp:
target_base = Path(tmp) / "untertitel"
download(args.url, track, is_auto, target_base)
download(url, track, is_auto, target_base)
vtt = Path(f"{target_base}.{track}.vtt")
if not vtt.is_file():
raise SystemExit("yt-dlp hat keine Untertitel-Datei geschrieben.")
@ -66,6 +68,12 @@ def main():
if not lines:
raise SystemExit("Die Untertitel enthalten keinen Text.")
return info, lines
def main():
args = parse_args()
_, lines = fetch_text(args.url, args.lang)
if args.fliesstext:
# Never split words, not even at hyphens ("EU-Gipfel")