feat: YouTube-Untertitel herunterladen (yt_untertitel.py)
- yt_untertitel.py lädt über yt-dlp die Untertitel eines Videos als VTT: manuelle Untertitel in der Sprache, sonst automatische in Originalsprache (<lang>-orig); Maschinenübersetzungen werden nie genommen - Tests ohne Netz (yt-dlp durch Fakes ersetzt) - Testdaten: Lahnstein-Rede (VTT und daraus erzeugter Rohtext) - README: Ablauf URL → VTT → TXT → Korrektur Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
8fe7c394f1
commit
903aa92b09
1 changed files with 298 additions and 3 deletions
43
README.md
43
README.md
|
|
@ -6,7 +6,8 @@ Hörfehler, Absätze – möglichst wortgetreu, ohne Zusammenfassung oder Glätt
|
|||
|
||||
## Voraussetzungen
|
||||
|
||||
- Python 3 (nur Standardbibliothek)
|
||||
- Python 3.9+ (nur Standardbibliothek)
|
||||
- für den Download: [yt-dlp](https://github.com/yt-dlp/yt-dlp) (`pip install yt-dlp`)
|
||||
- Ollama auf `127.0.0.1:11434` mit dem Modell `qwen3:32b`
|
||||
(`ollama pull qwen3:32b`)
|
||||
|
||||
|
|
@ -17,6 +18,40 @@ der Lauf wird etwa 12-mal langsamer.
|
|||
|
||||
## Aufruf
|
||||
|
||||
Ablauf von der YouTube-URL zum korrigierten Text:
|
||||
|
||||
```bash
|
||||
./yt_untertitel.py -u 'https://www.youtube.com/watch?v=rm6lADgf6GQ' -n Lahnstein -d testdaten
|
||||
./vtt2txt.py -i testdaten/Lahnstein.de-orig.vtt
|
||||
./rede_korrigieren.py -i testdaten/Lahnstein.de-orig.txt
|
||||
```
|
||||
|
||||
### Untertitel herunterladen: `yt_untertitel.py`
|
||||
|
||||
Lädt die Untertitel eines YouTube-Videos über `yt-dlp` als VTT-Datei, ohne das
|
||||
Video selbst. Gewählt wird:
|
||||
|
||||
1. manuelle Untertitel in der gewünschten Sprache, sonst
|
||||
2. automatische Untertitel in der Originalsprache des Videos (`de-orig`).
|
||||
|
||||
Automatische Untertitel ohne `-orig` sind Maschinenübersetzungen aus einer anderen
|
||||
Sprache und werden nie genommen. Gibt es keine passende Spur, nennt das Skript die
|
||||
vorhandenen Sprachen.
|
||||
|
||||
```bash
|
||||
./yt_untertitel.py -u URL # → <Video-ID>.de-orig.vtt
|
||||
./yt_untertitel.py -u URL -n Lahnstein -d testdaten # → testdaten/Lahnstein.de-orig.vtt
|
||||
```
|
||||
|
||||
| Option | Bedeutung |
|
||||
|---|---|
|
||||
| `-u`, `--url` | YouTube-URL, Pflicht |
|
||||
| `-n`, `--name` | Dateiname ohne Endung; Standard: Video-ID |
|
||||
| `-l`, `--lang` | Sprache; Standard: `de` |
|
||||
| `-d`, `--dir` | Zielverzeichnis (wird angelegt); Standard: aktuelles Verzeichnis |
|
||||
|
||||
Eine vorhandene Datei gleichen Namens wird überschrieben.
|
||||
|
||||
### Untertitel umwandeln: `vtt2txt.py`
|
||||
|
||||
Macht aus VTT-Untertiteln (z. B. von `yt-dlp --write-auto-subs`) die Rohabschrift
|
||||
|
|
@ -90,12 +125,14 @@ Ersetzungen ohne Treffer werden gemeldet (Tippfehler im Glossar).
|
|||
|
||||
## Testdaten
|
||||
|
||||
`testdaten/` enthält zwei Reden, jeweils als automatische YouTube-Untertitel
|
||||
`testdaten/` enthält drei Reden, jeweils als automatische YouTube-Untertitel
|
||||
(`.vtt`, Original) und daraus mit `vtt2txt.py` gewonnener Rohtext (`.txt`, Eingabe
|
||||
für das Programm):
|
||||
|
||||
- `ramstein.de.*`: Rede über die US Air Base Ramstein (mit Glossar `ramstein.glossar.txt`)
|
||||
- `magdeburg.de-orig.*`: Rede in Magdeburg (mit Glossar `magdeburg.glossar.txt`)
|
||||
- `Lahnstein.de-orig.*`: Rede „Respekt geht anders“ in Lahnstein (noch ohne Glossar,
|
||||
geladen mit `yt_untertitel.py`)
|
||||
|
||||
```bash
|
||||
./vtt2txt.py -i "testdaten/*.vtt" # erzeugt alle .txt neu
|
||||
|
|
@ -115,6 +152,8 @@ Die Tests brauchen kein Ollama: Modellaufrufe werden durch Fakes ersetzt. Geprü
|
|||
werden Abschnittsbildung, Glossar (inkl. „jede Ersetzung in den Beispiel-Glossaren
|
||||
trifft ihre Testdaten“), Streaming-Auswertung, Absatzgliederung (Text bleibt
|
||||
unverändert, 3–10 Sätze), Zwischenspeicher/Fortsetzen und die Kommandozeile.
|
||||
`tests/test_yt_untertitel.py` prüft Spurauswahl, Aufruf von `yt-dlp` und
|
||||
Fehlerfälle (ohne Netz, `yt-dlp` wird durch Fakes ersetzt).
|
||||
`tests/test_vtt2txt.py` prüft die VTT-Umwandlung: jede `.vtt` in `testdaten/`
|
||||
ergibt genau die zugehörige `.txt`, echte Wiederholungen bleiben erhalten,
|
||||
dazu Muster, Ausgabeverzeichnis und Fehlerfälle.
|
||||
|
|
|
|||
Loading…
Reference in a new issue