docs: Dateiablage mit Arbeitsordnern, Abschluss und Video-Glossaren
README: neue Abschnitte „Dateiablage“ und „Abschluss: abschliessen.py“, Standardpfade abschriften/<Name>/ in allen Beispielen und Optionstabellen, gemeinsame und Video-Glossare, testdaten/<rede>/, Tests und Einstellungen. Bedienungsanleitung: neuer Abschnitt 10 „Schritt 6: Abschließen und aufräumen“ (folgende Abschnitte umnummeriert), Ablaufdiagramm und Schnellstart mit Arbeitsordner und Abschluss, Glossar-Arten, Dateien je Arbeitsordner, Hinweis „im Programmordner arbeiten“, Sicherung von glossare/ und fertig/, Fehlermeldungen und Kurzreferenz von abschliessen.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
d66f185fdd
commit
6f3eb23547
1 changed files with 373 additions and 131 deletions
|
|
@ -16,14 +16,15 @@ ist. Eine knappe technische Übersicht steht in der [README](README.md).
|
|||
7. [Schritt 3: Korrigieren](#7-schritt-3-korrigieren)
|
||||
8. [Schritt 4: Ergebnis prüfen](#8-schritt-4-ergebnis-prüfen)
|
||||
9. [Schritt 5: Nachbessern und erneut laufen lassen](#9-schritt-5-nachbessern-und-erneut-laufen-lassen)
|
||||
10. [Nur Ausschnitte bearbeiten (Zeitauswahl)](#10-nur-ausschnitte-bearbeiten-zeitauswahl)
|
||||
11. [Englische Beiträge](#11-englische-beiträge)
|
||||
12. [Dateien, die entstehen](#12-dateien-die-entstehen)
|
||||
13. [Zwischenstände, Abbruch und Fortsetzen](#13-zwischenstände-abbruch-und-fortsetzen)
|
||||
14. [Ein anderes Sprachmodell verwenden](#14-ein-anderes-sprachmodell-verwenden)
|
||||
15. [Fehlermeldungen und Lösungen](#15-fehlermeldungen-und-lösungen)
|
||||
16. [Tipps und häufige Fragen](#16-tipps-und-häufige-fragen)
|
||||
17. [Kurzreferenz aller Befehle](#17-kurzreferenz-aller-befehle)
|
||||
10. [Schritt 6: Abschließen und aufräumen](#10-schritt-6-abschließen-und-aufräumen)
|
||||
11. [Nur Ausschnitte bearbeiten (Zeitauswahl)](#11-nur-ausschnitte-bearbeiten-zeitauswahl)
|
||||
12. [Englische Beiträge](#12-englische-beiträge)
|
||||
13. [Dateien, die entstehen](#13-dateien-die-entstehen)
|
||||
14. [Zwischenstände, Abbruch und Fortsetzen](#14-zwischenstände-abbruch-und-fortsetzen)
|
||||
15. [Ein anderes Sprachmodell verwenden](#15-ein-anderes-sprachmodell-verwenden)
|
||||
16. [Fehlermeldungen und Lösungen](#16-fehlermeldungen-und-lösungen)
|
||||
17. [Tipps und häufige Fragen](#17-tipps-und-häufige-fragen)
|
||||
18. [Kurzreferenz aller Befehle](#18-kurzreferenz-aller-befehle)
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -57,9 +58,15 @@ Die Werkzeuge im Überblick:
|
|||
| `vtt2txt.py` | Untertiteldatei (`.vtt`) → Rohtext |
|
||||
| `glossar_vorschlag.py` | Entwurf für ein Glossar (vermutete Hörfehler bei Namen und Begriffen) |
|
||||
| `aenderungen.py` | Änderungsbericht für vorhandene Dateien erstellen |
|
||||
| `abschliessen.py` | fertige Abschrift mit Quellenangabe nach `fertig/`, Arbeitsordner aufräumen |
|
||||
|
||||
Für den Normalfall braucht man nur `abschrift_korrigieren.py`, für bessere
|
||||
Ergebnisse zusätzlich ein Glossar.
|
||||
Für den Normalfall braucht man nur `abschrift_korrigieren.py` und am Ende
|
||||
`abschliessen.py`, für bessere Ergebnisse zusätzlich ein Glossar.
|
||||
|
||||
**Wo die Dateien liegen:** Jedes Video bekommt einen eigenen Arbeitsordner
|
||||
`abschriften/<Name>/`, in dem alles zu diesem Video entsteht. Ist die Abschrift
|
||||
fertig, bleibt nur die Ergebnisdatei in `fertig/`. Gemeinsame Glossare liegen in
|
||||
`glossare/`. Details in [Abschnitt 13](#13-dateien-die-entstehen).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -95,7 +102,7 @@ Environment="OLLAMA_NUM_PARALLEL=1"
|
|||
|
||||
Mit `OLLAMA_NUM_PARALLEL=4` landet ein Drittel des Modells auf der CPU, und ein
|
||||
Lauf dauert etwa zwölfmal so lange. Mit weniger Grafikspeicher hilft ein kleineres
|
||||
Modell (siehe [Abschnitt 14](#14-ein-anderes-sprachmodell-verwenden)), auf Kosten
|
||||
Modell (siehe [Abschnitt 15](#15-ein-anderes-sprachmodell-verwenden)), auf Kosten
|
||||
der Qualität.
|
||||
|
||||
### 2.3 Prüfen, ob alles bereit ist
|
||||
|
|
@ -117,6 +124,10 @@ Lassen sich die Programme nicht mit `./…` starten („Keine Berechtigung“),
|
|||
ausführbar machen: `chmod +x *.py`. Alternativ immer `python3 programm.py …`
|
||||
aufrufen.
|
||||
|
||||
**Immer im Programmordner arbeiten.** Die Ordner `abschriften/`, `fertig/` und
|
||||
`glossare/` werden relativ zum aktuellen Verzeichnis angelegt bzw. gesucht. Wer die
|
||||
Programme aus einem anderen Verzeichnis startet, bekommt dort eigene, leere Ordner.
|
||||
|
||||
---
|
||||
|
||||
## 3. Schnellstart
|
||||
|
|
@ -133,16 +144,25 @@ URLs die Shell.
|
|||
Das Programm
|
||||
|
||||
1. lädt die Untertitel in der Originalsprache des Videos,
|
||||
2. speichert den Rohtext, z. B. `GGBLahnstein_Prof_Gabriele_Krone-Schmalz_Respekt_geht_anders_2026-07-30.txt`,
|
||||
3. korrigiert ihn abschnittsweise und gliedert ihn in Absätze,
|
||||
4. schreibt das Ergebnis nach `…_2026-07-30.korrigiert.txt`
|
||||
5. und den Änderungsbericht nach `…_2026-07-30.aenderungen.html`.
|
||||
2. legt den Arbeitsordner an, z. B.
|
||||
`abschriften/GGBLahnstein_Prof_Gabriele_Krone-Schmalz_Respekt_geht_anders_2026-07-30/`
|
||||
(kurz `abschriften/<Name>/`),
|
||||
3. speichert dort den Rohtext `<Name>.txt` und die Quellenangabe `<Name>.quelle.json`
|
||||
(Titel, Kanal, Datum, URL),
|
||||
4. korrigiert den Text abschnittsweise und gliedert ihn in Absätze,
|
||||
5. schreibt das Ergebnis nach `<Name>.korrigiert.txt`
|
||||
6. und den Änderungsbericht nach `<Name>.aenderungen.html`.
|
||||
|
||||
Eine einstündige Rede braucht mit `qwen3:32b` auf einer RTX 3090 etwa 6–8
|
||||
Minuten. Danach den Bericht im Browser öffnen und die Liste **„Zu prüfen“**
|
||||
durchgehen (siehe [Abschnitt 8](#8-schritt-4-ergebnis-prüfen)).
|
||||
durchgehen (siehe [Abschnitt 8](#8-schritt-4-ergebnis-prüfen)). Ist alles erledigt:
|
||||
|
||||
Mit eigenem Dateinamen:
|
||||
```bash
|
||||
./abschliessen.py abschriften/<Name>
|
||||
# → fertig/<Name>.txt mit Quellenkopf; der Arbeitsordner wird nach Rückfrage gelöscht
|
||||
```
|
||||
|
||||
Mit eigenem Dateinamen (ohne Arbeitsordner):
|
||||
|
||||
```bash
|
||||
./abschrift_korrigieren.py -u 'https://www.youtube.com/watch?v=rm6lADgf6GQ' -o lahnstein.korrigiert.txt
|
||||
|
|
@ -155,8 +175,10 @@ und einem passenden Glossar. Ein Lauf dauert etwa zwei bis drei Minuten und zeig
|
|||
Ergebnisse, auch den Änderungsbericht:
|
||||
|
||||
```bash
|
||||
./abschrift_korrigieren.py -i tests/daten/beispiel.de.txt -g tests/daten/beispiel.glossar.txt -o beispiel.korrigiert.txt
|
||||
# → beispiel.korrigiert.txt, beispiel.aenderungen.html
|
||||
./abschrift_korrigieren.py -i tests/daten/beispiel.de.txt -g tests/daten/beispiel.glossar.txt \
|
||||
-o abschriften/beispiel/beispiel.korrigiert.txt
|
||||
# → abschriften/beispiel/: beispiel.korrigiert.txt, beispiel.aenderungen.html
|
||||
./abschliessen.py abschriften/beispiel # Abschluss ausprobieren
|
||||
```
|
||||
|
||||
---
|
||||
|
|
@ -168,22 +190,28 @@ besonders bei vielen Namen, lohnt dieser Ablauf:
|
|||
|
||||
```text
|
||||
YouTube-URL
|
||||
│ Schritt 1: extract_text.py → rede.txt (Rohtext)
|
||||
│ Schritt 1: extract_text.py → abschriften/<Name>/<Name>.txt (Rohtext)
|
||||
▼
|
||||
Rohtext ansehen
|
||||
│ Schritt 2: glossar_vorschlag.py → rede.glossar.entwurf.txt
|
||||
│ prüfen, übernehmen → glossare/rede.glossar.txt
|
||||
│ Schritt 2: glossar_vorschlag.py → <Name>.glossar.entwurf.txt
|
||||
│ prüfen, übernehmen → <Name>.glossar.txt (Video-Glossar)
|
||||
│ bzw. glossare/<sprecher>.glossar.txt
|
||||
▼
|
||||
│ Schritt 3: abschrift_korrigieren.py → rede.korrigiert.txt
|
||||
│ rede.aenderungen.html
|
||||
│ Schritt 3: abschrift_korrigieren.py → <Name>.korrigiert.txt
|
||||
│ <Name>.aenderungen.html
|
||||
▼
|
||||
│ Schritt 4: Bericht prüfen („Zu prüfen“)
|
||||
│ Schritt 4: Bericht prüfen („Zu prüfen“), Text von Hand nacharbeiten
|
||||
▼
|
||||
│ Schritt 5: Glossar ergänzen, erneut laufen lassen
|
||||
▼ (nur Geändertes wird neu berechnet)
|
||||
│ (nur Geändertes wird neu berechnet)
|
||||
▼
|
||||
│ Schritt 6: abschliessen.py → fertig/<Name>.txt, Arbeitsordner gelöscht
|
||||
▼
|
||||
fertige Abschrift
|
||||
```
|
||||
|
||||
Alle Dateien eines Videos liegen bis zum Abschluss in `abschriften/<Name>/`.
|
||||
|
||||
---
|
||||
|
||||
## 5. Schritt 1: Rohtext holen
|
||||
|
|
@ -191,7 +219,8 @@ fertige Abschrift
|
|||
### 5.1 Von YouTube: `extract_text.py`
|
||||
|
||||
```bash
|
||||
./extract_text.py -u 'https://www.youtube.com/watch?v=rm6lADgf6GQ' -o rede.txt
|
||||
./extract_text.py -u 'https://www.youtube.com/watch?v=rm6lADgf6GQ'
|
||||
# → abschriften/<Name>/<Name>.txt und <Name>.quelle.json
|
||||
```
|
||||
|
||||
Das Programm zeigt Titel, gewählte Untertitelspur und Ziel an:
|
||||
|
|
@ -201,8 +230,10 @@ Video: Prof. Gabriele Krone-Schmalz – Respekt geht anders – …
|
|||
Lade automatische Untertitel „de-orig“ …
|
||||
```
|
||||
|
||||
Ohne `-o` entsteht ein Name aus Kanal, Titel und Datum (siehe
|
||||
[Abschnitt 12.2](#122-standard-dateinamen)).
|
||||
Ohne `-o` entsteht ein Name aus Kanal, Titel und Datum, und die Datei kommt in den
|
||||
Arbeitsordner `abschriften/<Name>/` (siehe [Abschnitt 13.2](#132-standard-dateinamen)).
|
||||
Mit `-o rede.txt` landet sie dort, wo man will; die Quellenangabe `rede.quelle.json`
|
||||
entsteht daneben.
|
||||
|
||||
**Welche Untertitel werden genommen?**
|
||||
|
||||
|
|
@ -223,16 +254,19 @@ versteht `abschrift_korrigieren.py`.
|
|||
Soll die Original-Untertiteldatei (`.vtt`, mit Zeitstempeln) erhalten bleiben:
|
||||
|
||||
```bash
|
||||
./yt_untertitel.py -u 'https://www.youtube.com/watch?v=rm6lADgf6GQ' -n Lahnstein -d untertitel
|
||||
# → untertitel/Lahnstein.de-orig.vtt
|
||||
./vtt2txt.py -i untertitel/Lahnstein.de-orig.vtt
|
||||
# → untertitel/Lahnstein.de-orig.txt
|
||||
./yt_untertitel.py -u 'https://www.youtube.com/watch?v=rm6lADgf6GQ' -n Lahnstein
|
||||
# → abschriften/Lahnstein/Lahnstein.de-orig.vtt (+ Lahnstein.quelle.json)
|
||||
./vtt2txt.py -i abschriften/Lahnstein/Lahnstein.de-orig.vtt
|
||||
# → abschriften/Lahnstein/Lahnstein.de-orig.txt
|
||||
```
|
||||
|
||||
`-n` bestimmt den Namen von Datei und Arbeitsordner; mit `-d` wählt man ein anderes
|
||||
Zielverzeichnis.
|
||||
|
||||
Achtung: `yt_untertitel.py` nimmt ohne `-l` Deutsch (`de`), nicht die
|
||||
Originalsprache. Für englische Videos `-l en` angeben.
|
||||
|
||||
Die `.vtt`-Datei braucht man für die [Zeitauswahl](#10-nur-ausschnitte-bearbeiten-zeitauswahl)
|
||||
Die `.vtt`-Datei braucht man für die [Zeitauswahl](#11-nur-ausschnitte-bearbeiten-zeitauswahl)
|
||||
mit vorhandenen Dateien. `abschrift_korrigieren.py` nimmt sie auch direkt, der
|
||||
Zwischenschritt über `vtt2txt.py` ist dann nur nötig, um den Rohtext anzusehen
|
||||
oder ein Glossar daraus zu erstellen.
|
||||
|
|
@ -293,33 +327,43 @@ Regeln für feste Ersetzungen:
|
|||
die Ersetzungen ohne Treffer. Bei einem Glossar für genau diesen Beitrag deutet
|
||||
„ohne Treffer“ auf einen Tippfehler.
|
||||
|
||||
### 6.2 Mehrere Glossare kombinieren
|
||||
### 6.2 Gemeinsame Glossare und Video-Glossare
|
||||
|
||||
Bewährt hat sich ein **gemeinsames Glossar** pro Redner oder Kanal (wiederkehrende
|
||||
Namen und Hörfehler) plus eines **je Beitrag**:
|
||||
Namen und Hörfehler) plus ein **Video-Glossar** je Beitrag:
|
||||
|
||||
| Art | Ablage | Verwendung |
|
||||
|---|---|---|
|
||||
| gemeinsames Glossar | `glossare/krone-schmalz.glossar.txt` | mit `-g` angeben |
|
||||
| Video-Glossar | `abschriften/<Name>/<Name>.glossar.txt`, heißt wie sein Ordner | **automatisch** |
|
||||
|
||||
```bash
|
||||
./abschrift_korrigieren.py -i rede.txt -g glossare/krone-schmalz.glossar.txt -g glossare/rede.glossar.txt
|
||||
./abschrift_korrigieren.py -i abschriften/<Name>/<Name>.txt -g glossare/krone-schmalz.glossar.txt
|
||||
# Glossar glossare/krone-schmalz.glossar.txt: 7 Begriffe, 36 feste Ersetzungen
|
||||
# Glossar abschriften/<Name>/<Name>.glossar.txt (Video-Glossar, automatisch): …
|
||||
```
|
||||
|
||||
Das gemeinsame Glossar zuerst angeben, damit seine Ersetzungen zuerst greifen.
|
||||
Das Video-Glossar wird nach den mit `-g` angegebenen angewendet; so greifen die
|
||||
gemeinsamen Ersetzungen zuerst. Dasselbe gilt für `glossar_vorschlag.py` und
|
||||
`aenderungen.py`. Beim Abschluss nennt `abschliessen.py` die Einträge des
|
||||
Video-Glossars, die noch in keinem gemeinsamen Glossar stehen. Was auch in anderen
|
||||
Videos vorkommen wird (Namen, Orte), gehört dann ins gemeinsame Glossar; der Rest
|
||||
verschwindet mit dem Arbeitsordner.
|
||||
|
||||
**Ablage:** Glossare gehören ins Verzeichnis `glossare/` im Programmordner, z. B.
|
||||
`glossare/krone-schmalz.glossar.txt` und `glossare/ramstein.glossar.txt`. Sie
|
||||
enthalten Namen realer Personen und Hörfehler realer Beiträge und werden deshalb
|
||||
nicht ins Git-Repository übernommen: `glossare/` und jede Datei `*.glossar.txt` sind
|
||||
über `.gitignore` ausgeschlossen und bleiben nur auf dem eigenen Rechner. Das ist
|
||||
gewollt; Glossare deshalb gesondert sichern. Einzige Ausnahme ist das kleine,
|
||||
leicht nachvollziehbare Glossar zur erfundenen Beispielrede in
|
||||
`tests/daten/beispiel.glossar.txt`, das sich gut als Vorlage eignet.
|
||||
**Glossare bleiben lokal.** Sie enthalten Namen realer Personen und Hörfehler realer
|
||||
Beiträge und werden deshalb nicht ins Git-Repository übernommen (`glossare/`,
|
||||
`abschriften/` und `*.glossar.txt` stehen in `.gitignore`). `glossare/` deshalb
|
||||
gesondert sichern (siehe [Abschnitt 17](#17-tipps-und-häufige-fragen)). Als Vorlage
|
||||
eignet sich das kleine Glossar zur erfundenen Beispielrede in
|
||||
`tests/daten/beispiel.glossar.txt`.
|
||||
|
||||
### 6.3 Entwurf vom Modell: `glossar_vorschlag.py`
|
||||
|
||||
Statt den ganzen Rohtext zu lesen, kann das Modell einen ersten Entwurf liefern:
|
||||
|
||||
```bash
|
||||
./glossar_vorschlag.py -i rede.txt -g glossare/krone-schmalz.glossar.txt
|
||||
# → rede.glossar.entwurf.txt
|
||||
./glossar_vorschlag.py -i abschriften/<Name>/<Name>.txt -g glossare/krone-schmalz.glossar.txt
|
||||
# → abschriften/<Name>/<Name>.glossar.entwurf.txt
|
||||
```
|
||||
|
||||
Das Modell sucht abschnittsweise vermutete Hörfehler: Namen, Orte, Fremdwörter,
|
||||
|
|
@ -346,8 +390,8 @@ irrt sich oft (im Beispiel ist „Deckmäntelchen“ richtig). Eine falsche fest
|
|||
Ersetzung verdirbt den Text unbemerkt. Deshalb:
|
||||
|
||||
1. Jeden Eintrag prüfen, im Zweifel im Rohtext oder Video nachsehen.
|
||||
2. Brauchbare Zeilen ohne `# ? ` ins Glossar des Beitrags (oder ins gemeinsame)
|
||||
kopieren.
|
||||
2. Brauchbare Zeilen ohne `# ? ` ins Video-Glossar
|
||||
`abschriften/<Name>/<Name>.glossar.txt` (oder ins gemeinsame) kopieren.
|
||||
3. Unsichere Namen lieber als **Begriff** (ohne `=>`) aufnehmen.
|
||||
|
||||
Nach einem Korrekturlauf kann der Entwurf zusätzlich die Wörter auflisten, die das
|
||||
|
|
@ -355,7 +399,8 @@ Modell geändert hat. Das zeigt Hörfehler, die man als feste Ersetzung absicher
|
|||
möchte, und Fehlgriffe des Modells:
|
||||
|
||||
```bash
|
||||
./glossar_vorschlag.py -i rede.txt -k rede.korrigiert.txt -g glossare/krone-schmalz.glossar.txt -g glossare/rede.glossar.txt
|
||||
./glossar_vorschlag.py -i abschriften/<Name>/<Name>.txt -k abschriften/<Name>/<Name>.korrigiert.txt \
|
||||
-g glossare/krone-schmalz.glossar.txt
|
||||
```
|
||||
|
||||
Diese Einträge stehen in einem eigenen Abschnitt mit ihrer Anzahl, z. B.
|
||||
|
|
@ -367,11 +412,12 @@ entfernen.
|
|||
## 7. Schritt 3: Korrigieren
|
||||
|
||||
```bash
|
||||
./abschrift_korrigieren.py -i rede.txt -g glossare/krone-schmalz.glossar.txt -g glossare/rede.glossar.txt
|
||||
./abschrift_korrigieren.py -i abschriften/<Name>/<Name>.txt -g glossare/krone-schmalz.glossar.txt
|
||||
```
|
||||
|
||||
Statt `-i rede.txt` geht auch `-i rede.de.vtt` (Untertiteldatei) oder
|
||||
`-u URL` (direkt von YouTube).
|
||||
Statt des Rohtexts geht auch die Untertiteldatei (`-i …/<Name>.de-orig.vtt`) oder
|
||||
`-u URL` (direkt von YouTube). Das Ergebnis entsteht neben der Eingabe, also im
|
||||
Arbeitsordner; das Video-Glossar dort wird automatisch verwendet.
|
||||
|
||||
### 7.1 Was das Programm tut
|
||||
|
||||
|
|
@ -401,7 +447,7 @@ Ein gekürztes Beispiel mit Erläuterungen:
|
|||
Modell: qwen3:32b
|
||||
Sprache des Beitrags: de
|
||||
Glossar glossare/krone-schmalz.glossar.txt: 7 Begriffe, 36 feste Ersetzungen
|
||||
Glossar glossare/ramstein.glossar.txt: 2 Begriffe, 15 feste Ersetzungen
|
||||
Glossar abschriften/<Name>/<Name>.glossar.txt (Video-Glossar, automatisch): 2 Begriffe, 15 feste Ersetzungen
|
||||
Ersetzt 2× „Willly Brand“ → „Willy Brandt“ ← feste Ersetzungen mit Treffern
|
||||
Ersetzt 6× „Rammstein“ → „Ramstein“
|
||||
13 Ersetzung(en) ohne Treffer: „Hostelchik“, … ← bei gemeinsamen Glossaren normal
|
||||
|
|
@ -565,13 +611,60 @@ vorhandene Datei als von Hand geändert.
|
|||
|
||||
---
|
||||
|
||||
## 10. Nur Ausschnitte bearbeiten (Zeitauswahl)
|
||||
## 10. Schritt 6: Abschließen und aufräumen
|
||||
|
||||
Ist der Text geprüft und nachgearbeitet, wird das Video abgeschlossen. Danach zählt
|
||||
nur noch die Ergebnisdatei; Rohtext, Bericht, Zwischenstände und Video-Glossar
|
||||
werden nicht mehr gebraucht.
|
||||
|
||||
```bash
|
||||
./abschliessen.py abschriften/<Name>
|
||||
```
|
||||
|
||||
Was dabei passiert:
|
||||
|
||||
1. **Prüfen:** Gibt es noch `[prüfen: …]`-Marken im Text oder eine ungeklärte
|
||||
`<Name>.neu.korrigiert.txt` (siehe [Abschnitt 9](#9-schritt-5-nachbessern-und-erneut-laufen-lassen)),
|
||||
bricht das Programm ab und nennt die Stellen. Erst klären, dann erneut aufrufen.
|
||||
Mit `--trotzdem` wird auch mit offenen Marken abgeschlossen.
|
||||
2. **Übernehmen:** Jedes Ergebnis kommt nach `fertig/`, bei Ausschnitten jedes
|
||||
einzeln, mit einem Quellenkopf:
|
||||
|
||||
```text
|
||||
Titel: Prof. Gabriele Krone-Schmalz – Respekt geht anders
|
||||
Kanal: GGBLahnstein
|
||||
Datum: 2026-07-30
|
||||
Quelle: https://www.youtube.com/watch?v=rm6lADgf6GQ
|
||||
Abgeschlossen: 2026-10-11
|
||||
|
||||
Vielen Dank. Liebe Gäste, …
|
||||
```
|
||||
|
||||
Die Angaben stammen aus `<Name>.quelle.json`, die beim Download entsteht. Fehlt
|
||||
sie (z. B. bei einer eigenen `.vtt`), nennt der Kopf nur die Datei. Eine Datei in
|
||||
`fertig/` mit anderem Text wird nie überschrieben.
|
||||
3. **Glossar sichten:** Einträge des Video-Glossars, die in keinem Glossar unter
|
||||
`glossare/` stehen, werden aufgelistet. Brauchbares jetzt ins gemeinsame Glossar
|
||||
übernehmen.
|
||||
4. **Aufräumen:** Der Inhalt des Arbeitsordners wird angezeigt, dann kommt die Frage
|
||||
`Arbeitsordner … löschen? [j/N]`. Nur `j` löscht. Wer „n“ antwortet, kann
|
||||
`abschliessen.py` später erneut aufrufen; die Datei in `fertig/` wird dann als
|
||||
bereits übernommen erkannt. Mit `--ja` wird ohne Frage gelöscht.
|
||||
|
||||
**Schutz vor Versehen:** Nie gelöscht werden Ordner, die andere Dateien enthalten als
|
||||
die, die das Programm selbst anlegt (`.txt`, `.vtt`, `.html`, `.json`, `*.parts/`),
|
||||
außerdem das Aufrufverzeichnis und alles in `testdaten/`, `glossare/`, `tests/` und
|
||||
`fertig/`. Das Programm nennt dann den Grund, und der Ordner bleibt stehen.
|
||||
|
||||
---
|
||||
|
||||
## 11. Nur Ausschnitte bearbeiten (Zeitauswahl)
|
||||
|
||||
Mit `-z` wird nur ein Teil des Videos bearbeitet. Das geht mit `-u` (YouTube) und
|
||||
mit `.vtt`-Dateien, nicht mit reinem Text (der hat keine Zeitstempel). Dieselbe
|
||||
Option kennen `extract_text.py` und `vtt2txt.py`.
|
||||
|
||||
### 10.1 Zeitangaben
|
||||
### 11.1 Zeitangaben
|
||||
|
||||
| Angabe | Bedeutung |
|
||||
|---|---|
|
||||
|
|
@ -584,7 +677,7 @@ Option kennen `extract_text.py` und `vtt2txt.py`.
|
|||
> Reicht ein Bereich über das Ende des Videos hinaus, weist das Programm darauf hin
|
||||
> und nennt die Länge der Untertitel.
|
||||
|
||||
### 10.2 Bereiche
|
||||
### 11.2 Bereiche
|
||||
|
||||
| Aufruf | Bearbeitet |
|
||||
|---|---|
|
||||
|
|
@ -601,7 +694,7 @@ und werden nach der Zeit sortiert. Beispiel:
|
|||
./abschrift_korrigieren.py -u 'https://www.youtube.com/watch?v=…' -z 00:05-00:06 00:25
|
||||
```
|
||||
|
||||
### 10.3 Was dabei herauskommt
|
||||
### 11.3 Was dabei herauskommt
|
||||
|
||||
Alle Bereiche landen in **einer** Datei, jeder mit einer Überschrift, die seine
|
||||
tatsächlichen Zeiten nennt:
|
||||
|
|
@ -625,7 +718,7 @@ Also, wenn ihr Programme baut mit Claude Code, …
|
|||
|
||||
---
|
||||
|
||||
## 11. Englische Beiträge
|
||||
## 12. Englische Beiträge
|
||||
|
||||
Mit `-u` erkennt das Programm die Sprache des Videos selbst. Bei Dateien die
|
||||
Sprache angeben:
|
||||
|
|
@ -646,28 +739,44 @@ Andere Sprachen lehnt das Programm mit einer Meldung ab.
|
|||
|
||||
---
|
||||
|
||||
## 12. Dateien, die entstehen
|
||||
## 13. Dateien, die entstehen
|
||||
|
||||
### 12.1 Übersicht
|
||||
### 13.1 Übersicht
|
||||
|
||||
Beispiel für `-i rede.txt` bzw. `-o rede.korrigiert.txt`:
|
||||
Im Programmordner entstehen diese Verzeichnisse. Alle bleiben nur auf dem eigenen
|
||||
Rechner, keines geht ins Git-Repository:
|
||||
|
||||
```text
|
||||
glossare/ gemeinsame Glossare je Sprecher oder Kanal
|
||||
abschriften/<Name>/ Arbeitsordner, einer je Video
|
||||
fertig/ abgeschlossene Abschriften, je eine Datei
|
||||
testdaten/<rede>/ nur für Entwickler: echte Reden für Regressionstests
|
||||
```
|
||||
|
||||
Im Arbeitsordner `abschriften/<Name>/`:
|
||||
|
||||
| Datei | Inhalt | Wird überschrieben? |
|
||||
|---|---|---|
|
||||
| `rede.txt` | Rohtext (bei `-u` automatisch gespeichert) | nie, wenn sie schon mit anderem Inhalt existiert (dann Warnung) |
|
||||
| `rede.korrigiert.txt` | korrigierte Abschrift | ja, außer sie wurde von Hand geändert (dann `rede.neu.korrigiert.txt`, siehe [Abschnitt 9](#9-schritt-5-nachbessern-und-erneut-laufen-lassen)) |
|
||||
| `rede.aenderungen.html` | Änderungsbericht | ja, bei jedem Lauf |
|
||||
| `rede.korrigiert.parts/` | Zwischenstände | wird ergänzt; darf jederzeit gelöscht werden |
|
||||
| `rede.glossar.entwurf.txt` | Glossar-Entwurf von `glossar_vorschlag.py` | ja |
|
||||
| `rede.glossar.entwurf.parts/` | Zwischenstände des Entwurfs | wird ergänzt |
|
||||
| `<Name>.txt` | Rohtext (bei `-u` automatisch gespeichert) | nie, wenn sie schon mit anderem Inhalt existiert (dann Warnung) |
|
||||
| `<Name>.quelle.json` | Titel, Kanal, Datum, URL (beim Download) | ja, beim nächsten Download |
|
||||
| `<Name>.glossar.txt` | Video-Glossar (legt man selbst an) | nie |
|
||||
| `<Name>.korrigiert.txt` | korrigierte Abschrift | ja, außer sie wurde von Hand geändert (dann `<Name>.neu.korrigiert.txt`, siehe [Abschnitt 9](#9-schritt-5-nachbessern-und-erneut-laufen-lassen)) |
|
||||
| `<Name>.aenderungen.html` | Änderungsbericht | ja, bei jedem Lauf |
|
||||
| `<Name>.korrigiert.parts/` | Zwischenstände | wird ergänzt; darf jederzeit gelöscht werden |
|
||||
| `<Name>.glossar.entwurf.txt` | Glossar-Entwurf von `glossar_vorschlag.py` | ja |
|
||||
| `<Name>.glossar.entwurf.parts/` | Zwischenstände des Entwurfs | wird ergänzt |
|
||||
|
||||
Ohne `-o` liegt das Ergebnis neben der Eingabedatei. Bei `-u` ohne `-o` im
|
||||
aktuellen Verzeichnis. Fehlende Verzeichnisse in `-o` werden angelegt.
|
||||
Ausschnitte (`-z`) desselben Videos landen im selben Ordner, mit den Bereichen im
|
||||
Namen. Mit `abschliessen.py` kommt jedes Ergebnis als `fertig/<Name>.txt` heraus, und
|
||||
der Arbeitsordner wird gelöscht ([Abschnitt 10](#10-schritt-6-abschließen-und-aufräumen)).
|
||||
|
||||
### 12.2 Standard-Dateinamen
|
||||
Mit `-i` liegt das Ergebnis neben der Eingabedatei; mit `-o` dort, wo man will
|
||||
(fehlende Verzeichnisse werden angelegt).
|
||||
|
||||
Ohne `-o` (bzw. `-n` bei `yt_untertitel.py`) entsteht der Name aus **Kanal, Titel
|
||||
und Hochladedatum**:
|
||||
### 13.2 Standard-Dateinamen
|
||||
|
||||
Ohne `-o` (bzw. `-n` bei `yt_untertitel.py`) entsteht der Name des Arbeitsordners
|
||||
und der Dateien aus **Kanal, Titel und Hochladedatum**:
|
||||
|
||||
| Video | Name |
|
||||
|---|---|
|
||||
|
|
@ -680,7 +789,7 @@ denselben Namen.
|
|||
|
||||
---
|
||||
|
||||
## 13. Zwischenstände, Abbruch und Fortsetzen
|
||||
## 14. Zwischenstände, Abbruch und Fortsetzen
|
||||
|
||||
Jeder fertig korrigierte Abschnitt, jede Absatzgliederung und jede Entscheidung
|
||||
beim Verbinden kurzer Absätze wird sofort in `<Ausgabe>.parts/` gespeichert.
|
||||
|
|
@ -691,11 +800,12 @@ beim Verbinden kurzer Absätze wird sofort in `<Ausgabe>.parts/` gespeichert.
|
|||
- Ändern sich Modell, Anweisung, Glossar oder der Text eines Abschnitts, wird genau
|
||||
dieser Teil neu berechnet; alte Zwischenstände stören nicht.
|
||||
- Der Ordner `*.parts/` darf jederzeit gelöscht werden; dann wird alles neu
|
||||
berechnet.
|
||||
berechnet. Er wächst mit jeder Modell- oder Glossaränderung, weil alte Fassungen
|
||||
liegen bleiben. Beim Abschluss verschwindet er mit dem Arbeitsordner.
|
||||
|
||||
---
|
||||
|
||||
## 14. Ein anderes Sprachmodell verwenden
|
||||
## 15. Ein anderes Sprachmodell verwenden
|
||||
|
||||
```bash
|
||||
ollama pull qwen3:14b
|
||||
|
|
@ -713,7 +823,7 @@ Weitere Einstellungen (Abschnittsgröße, Absatzlängen, Schwellen) sind in der
|
|||
|
||||
---
|
||||
|
||||
## 15. Fehlermeldungen und Lösungen
|
||||
## 16. Fehlermeldungen und Lösungen
|
||||
|
||||
| Meldung | Ursache und Lösung |
|
||||
|---|---|
|
||||
|
|
@ -725,7 +835,7 @@ Weitere Einstellungen (Abschnittsgröße, Absatzlängen, Schwellen) sind in der
|
|||
| `Keine Untertitel in „de“ (weder manuell noch automatisch in Originalsprache).` | Das Video hat keine passende Spur. Die Meldung listet die vorhandenen Sprachen; ggf. mit `-l` eine davon wählen. Ist das Video z. B. englisch, `-l en` angeben. |
|
||||
| `Der Beitrag ist auf „fr“; unterstützt: de, en (-l).` | Nur Deutsch und Englisch werden korrigiert. |
|
||||
| `-z braucht Zeitstempel: nur mit .vtt-Eingabe oder -u.` | Zeitauswahl geht nicht mit `.txt`. Die `.vtt`-Datei oder `-u URL` verwenden. |
|
||||
| `-z/--zeitraeume: …` | Zeitangabe ungültig oder Bereiche überschneiden sich, siehe [Abschnitt 10](#10-nur-ausschnitte-bearbeiten-zeitauswahl). |
|
||||
| `-z/--zeitraeume: …` | Zeitangabe ungültig oder Bereiche überschneiden sich, siehe [Abschnitt 11](#11-nur-ausschnitte-bearbeiten-zeitauswahl). |
|
||||
| `Die Eingabedatei enthält im gewählten Zeitraum keinen Text.` | Im Bereich gibt es keine Untertitel. Zeiten prüfen (`05:00` = 5 Stunden!). |
|
||||
| `Die Eingabedatei ist leer.` | Datei prüfen. |
|
||||
| `Ausgabedatei darf nicht die Eingabedatei sein.` | Mit `-o` einen anderen Namen wählen. |
|
||||
|
|
@ -738,12 +848,16 @@ Weitere Einstellungen (Abschnittsgröße, Absatzlängen, Schwellen) sind in der
|
|||
| `Hinweis: keine Wortliste für „de“ (Paket wngerman); …` | `sudo apt install wngerman` (für Englisch `wamerican`). Ohne Wortliste fehlt im Bericht nur der Grund „gültiges Wort ersetzt“. |
|
||||
| `Hinweis: keine Untertitel im Bereich …` | Einer von mehreren Bereichen ist leer und wird übersprungen. In Klammern steht, wo die Untertitel enden. |
|
||||
| `Hinweis: Bereich Anfang – 05:00:00 reicht über das Ende der Untertitel hinaus (…)` | Der Bereich endet nach dem Video. Meist war Minute statt Stunde gemeint: `05:00` ist Stunde 5, Minute 5 ist `00:05`. Bearbeitet wird trotzdem, bis zum Ende des Videos. |
|
||||
| `Noch offene Prüfmarken. Erst klären, oder mit --trotzdem abschließen.` | `abschliessen.py`: Im Text stehen noch `[prüfen: …]`-Marken (die Zeilen werden genannt). Auflösen und erneut aufrufen. |
|
||||
| `Ungeklärter Konflikt: <Name>.neu.korrigiert.txt …` | `abschliessen.py`: Erst die eigenen Änderungen übertragen bzw. entscheiden, welche Fassung gilt, und die `.neu`-Datei löschen. |
|
||||
| `Gibt es schon in fertig mit anderem Text: …` | In `fertig/` liegt schon eine Abschrift dieses Namens mit anderem Inhalt. Sie wird nie überschrieben: umbenennen oder entfernen, dann erneut aufrufen. |
|
||||
| `Arbeitsordner … bleibt erhalten: Fremde Datei: …` | Im Arbeitsordner liegt eine Datei, die das Programm nicht selbst anlegt (z. B. Notizen). Die fertige Abschrift ist trotzdem in `fertig/`; den Ordner selbst aufräumen. |
|
||||
| `Keine Berechtigung` beim Start mit `./…` | `chmod +x *.py` oder `python3 programm.py …` aufrufen. |
|
||||
| Lauf ist extrem langsam | Das Modell passt nicht in den Grafikspeicher. `OLLAMA_NUM_PARALLEL=1` setzen (siehe [Abschnitt 2.2](#22-grafikkarte)), andere Programme mit Grafikspeicherbedarf schließen oder ein kleineres Modell wählen. Prüfen mit `ollama ps` (Spalte PROCESSOR sollte „100% GPU“ zeigen). |
|
||||
|
||||
---
|
||||
|
||||
## 16. Tipps und häufige Fragen
|
||||
## 17. Tipps und häufige Fragen
|
||||
|
||||
**Wie bekomme ich die besten Ergebnisse?**
|
||||
Mit einem guten Glossar. Das Modell kennt viele Namen nicht oder schreibt sie
|
||||
|
|
@ -777,17 +891,28 @@ for url in 'https://www.youtube.com/watch?v=AAA' 'https://www.youtube.com/watch?
|
|||
done
|
||||
```
|
||||
|
||||
**Wie sichere ich meine Daten?**
|
||||
Wertvoll sind auf Dauer nur `glossare/` (gewachsenes Wissen über Namen und Hörfehler)
|
||||
und `fertig/` (die Ergebnisse). Beide sind bewusst nicht im öffentlichen
|
||||
Git-Repository. Am einfachsten ist ein zweites, **privates** Git-Repository nur für
|
||||
diese beiden Ordner, oder man nimmt sie ins normale Backup auf. `abschriften/` muss
|
||||
nicht gesichert werden; was dort liegt, ist entweder in Arbeit oder lässt sich neu
|
||||
erzeugen.
|
||||
|
||||
**Welche Videos sind noch in Arbeit?**
|
||||
Alle, die einen Ordner in `abschriften/` haben: `ls abschriften/`.
|
||||
|
||||
**Wo sind die Absätze?**
|
||||
In `*.korrigiert.txt` trennt eine Leerzeile die Absätze. Viele Textprogramme
|
||||
übernehmen das beim Einfügen direkt.
|
||||
|
||||
**Kann ich das Ergebnis weiterverarbeiten (Word, LibreOffice)?**
|
||||
Die `.korrigiert.txt` ist reiner UTF-8-Text und lässt sich überall öffnen oder
|
||||
einfügen.
|
||||
Die Dateien in `fertig/` (und die `.korrigiert.txt`) sind reiner UTF-8-Text und
|
||||
lassen sich überall öffnen oder einfügen.
|
||||
|
||||
---
|
||||
|
||||
## 17. Kurzreferenz aller Befehle
|
||||
## 18. Kurzreferenz aller Befehle
|
||||
|
||||
### `abschrift_korrigieren.py`
|
||||
|
||||
|
|
@ -795,7 +920,7 @@ einfügen.
|
|||
|---|---|
|
||||
| `-i DATEI` | Eingabe: Rohtext (`.txt`) oder Untertitel (`.vtt`) |
|
||||
| `-u URL` | statt `-i`: YouTube-Video laden und korrigieren |
|
||||
| `-o DATEI` | Ausgabedatei (Standard: `<Eingabe>.korrigiert.txt` bzw. `<Kanal>_<Titel>_<Datum>.korrigiert.txt`) |
|
||||
| `-o DATEI` | Ausgabedatei (Standard: `<Eingabe>.korrigiert.txt`, mit `-u` `abschriften/<Name>/<Name>.korrigiert.txt`) |
|
||||
| `-g DATEI` | Glossar, mehrfach möglich (Reihenfolge zählt) |
|
||||
| `-l SPRACHE` | `de` oder `en` (Standard: `de`, mit `-u` die Originalsprache) |
|
||||
| `-m MODELL` | Ollama-Modell (Standard: `qwen3:32b`) |
|
||||
|
|
@ -809,7 +934,7 @@ einfügen.
|
|||
| Option | Bedeutung |
|
||||
|---|---|
|
||||
| `-u URL` | YouTube-URL (Pflicht) |
|
||||
| `-o DATEI` | Ausgabedatei (Standard: `<Kanal>_<Titel>_<Datum>.txt`) |
|
||||
| `-o DATEI` | Ausgabedatei (Standard: `abschriften/<Name>/<Name>.txt`) |
|
||||
| `-l SPRACHE` | Sprache der Untertitel (Standard: Originalsprache) |
|
||||
| `-f` | Fließtext mit 80 Zeichen pro Zeile |
|
||||
| `-z BEREICH …`, `--exakt` | Zeitauswahl wie oben |
|
||||
|
|
@ -819,9 +944,9 @@ einfügen.
|
|||
| Option | Bedeutung |
|
||||
|---|---|
|
||||
| `-u URL` | YouTube-URL (Pflicht) |
|
||||
| `-n NAME` | Dateiname ohne Endung (Standard: `<Kanal>_<Titel>_<Datum>`) |
|
||||
| `-n NAME` | Name von Datei und Arbeitsordner (Standard: `<Kanal>_<Titel>_<Datum>`) |
|
||||
| `-l SPRACHE` | Sprache (Standard: `de`) |
|
||||
| `-d VERZEICHNIS` | Zielverzeichnis (Standard: aktuelles) |
|
||||
| `-d VERZEICHNIS` | Zielverzeichnis (Standard: `abschriften/<Name>/`) |
|
||||
|
||||
### `vtt2txt.py`
|
||||
|
||||
|
|
@ -851,4 +976,16 @@ einfügen.
|
|||
| `-g DATEI` | Glossare der Korrektur, mehrfach möglich |
|
||||
| `-l SPRACHE` | Sprache für die Wortliste (Standard: `de`) |
|
||||
|
||||
### `abschliessen.py`
|
||||
|
||||
| Option | Bedeutung |
|
||||
|---|---|
|
||||
| `ORDNER` | Arbeitsordner, z. B. `abschriften/<Name>` (Pflicht) |
|
||||
| `--ziel VERZEICHNIS` | für fertige Abschriften (Standard: `fertig`) |
|
||||
| `--glossare VERZEICHNIS` | gemeinsame Glossare für den Glossar-Hinweis (Standard: `glossare`) |
|
||||
| `--ja` | Arbeitsordner ohne Rückfrage löschen |
|
||||
| `--trotzdem` | auch mit offenen Prüfmarken abschließen |
|
||||
|
||||
Das Video-Glossar `abschriften/<Name>/<Name>.glossar.txt` verwenden
|
||||
`abschrift_korrigieren.py`, `glossar_vorschlag.py` und `aenderungen.py` automatisch.
|
||||
Jedes Programm zeigt mit `--help` seine Optionen.
|
||||
|
|
|
|||
Loading…
Reference in a new issue