Initial import of transcript pipeline

This commit is contained in:
maddin
2026-04-15 00:01:38 +02:00
commit fea662392c
305 changed files with 40508 additions and 0 deletions
+133
View File
@@ -0,0 +1,133 @@
# Whisper Transcript Pipeline
Diese Pipeline überwacht einen Ordner auf neue MacWhisper-Transkripte, erstellt mit OpenAI eine strukturierte Zusammenfassung, schreibt die Ergebnisdateien nach Obsidian, archiviert Audio-Dateien per `rclone` und kann die fertigen Notizen zusätzlich als private Quartz-Website veröffentlichen.
## Voraussetzungen
- Python 3.10+
- `ffprobe`
- `rclone`
- optional `fswatch`
- ohne `fswatch` nutzt die Pipeline automatisch Polling
- `OPENAI_API_KEY`
- für die Memos-Website zusätzlich Node.js 22+ und npm 10.9.2+ (Quartz 4)
## Einrichtung
```bash
cp .env.example .env
```
Danach in `.env` mindestens diese Werte setzen:
- `OPENAI_API_KEY`
- `WATCH_DIR`
- `OBSIDIAN_DIR`
- optional für die Webveröffentlichung:
- `MEMOS_ENABLED=true`
- `MEMOS_QUARTZ_DIR`
- `MEMOS_CONTENT_DIR`
- `MEMOS_OUTPUT_DIR`
- `MEMOS_RCLONE_REMOTE`
- optional `MEMOS_RCLONE_EXCLUDES`
## Befehle
Einmaliger Lauf:
```bash
python3 transcript_pipeline.py scan
```
Nur ein bestimmtes Paar verarbeiten:
```bash
python3 transcript_pipeline.py scan --basename "Neue Aufnahme 23"
```
Dauerhafte Überwachung:
```bash
python3 transcript_pipeline.py watch
```
Archiv bereinigen:
```bash
python3 transcript_pipeline.py cleanup
```
## Steuerbefehl
Der zentrale Wrapper ist:
```bash
./bin/transcript
```
oder nach Verlinkung in `~/bin` einfach:
```bash
transcript
transkript
```
Verfügbare Befehle:
```bash
transcript install
transcript start
transcript stop
transcript restart
transcript status
transcript logs pipeline
transcript logs service
transcript scan
transcript cleanup
transcript retry-uploads
transcript memos-sync
transcript memos-auth
transcript migrate-archive
transcript reprocess "Neue Aufnahme 23"
transcript bundle
```
## Hintergrunddienst
- auf macOS: `launchd`
- auf Linux: `systemd --user`
Installieren und starten:
```bash
./bin/transcript install
```
Status:
```bash
./bin/transcript status
```
## Verhalten
- erwartet ein Audio-/Transkript-Paar mit gleichem Basenamen, z. B. `Aufnahme.m4a` und `Aufnahme.md`
- nutzt [transkript-zusammenfassung-prompt.md](/Users/maddin/Desktop/Whisper/transkript-zusammenfassung-prompt.md) als Zusammenfassungsstandard
- extrahiert Aufnahmedatum und Dauer aus der Audiodatei
- erzeugt eine Obsidian-Notiz mit YAML-Frontmatter, Zusammenfassung und eingebettetem Transkript
- puffert die Audio-Datei lokal in `archive/processed/<source_id>/audio/`
- lädt die Audio-Datei verschlüsselt nach `transkripte:/<source_id>/audio/...` per `rclone` hoch
- löscht lokale Audio-Caches nach 7 Tagen
- aktualisiert vorhandene Obsidian-Notizen, wenn dieselbe Quelle später erneut verarbeitet wird
- kann dieselben Notizen bereinigt nach `memos-content/` exportieren und mit Quartz nach `memos-site/` bauen
- kann die fertige statische Website per `rclone sync` auf einen separaten Host veröffentlichen
## Migration nach Linux
Für einen portablen Export:
```bash
transcript bundle
```
Die Linux-Schritte stehen in [LINUX_MIGRATION.md](/Users/maddin/Desktop/Whisper/LINUX_MIGRATION.md).