Was macht video-to-deck?
Erstelle eine Präsentation aus einem Video. Du (das Modell) bist nur Text – du kannst kein Audio hören
oder Bilder sehen. Deshalb sehen und hören die Skripte dieses Skills für dich und übergeben dir ein Text-
Beweisbündel (evidence.md). Deine Aufgabe ist nur die Synthese: Lies das Beweisbündel und
schreibe einen guten Foliensatz. Erfinde nichts, was das Beweisbündel nicht stützt.
Die Ausgabe ist Marp-Markdown (deck.md): eine normale .md, die du jetzt lesen kannst, und ein echter
Foliensatz (PPTX/PDF/HTML) über einen einzigen render.sh-Befehl später.
$SKILL unten = das Verzeichnis dieses Skills (der Ordner, der diese Datei enthält).
Ablauf
1. Einmalige Einrichtung (idempotent)
bash "$SKILL/scripts/setup.sh"
Installiert faster-whisper (Transkription), tesseract (OCR) und – falls npm vorhanden ist –
marp-cli und mermaid-cli. Kann bedenkenlos wiederholt werden. ffmpeg muss bereits installiert sein.
2. Die Videos finden
bash "$SKILL/scripts/find_videos.sh" "<ordner>" # ein Pfad pro Zeile, rekursiv
Bei einer einzelnen benannten Datei überspringe dies und verwende den Pfad direkt.
3. Das Beweisbündel für jedes Video erstellen (eines nach dem anderen)
bash "$SKILL/scripts/process_video.sh" "<video>" "<ausgabe_verz>/<video-name>"
Dies extrahiert Audio → transkribiert es, samplet Schlüsselbilder → OCR erkennt auf dem Bildschirm
angezeigten Text und schreibt <ausgabe_verz>/<video-name>/evidence.md (plus transcript.txt,
segments.tsv, frames/, ocr.txt). Lange Videos auf CPU sind langsam; setze WHISPER_MODEL=small
für Qualität oder verwende eine CUDA-GPU für Geschwindigkeit (wird automatisch erkannt; siehe
WHISPER_DEVICE in scripts/transcribe.py). Verarbeite Videos nacheinander, nicht parallel.
Optionaler Vision-Durchgang (Qwen-VL). OCR liest nur Text. Um auch das zu erfassen, was Text
nicht kann – Diagramme und deren Trend, Abläufe, UI-Layout, die Geste eines Sprechers – aktiviere ein
Vision-Modell, das jedes behaltene Schlüsselbild beschreibt. Es ist standardmäßig deaktiviert;
aktiviere es, indem du VISION_MODEL (und ggf. VISION_ENDPOINT) in der Umgebung desselben Befehls setzt:
VISION_MODEL=qwen2.5-vl \
VISION_ENDPOINT=http://127.0.0.1:8081/v1/chat/completions \
bash "$SKILL/scripts/process_video.sh" "<video>" "<ausgabe_verz>/<video-name>"
Wenn aktiviert, erhält evidence.md einen Abschnitt "## Visuelle Beschreibungen" zusätzlich zur
OCR – nutze dies für Diagramm-/Chart-Folien. Jeder OpenAI-kompatible Vision-Endpunkt funktioniert
(llama-swap sobald ein lokaler Server wie llama.cpp/llama-swap oder Ollama, oder eine gehostete API;
VISION_API_KEY falls ein Token benötigt wird). Wenn der Endpunkt nicht erreichbar ist, wird der
Durchlauf nur mit OCR fortgesetzt – nichts bricht ab.
4. Den Foliensatz schreiben
Lese die gesamte evidence.md. Kopiere "$SKILL/templates/deck.marp.md" nach
<ausgabe_verz>/<video-name>/deck.md und fülle sie aus. Regeln:
- Behalte das
marp: trueFrontmatter – das macht es zu einem Foliensatz. - Verwende das Transkript für das, was gesagt wurde; verwende die OCR / den auf dem Bildschirm angezeigten Text für genaue Beschriftungen, Zahlen, Titel und Code, die auf Folien gezeigt werden; wenn ein Abschnitt "Visuelle Beschreibungen" vorhanden ist (Vision-Durchgang war aktiviert), verwende ihn für Diagramme/Charts/UI, die OCR nicht vermitteln kann.
- Markiere eine Aussage mit ihrem Zeitpunkt, wenn nützlich:
[00:04:12]. - Füge das Schlüsselbild der Folie auf die Folie ein – das ist STANDARD, keine optionale Garnitur.
Jeder
### [Zeitraum] frames/kf_####.jpg-Block inocr.txtbenennt das repräsentative Bild für diese Folie; übertrage es auf die Deck-Folie, die daraus wurde:. Das Schlüsselbild ist der Beweis für die Folie, es zeigt das Diagramm/Chart/UI, das Aufzählungspunkte nur beschreiben können, und es lässt den Deck die Quellpräsentation widerspiegeln. Lasse es nur weg, wenn die Folie eine reine Diagrammfolie ist, die du in Mermaid neu gezeichnet hast, oder wenn das Bild kein visuelles Signal enthält (ein sprechender Kopf, ein leerer Übergang). Wenn aus einer Quellfolie zwei Deck-Folien entstehen, verwende zwei verschiedene Bilder aus diesem Lauf, anstatt eines zu wiederholen. - Nimm nur das auf, was das Beweisbündel stützt. Wenn Transkript und OCR leer sind, sage, dass das Video keinen extrahierbaren Inhalt hatte, anstatt einen Deck zu erfinden.
Dichte – der Deck muss das Beweisbündel KONSOLIDIEREN, nicht zusammenfassen. Der häufigste Fehler ist ein dünner Deck: 20 Folien mit Vier-Wort-Aufzählungspunkten, die den Großteil dessen wegwerfen, was das Video tatsächlich enthielt. Das Beweisbündel ist teuer zu erstellen; der Deck ist das, was die Leute lesen.
- Eine Deck-Folie pro Quellfolie. Jeder
### [Zeitraum] frames/…-Block im OCR-Abschnitt ist eine echte Folie aus dem Video – diese Liste ist deine Checkliste und ungefähr deine Folienanzahl. Verschmelze nicht drei Quellfolien zu einem Aufzählungspunkt. Ein 40-minütiger Vortrag hat normalerweise 30-45 Folien. - Übernimm die Details auf die Folie. Jede Zahl, Metrik, Schwelle, Prozentangabe, Produktname, CRD, Konfigurationsschlüssel und Bezeichnung, die im Beweisbündel vorhanden sind, gehören auf die Folie selbst. Wenn die Quellfolie sechs Aufzählungspunkte und vier Statistiken hatte, hat deine Folie sechs Aufzählungspunkte und vier Statistiken – nicht „verbesserte Genauigkeit".
- Aufzählungspunkte sind eine vollständige Zeile (~15-20 Wörter), nicht vier Wörter. 5-8 pro Folie sind normal. Knappheit ist nur richtig, wenn die Quelle knapp war.
- Verwende eine Tabelle, wann immer die Quelle tabellarisch ist – Routing-Matrizen, Benchmark-Tabellen, Level-Definitionen, Prioritätsregeln. Gib jede Zeile und Spalte wieder, nicht eine Stichprobe.
- Sprechernotizen sind additiv für das, was gesagt wurde, aber nicht auf der Folie steht: Einschränkungen, Erfahrungsberichte, das „Warum", Details aus der Fragerunde. Sie sind nicht der Ort, um Inhalte zu verstecken, die auf die Folie gehören.
- Überprüfe die Abdeckung, bevor du fertig bist. Gehe die
### [..]-Blöcke inocr.txtder Reihe nach durch und bestätige, dass jeder repräsentiert ist. Wenn du einen Block übersprungen hast, war es entweder ein Duplikat/eine Animation der vorherigen Folie oder ein Demo-Bild – sei in der Lage zu sagen, welches.
5. Diagramm-Durchlauf (die „Kann das ein Diagramm sein?“-Prüfung)
Frage für jedes Thema: Ist dies strukturell (Komponenten + Verbindungen, Akteursinteraktionen,
ein Prozess/Ablauf, Zustände + Übergänge, Entitäten + Beziehungen)? Wenn ja, zeichne es als
Mermaid (Standard) oder PlantUML-Diagramm auf einer eigenen Folie anstelle von
Aufzählungspunkten. Konsultiere "$SKILL/references/diagrams-cheatsheet.md" für die
Inhalt→Typ-Entscheidungstabelle und Vorlagen zum Kopieren und Einfügen. Erzwinge kein Diagramm,
wo der Inhalt nur narrativ ist.
6. (Optional) Den echten Foliensatz exportieren
bash "$SKILL/scripts/render.sh" "<ausgabe_verz>/<video-name>/deck.md" pptx # oder pdf | html | all
Dies rendert Diagrammblöcke vorab zu Bildern und erzeugt dann das PPTX/PDF. Wenn marp/mermaid
nicht installiert sind, bleibt der Deck einfach als .md (immer noch gültig und anzeigbar).
Für einen gesamten Baum auf einmal füge dem Batch-Treiber (unten) --pdf hinzu, anstatt render.sh
pro Deck aufzurufen.
Batch / verschachtelte Ordner
Für einen ganzen Ordner – insbesondere einen verschachtelten Kursbaum – bevorzuge
scripts/drive_decks.sh <wurzel>: es looped in Bash und startet einen frischen Agenten pro Video
(überlastet niemals den Kontext des Modells) und spiegelt die Quell-Unterordner in die Ausgabe,
so dass die Eltern→Kind-Hierarchie erhalten bleibt.
scripts/rename_by_topic.sh <decks> slugifiziert dann jedes Blatt nach seinem Thema innerhalb seines
Kursordners. Füge --pdf hinzu, um jeden Deck nach Abschluss der Erstellung zu PDF zu
exportieren – Mermaid wird vorab zu Bildern gerendert, und der Blattordner wird komprimiert, so
dass jedes PDF in seinem Elternordner landet (<aus>/KursA/Lektion/deck.md → <aus>/KursA/Lektion.pdf), wodurch ein Unterordner pro PDF vermieden wird. Um die Hierarchie von
Decks wiederherzustellen, die von einem älteren Lauf flach erstellt wurden, verwende
scripts/regroup_by_source.sh <decks> – es liest die Quelle:-Zeile jeder evidence.md, um jeden
Deck unter seinen Kurs-Eltern zu platzieren (Duplikate werden in _duplicates/ isoliert), und führe
dann die Umbenennung durch. Siehe README.md für die vollständige Batch-Anleitung.
Referenzen
references/marp-cheatsheet.md– Marp-Foliensyntax (Trennzeichen, Bilder, Notizen, Spalten).references/diagrams-cheatsheet.md– wann ein Diagramm gezeichnet wird und die Syntax für jeden Typ.
Hinweise
- OCR erfasst auf dem Bildschirm angezeigten Text gut für Screencasts/Folienvideos. Bei Live-Action-Material trägt das Transkript den Großteil der Information – verlasse dich darauf und mache keine überzogenen Behauptungen über visuelle Elemente.
- Transkription, OCR und Rendering sind immer lokal. Ob der Autorenschritt die Maschine verlässt,
liegt ganz bei dem Agenten, auf den du mit
--agent-cmdzeigst. - Das Design ist modellunabhängig: Jeder Text-Agent, der Bash-Befehle ausführen und Dateien lesen kann, kann diesen Skill verwenden.
