Handbuch

Für Agenten

Skripte per Ablagefach einliefern, Live-Steuerung über die lokale API, Format für Kapitel und Regiehinweise.

Ein Skript einliefern

TalkPatch hat ein Ablagefach: ~/Library/Application Support/TalkPatch/Inbox/. Eine .md- oder .txt-Datei (UTF-8) dort ablegen, die laufende App übernimmt sie innerhalb einer Sekunde als neues Skript, wählt es aus und verschiebt die Datei nach Inbox/Importiert/. Gibt es schon ein Skript mit demselben Titel, wird dessen Text ersetzt: neue Fassung, gleiche Kennung, kein Neustart. Läuft die App nicht, passiert das beim nächsten Start.

cat > "$HOME/Library/Application Support/TalkPatch/Inbox/mein-video.md" <<'TXT'
# Mein Video

## Einstieg
Hallo und willkommen. Heute geht es um drei Dinge.

> Kamera: nah, lächeln

## Hauptteil
Erstens ...
TXT

Format

Zeile beginnt mit Bedeutung Sichtbar Vorgelesen Sprachverfolgung
# Titel (nur erste Zeile) Skripttitel; fehlt sie, gilt der Dateiname nein nein nein
## Kapitelname Kapitel, per Taste, Fernbedienung oder Stream Deck anspringbar ja nein ausgenommen
> Regiehinweis Anweisung an den Sprecher nur im Editor nein ausgenommen
alles andere Lauftext ja ja ja

Kein weiteres Markdown. Umlaute als echte Zeichen. Zahlen so schreiben, wie sie gesprochen werden.

Live-Steuerung

Die laufende App bietet eine lokale HTTP-API, dieselbe, die das Stream-Deck-Plugin nutzt. Sie ist nur auf dem eigenen Mac erreichbar (Loopback) und mit einem Token geschützt, das bei jedem Start neu erzeugt wird.

Was Wert
Discovery ~/Library/Application Support/TalkPatch/control.json{"apiVersion":1,"port":43219,"token":"…"}
Zustand GET http://127.0.0.1:43219/v1/state
Kommandos POST /v1/commands mit {"name":"…","value":…} oder {"commands":[…]}; Antwort enthält den neuen Zustand
Auth Header Authorization: Bearer <token>
C="$HOME/Library/Application Support/TalkPatch/control.json"
TOKEN=$(python3 -c "import json;print(json.load(open('$C'))['token'])")
curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:43219/v1/state
curl -s -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"commands":[{"name":"setChapter","value":2},{"name":"perform","value":"togglePlayback"}]}' \
  http://127.0.0.1:43219/v1/commands

Kommandos: perform (togglePlayback, stop, reset, previousChapter, nextChapter, lineBack, lineForward, faster, slower, toggleSpeech, togglePrompter, toggleRingLight, toggleRecording, toggleRecordingPause, …), selectScript, setChapter, seek, setSpeed/adjustSpeed, setFontSize/adjustFontSize, setTextWidth/adjustTextWidth, setPrompterVisible, setHeadingsVisible, setSpeechTracking, setRingLight, adjustRingLightSize, setRecordingMode, setUI (Panels, Editor, Kamera, Notch, Fenstergröße), screenshot (eigenes Fenster als PNG).

Die Bibliothek library.json nie direkt bearbeiten, solange die App läuft: Sie schreibt nach jeder Änderung und überschreibt Fremdänderungen.