agentic-video Gallery

Find the moment a generated test narrator says a phrase

What was saidSyntheticVerified
0:33generated · generated

Proof frames

Click a frame to seek

Tool calls

9 calls · agentic-video 0.3.1
transcribeimac · 374 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "status": "in_progress",
    "requested_model_size": "tiny",
    "requested_model_cached": false,
    "transcription_status": "started",
    "retry_after_seconds": 15,
    "transcription_message": "The tiny transcription started in the background. About 0% done (estimate): 0 s elapsed of roughly 10 s. Retry in about 15 seconds.",
    "elapsed_sec": 0,
    "estimated_total_sec": 10,
    "estimated_percent": 0
  }
}
transcribeimac · 4 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "status": "in_progress",
    "requested_model_size": "tiny",
    "requested_model_cached": false,
    "transcription_status": "in_progress",
    "retry_after_seconds": 15,
    "transcription_message": "A transcription for this video is already running. About 30% done (estimate): 3 s elapsed of roughly 10 s. Retry in about 15 seconds.",
    "elapsed_sec": 3,
    "estimated_total_sec": 10,
    "estimated_percent": 30
  }
}
transcribeimac · 3 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "status": "in_progress",
    "requested_model_size": "tiny",
    "requested_model_cached": false,
    "transcription_status": "in_progress",
    "retry_after_seconds": 15,
    "transcription_message": "A transcription for this video is already running. About 60% done (estimate): 6 s elapsed of roughly 10 s. Retry in about 15 seconds.",
    "elapsed_sec": 6,
    "estimated_total_sec": 10,
    "estimated_percent": 60
  }
}
transcribeimac · 7 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "status": "in_progress",
    "requested_model_size": "tiny",
    "requested_model_cached": false,
    "transcription_status": "in_progress",
    "retry_after_seconds": 15,
    "transcription_message": "A transcription for this video is already running. About 90% done (estimate): 9 s elapsed of roughly 10 s. Retry in about 15 seconds.",
    "elapsed_sec": 9,
    "estimated_total_sec": 10,
    "estimated_percent": 90
  }
}
transcribeimac · 3 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "status": "in_progress",
    "requested_model_size": "tiny",
    "requested_model_cached": false,
    "transcription_status": "in_progress",
    "retry_after_seconds": 15,
    "transcription_message": "A transcription for this video is already running. About 99% done (estimate): 12 s elapsed of roughly 10 s. Retry in about 15 seconds.",
    "elapsed_sec": 12,
    "estimated_total_sec": 10,
    "estimated_percent": 99
  }
}
transcribeimac · 2 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "status": "in_progress",
    "requested_model_size": "tiny",
    "requested_model_cached": false,
    "transcription_status": "in_progress",
    "retry_after_seconds": 15,
    "transcription_message": "A transcription for this video is already running. About 99% done (estimate): 15 s elapsed of roughly 10 s. Retry in about 15 seconds.",
    "elapsed_sec": 15,
    "estimated_total_sec": 10,
    "estimated_percent": 99
  }
}
transcribeimac · 2 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "status": "in_progress",
    "requested_model_size": "tiny",
    "requested_model_cached": false,
    "transcription_status": "in_progress",
    "retry_after_seconds": 15,
    "transcription_message": "A transcription for this video is already running. About 99% done (estimate): 18 s elapsed of roughly 10 s. Retry in about 15 seconds.",
    "elapsed_sec": 18,
    "estimated_total_sec": 10,
    "estimated_percent": 99
  }
}
transcribeimac · 3 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "source_path": "~/hill/gallery/repo/cards/said-synthetic/clip.mp4",
    "language": "en",
    "duration_sec": 33,
    "segment_count": 8,
    "segments": [
      {
        "id": 1,
        "start_sec": 0,
        "end_sec": 4.05,
        "text": "Welcome to this test slide deck.",
        "start_timecode": "00:00:00.000",
        "end_timecode": "00:00:04.050",
        "confidence": 0.935
      },
      {
        "id": 2,
        "start_sec": 4.05,
        "end_sec": 8.05,
        "text": "Each slide holds one sentence.",
        "start_timecode": "00:00:04.050",
        "end_timecode": "00:00:08.050",
        "confidence": 0.935
      },
      {
        "id": 3,
        "start_sec": 8.05,
        "end_sec": 12.1,
        "text": "The narration starts at a fixed time.",
        "start_timecode": "00:00:08.050",
        "end_timecode": "00:00:12.100",
        "confidence": 0.935
      },
      {
        "id": 4,
        "start_sec": 12.1,
        "end_sec": 16.02,
        "text": "Each caption ends when the voice stops.",
        "start_timecode": "00:00:12.100",
        "end_timecode": "00:00:16.020",
        "confidence": 0.935
      },
      {
        "id": 5,
        "start_sec": 16.02,
        "end_sec": 20.06,
        "text": "The counter and the corner shows the seconds.",
        "start_timecode": "00:00:16.020",
        "end_timecode": "00:00:20.060",
        "confidence": 0.935
      },
      {
        "id": 6,
        "start_sec": 20.06,
        "end_sec": 24.18,
        "text": "The speaker's mouth moves while the voice talks.",
        "start_timecode": "00:00:20.060",
        "end_timecode": "00:00:24.180",
        "confidence": 0.935
      },
      {
        "id": 7,
        "start_sec": 24.18,
        "end_sec": 28.06,
        "text": "Nothing in this clip comes from a camera.",
        "start_timecode": "00:00:24.180",
        "end_timecode": "00:00:28.060",
        "confidence": 0.935
      },
      {
        "id": 8,
        "start_sec": 28.06,
        "end_sec": 29.66,
        "text": "This is a generated test clip.",
        "start_timecode": "00:00:28.060",
        "end_timecode": "00:00:29.660",
        "confidence": 0.935
      }
    ],
    "has_speech": true,
    "notice": "Note: Non-speech audio (music, sound effects, alarms) is NOT transcribed.",
    "confidence": 0.935,
    "uncertainty": "Whisper confidence is a no_speech_prob proxy; transcript content and alignment remain model-dependent."
  }
}
search_transcriptimac · 3 ms

Arguments

{
  "source": "$CLIP",
  "query": "speaker mouth",
  "mode": "lexical",
  "top_k": 5
}

Result

{
  "ok": true,
  "data": {
    "hits": [
      {
        "segment_id": 6,
        "start_sec": 20.06,
        "end_sec": 24.18,
        "text": "The speaker's mouth moves while the voice talks.",
        "score": 1,
        "start_timecode": "00:00:20.060",
        "end_timecode": "00:00:24.180",
        "context": "The speaker's mouth moves while the voice talks."
      }
    ],
    "total": 1
  }
}

Question and answer

Question
When does the speaker say "speaker mouth"?
Answer
A keyword search for "speaker mouth" first finds it 20.1 seconds into the clip.
Check passedanswer 20.06, expected 20.0 ±3.0

How it was checked

Truth from
constructed
Fixed at

Made from the captions our generator wrote with the source (captions-en.vtt), whose times are exact because each sentence was spoken in a fixed slot: the first caption line that starts at or after 20 s, ends inside the source, and has at least 6 words and 2 different words of 5 or more letters starts at 21.000 s of the source. The clip starts at 1.000 s of the source, so the line starts at 20.000 s in the clip; the truth is that time with a 3 s tolerance. No tool made this truth.

Keyword search only: the tool matched the words in its own speech-to-text, not their meaning. The clip is a generated test clip, labelled as such, and its caption times come from our script, so the card checks that one line only.

Try it yourself

Use agentic-video to find when my video says the words "speaker mouth". Transcribe the video first, then search its transcript for those words in keyword mode (mode lexical), and tell me the start time of the first match in seconds. Use my own file.
  1. Get the .mcpb file and open it in Claude Desktop.
  2. Or: pip install agentic-video

Clip and licence

Licence
generated

Generated for the gallery; no third-party material.