Communitygithub.com

aleksanderstevens191-sudo/course-video-skill

Verwandelt studentische Kursmaterialien (Vorlesungsmitschriften, Folien, Notizen, Übungsblätter) in vertonte, animierte Lernvideos mit Grafiken, Beispielen, Quizzen, Untertiteln, Soundeffekten und optionalen Blender-3D-Szenen. Jede Zahl im Video stammt zwingend aus den Kursmaterialien – ein Prüfer setzt dies durch.

Was ist course-video-skill?

Mit diesem Skill können Studierende ihre eigenen Kursmaterialien – wie Vorlesungsmitschriften, Folien, Notizen, Übungsblätter und Klausurbeispiele – in hochwertige, vertonte und animierte Lernvideos umwandeln. Das Besondere: Jede Zahl, jedes Beispiel und jede Behauptung muss direkt aus den eingereichten Materialien stammen; der Skill enthält einen zwingenden Quellenprüfer (`check_sources.py`), der sicherstellt, dass nichts erfunden wird. Das ist entscheidend, weil die Videos zur Prüfungsvorbereitung bei genau dem Professor dienen, der die Materialien bereitgestellt hat. Der Skill ist als Erweiterung für KI-Assistenten wie Claude Code, Cursor oder Codex konzipiert. Nachdem der Nutzer seine Quellen in einem Ordner abgelegt hat, erstellt der Assistent ein Script im JSON-Format, definiert Animationen, Quizfragen und Vertonung, prüft Zahlen automatisch gegen die Quellen, und rendert das finale Video (optional mit Blender-3D-Szenen, Maskottchen und Soundeffekten). Die Laufzeitumgebung erfordert Python, ffmpeg und optional Blender 4.2+.

Funktioniert mit~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/aleksanderstevens191-sudo/course-video-skill/tree/HEAD

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Kursvideo

Du verwandelst die Kursmaterialien der Studierenden in Lernvideos. Die eine Regel, die diesen Skill auszeichnet:

Jede Zahl, jedes Beispiel und jede Behauptung stammt aus den Kursmaterialien der Studierenden. Nichts wird erfunden. Studierende nutzen diese Videos zur Prüfungsvorbereitung bei ihrem Professor. Ein „schöneres“ Beispiel mit erfundenen Zahlen, eine Formel in anderer Notation oder eine Tatsache von außerhalb des Kurses ist ein Fehler, selbst wenn sie volkswirtschaftlich/physikalisch/etc. korrekt ist.

0. Voraussetzungen (einmalig prüfen)

python3 -m pip install -r requirements.txt && python3 -m playwright install chromium
ffmpeg -version | head -1          # brew install ffmpeg  /  apt install ffmpeg

Optional: Blender 4.2+ für 3D-Szenen und das Maskottchen (BLENDER=/path/to/blender falls nicht im PATH), pdftotext (poppler) oder pip install pypdf zum Lesen von PDF-Folien, openai-whisper zum Transkribieren von Aufnahmen, XAI_API_KEY für die Grok-Stimme (sonst wird die kostenlose Microsoft-Neuralstimme verwendet).

1. Quellen sammeln

Erstelle einen Ordner <course>/sources/ und lege ausschließlich Kursmaterialien hinein: Vorlesungsmitschriften (.txt/.srt/.vtt), Folien (.pdf oder exportierter Text), die Notizen der Studierenden, Übungsblätter, Probeklausuren.

  • Aufnahme aber kein Transkript → whisper lecture.mp4 --model base --output_format txt --output_dir sources/
  • .docx → textutil -convert txt file.docx (macOS) oder pandoc file.docx -t plain -o file.txt
  • Frage die Studierenden, welche Vorlesungen/Themen das Video abdecken soll. Fülle nicht mit Material aus anderen Wochen auf, es sei denn, es wird darum gebeten.

Lies die Quellen vollständig, bevor du etwas schreibst. Notiere die exakte Notation der Professorin/des Professors, Begriffe, durchgerechnete Beispiele und Zahlen.

2. Skript schreiben (Content-JSON)

Schreibe <course>/<name>.json gemäß engine/SCHEMA.md (visuelle Typen, Cue-Wörter, Quizformat, Layout-Begrenzungen). examples/lemonade/ ist ein vollständiges kleines Beispiel.

Regeln:

  • Beispiele: Verwende die eigenen durchgerechneten Beispiele der Vorlesung mit den eigenen Zahlen der Vorlesung. Wenn die Vorlesung „Preis 4 €, 3 Einheiten“ rechnet, dann rechnet das Video „Preis 4 €, 3 Einheiten“, nicht „Preis 10 €, 5 Einheiten“.
  • Quizze: Nimm sie aus den Übungsaufgaben des Kurses, Clicker-Fragen oder durchgerechneten Beispielen. Wenn du eine neue Frage schreibst, baue sie nur aus Zahlen in den Quellen auf und kennzeichne sie im Quiz-Label („Übung“, nicht „Klausurfrage“).
  • Abgeleitete Zahlen (eine von dir berechnete Summe, eine Differenz) sind in Ordnung, aber deklariere jede in der obersten "derived"-Map mit der Rechenoperation, unter ausschließlicher Verwendung von Quellzahlen: "derived": {"16": "4 * 4", "-6": "120 - 126"}.
  • Kleine Anzahlen, die keine Daten sind („Drei Dinge, die man sich merken sollte“, „Schritt 2“), kommen in "allow": ["3"]. 0 und 1 sind immer erlaubt.
  • Notation und Begriffe: Verwende die der Professorin/des Professors (wenn die Vorlesung „MR = MC“ schreibt, wechsle nicht zu „∂R/∂q“).
  • Wenn eine Tatsache, die das Video benötigt, nicht in den Quellen steht, halte inne und frage die Studierenden nach dem Material, oder lasse sie weg. Fülle die Lücke niemals mit Allgemeinwissen.
  • Erzählung (say) ist für das Ohr geschrieben: Wörter, keine Symbole („4 mal 4 ist 16 Euro“).

3. Jede Zahl gegen die Quellen prüfen (erforderlich, vor dem Bauen)

python3 tools/check_sources.py <course>/<name>.json <course>/sources --report <course>/<name>.sources.md

Es extrahiert jede Zahl aus der Erzählung, dem Bildschirmtext, den Quizoptionen und allen 3D-Szenen-Beschriftungen und findet jede in den Quellen (Ziffern oder ausgeschriebene Wörter, z.B. „einhundertzwanzig“). Abgeleitete Zahlen werden neu berechnet und ihre Operanden geprüft. Es muss mit Exit-Code 0 beenden, bevor du baust. Für jedes Problem wird gemeldet:

  • die Zahl ist ein Tippfehler oder erfunden → korrigiere das Skript, um die Zahl der Quelle zu verwenden;
  • es ist eine echte Berechnung → füge sie zu "derived" hinzu;
  • sie ist in den Quellen in einer vom Prüfer übersehenen Form vorhanden (z.B. in einem Bild) → bitte die Studierenden um Bestätigung, füge sie dann mit einem Hinweis in deiner Antwort zu "derived" oder "allow" hinzu.

Lies dann den Abschnitt „Evidence“ des Berichts selbst durch und überprüfe stichprobenartig, ob jede Zahl in der gleichen Bedeutung wie in der Quelle verwendet wird (der Prüfer gleicht Werte ab, nicht die Bedeutung: „40 €“ der Preis vs. „40 Einheiten“ die Menge).

4. Bauen und rendern

cd engine
python3 build.py ../<course>/<name>.json              # Stimme, Timing, Untertitel, Musik (TTS=xai XAI_API_KEY=... für Grok)
python3 lint.py build/<video-id>/spec.json            # Bilder, die zu spät kommen
python3 qa.py <video-id>                              # Standbilder jedes Beats + Kontaktbögen: ANSCHAUEN
OUT=../out python3 render.py <video-id> --workers 6   # volles 1080p-Rendering -> ../out/<video-id>.mp4 + .srt

Sieh dir die QA-Kontaktbögen vor dem Rendern an: überlappender Text, leere Bildschirme, falsche Zahlen auf dem Bildschirm.

5. Optional: 3D-Szenen, Maskottchen, Soundeffekte

Ein Beat mit "v": {"type": "clip", "scene": "<name>"} spielt eine Blender-Szene aus engine/blender/scene_defs/<name>.py (siehe den Docstring in engine/blender/scenelib.py; market.py und safe.py sind vollständige Beispiele, geschrieben für einen Volkswirtschaftskurs, daher tragen ihre Beschriftungen die Zahlen dieses Kurses. Ändere die Beschriftungen so, dass sie deinen Quellen entsprechen). Szenenbeschriftungen werden ebenfalls von check_sources.py geprüft.

cd engine
python3 blend.py prep <video-id>                         # Maskottchen-Zeitleiste + szenenspezifische Eingaben
python3 blender/stills.py <scene> --dry                  # Fehler schnell erkennen, dann ohne --dry für Standbilder
python3 blend.py clips <video-id>                        # 3D-Szenen rendern (langsam: Minuten pro Szene)
python3 blend.py mascot <video-id> && python3 blend.py pack <video-id>
python3 sfx.py mix <video-id>                            # Soundeffekte unter der Erzählung
OUT=../out python3 blend.py comp <video-id>              # -> ../out/<video-id>-3d.mp4
OUT=../out python3 blend.py site <id1>,<id2> --title "Mein Kurs" --out ../out/site   # eine Webseite mit Kapiteln

Das Rendern ist langsam und speicherhungrig (mehrere GB an Frames pro Video während der Laufzeit). Überprüfe zuerst den freien Speicherplat, rendere auf Laptops jeweils eine Szene und halte den Rechner wach.

6. Übergabe

Teile den Studierenden mit: wo das Video ist, wie lang es ist, welche Vorlesungen es abdeckt, und das Ergebnis der Quellenprüfung (geprüfte Zahlen, ggf. abgeleitete oder erlaubte Zahlen). Falls in den Quellen etwas uneindeutig war, nenne deine Annahmen. Erinnere sie daran, dass das Video ein Lernhilfsmittel ist, das aus ihren Materialien erstellt wurde, kein Ersatz für die Vorlesung, und dass Kursmaterialien möglicherweise nicht zur Veröffentlichung bestimmt sind: vor einer öffentlichen Veröffentlichung des Videos prüfen.

Verwandte Skills