Communitygithub.com

jevreel: Videos durchsuchen und verstehen

Durchsuche und verstehe Videos, ohne Embeddings. Verwende dies, wenn der Nutzer nach dem Inhalt einer Videodatei oder Video-URL fragt – bestimmte Momente finden („wann passiert X“), eine Person oder ein Objekt anhand eines Fotos wiederfinden, Bildschirminhalte lesen, Gesagtes erfassen, gleiche Elemente im gesamten Video verfolgen oder eine einzelne Antwort zum gesamten Video erhalten.

Was ist jevreel: Videos durchsuchen und verstehen?

jevreel ermöglicht es KI-Agenten, Videos ohne aufwändige Embeddings zu durchsuchen und zu verstehen. Es basiert auf Kontaktabzügen (ein Frame pro Sekunde) und dem schnellen Entscheidungsmodell Jev von TypeSafe, um alle Abzüge parallel zu scannen und dann die besten Fenster auf Vollbildern erneut zu prüfen. Der Hauptagent wertet die Ergebnisse aus. Jev liefert typisierte Antworten und Wahrscheinlichkeiten, aber keine Beschreibungen – Lesen, Beschreiben und Schlussfolgern ist Aufgabe des Hauptagenten. Das Tool unterstützt das Suchen nach Momenten („ask“), das Finden von Objekten anhand eines Fotos („find“), das Lesen von Bildschirminhalten („locate_in_frame“), das Abrufen von Transkripten, das Beantworten von Fragen zum gesamten Video sowie sogenannte Lenses, mit denen mehrere Fragen gleichmäßig über die gesamte Videolänge hinweg beantwortet werden können. Plattformen: MCP-Server und CLI. Eine API-Key (TYPESAFE_API_KEY) wird für Jev-Abfragen benötigt; ffmpeg und ffprobe müssen im PATH sein.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/DeepAleph/jevreel/tree/HEAD/skills/jevreel

In Ihrer bevorzugten KI fragen

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

Dokumentation

jevreel: Fragen zu Videos stellen

jevreel legt ein Video auf Kontaktabzügen mit einem Frame pro Sekunde aus und lässt Jev, TypeSafes schnelles Entscheidungsmodell, jeden Abzug parallel scannen, anschließend werden die besten Fenster auf Vollbildern erneut geprüft. Du (der Hauptagent) wertest dann die Funde aus. Jev liefert typisierte Antworten und Wahrscheinlichkeiten, niemals Beschreibungen: Lesen, Beschreiben und Schließen ist deine Aufgabe.

Einrichtung prüfen

  • TYPESAFE_API_KEY muss gesetzt sein für alles, was Jev fragt (Indizieren mit einer Zeitleiste, ask, find, locate, whole, lenses). Zoom, Transkripte und Zeitleistenabfragen funktionieren ohne.
  • ffmpeg und ffprobe müssen im PATH sein.
  • URLs benötigen jevreel[url]; Videos ohne Untertitel benötigen jevreel[asr] für ein Transkript.

Arbeitsablauf

  1. Einmalig indizieren. MCP index_video(source) oder jevreel index <datei-oder-url>. Spätere Aufrufe verwenden die zurückgegebene id, den Pfad oder den Titel („tears of steel“). Die erneute Indizierung eines bereits indizierten Videos erfolgt sofort.
  2. Momente finden. ask_video(video, query) / jevreel ask <id> "<abfrage>".
    • Schreibe die Abfrage als einfache Beschreibung dessen, was sichtbar oder gesagt wäre: „ein Balkendiagramm auf einer Folie“, „jemand öffnet einen Laptop“, „der Sprecher erwähnt Preise“.
    • Eine Sache pro Abfrage. Teile „ein rotes Auto und ein Hund“ in zwei Anfragen; Jev ist bei einfachen Fragen am genauesten.
    • mode: visual (nur auf dem Bildschirm), speech (nur Transkript, am günstigsten), both oder auto.
    • Eingrenzen mit start/end, wenn der Nutzer einen Teil des Videos nennt.
  3. Anhand eines Fotos finden. find_in_video(video, image_path, note="person") / jevreel find <id> foto.jpg --note person.
  4. Vor dem Antworten ansehen. Treffer sind Hinweise, keine Tatsachen. Bestätigte Treffer enthalten frame, ein Vollbild des Moments: sieh es dir an. zoom_video(video, start, end) / jevreel zoom <id> 12:00 12:10 liefert mehr Bilder. locate_in_frame(video, at, target) rahmt und beschneidet eine Sache in einem Bild für eine genaue Betrachtung.
  5. Was gesagt wird. video_transcript(video, start, end) / jevreel transcript <id> --start 12:00 --end 13:00.
  6. Fragen zum gesamten Video. ask_whole_video(video, question, kind, options) / jevreel whole <id> "Ist das ein Tutorial?". Verwende kind=choice mit Optionen oder kind=score mit abgestuften Niveaus (höchstens 10), beginnend mit dem niedrigsten.

Lenses: wenn dieselben Fragen für das gesamte Video relevant sind

Wenn der Nutzer sich für mehrere Aspekte in einem Video interessiert (wer zu sehen ist, Sicherheitsregeln, Marken, Wetter, ob eine Folie eingeblendet ist), frage nicht jede einzeln ab. Führe eine Linse aus: Jede Minute beantwortet alle ihre Fragen in einer einzigen Anfrage. Anschließend filterst du die Antworten so oft wie nötig, kostenlos.

  • MCP run_lens(video, lens) mit {"name": "site", "questions": [{"name": "helm_ab", "type": "noul", "ask": "Ist ein Arbeiter ohne Helm sichtbar?"}, {"name": "fahrzeug", "type": "choice", "ask": "Welches Fahrzeug ist am sichtbarsten?", "options": ["auto", "lastwagen", "kein"]}, {"name": "menschenmenge", "type": "score", "ask": "Wie voll ist es?", "levels": ["Leer", "Etwas", "Voll"]}]}. CLI: jevreel lens <id> lens.toml. Um eine Linse während der Indizierung einzubeziehen, übergib sie an index_video (oder jevreel index --lens); sie kostet dann fast nichts extra.
  • query_timeline(video, "helm_ab > 0.7") / jevreel query <id> "helm_ab > 0.7 and fahrzeug == lastwagen". Bedingungen sind spalte operator wert, verbunden mit and; setze einen Wert in Anführungszeichen, der „and“ enthält (platz == 'bücher und ein schreibtisch'). Lass where weg, um jede Minute und ihre Spalten zu sehen. Ja/Nein-Fragen liefern auch <name>_at, die Sekunde, zu der es am sichtbarsten ist.
  • Die Standard-Zeitleistenspalten sind ebenfalls vorhanden: people, talking_to_camera, screen_or_slides, text_on_screen, cut, setting, activity (0-3), keyframe.

Ergebnisse lesen

  • probability ist Jevs Ja-Wahrscheinlichkeit; strong bedeutet mindestens 0,7. Bei verified Treffern stammt sie aus den Vollbildern, at / time ist der Frame, der es am besten zeigte, und screened ist die Kontaktabzug-Wahrscheinlichkeit davor. Unbestätigte Treffer stammen allein vom Abzug.
  • shown und said sind die Bildschirm- und Transkriptfragen, getrennt gestellt.
  • also listet andere wahrscheinliche Momente im selben Fenster auf.
  • Wahrscheinlichkeiten sind gut zur Einordnung, aber nicht garantiert kalibriert. Sieh selbst nach, bevor du etwas behauptest, das du nicht gesehen hast, und sage dies, wenn du nur einen schwachen Treffer hast.
  • Keine Treffer über dem Schwellenwert ist eine echte Antwort, aber überprüfe zuerst weak: Fenster, die Jev nicht ausgeschlossen hat, einschließlich solcher, die durch die Überprüfung umgestoßen wurden. Zoome hinein, bevor du sagst „nicht gefunden“.
  • Zitiere Momente mit ihren Zeitangaben (z. B. „bei 12:04“), damit der Nutzer dorthin springen kann.

Kosten

Jev berechnet nur Input-Tokens, und wiederholte identische Anfragen werden aus dem Cache von jevreel beantwortet (cached in den Ergebnissen). Jede Frage sendet jeden Abzug im Bereich einmal (ein Abzug pro Minute Video) plus eine Anfrage pro bestätigtem Fenster. Die Eingrenzung mit start/end macht Fragen günstiger und schneller. Ergebnisse berichten requests, cached, input_tokens und estimated_usd.

Verwandte Skills