Embeddings for indexed videos

This guide shows how to retrieve the embeddings that the platform generated when you indexed your videos. This method returns existing embeddings; it does not create new ones.

The platform creates these embeddings with video scene detection, which divides a video into segments at scene boundaries. A scene is a series of frames showing a continuous action or theme. Each segment is between 2 and 10 seconds.

Prerequisites

Your video must be indexed with the Marengo video understanding model. This method supports Marengo 3.0 and older versions. For details on enabling this model for an index, see the Create an index page.

Complete example

Copy and paste the code below, replacing the placeholders surrounded by <> with your values.

1from twelvelabs import TwelveLabs
2
3# 1. Retrieve the embeddings
4video = client.indexes.indexed_assets.retrieve(
5 index_id="<YOUR_INDEX_ID>", indexed_asset_id="<YOUR_INDEXED_ASSET_ID>", embedding_option=["visual", "audio", "transcription"])
6
7# 2. Process the results
8segments = video.embedding.video_embedding.segments
9print(f"\n{'='*80}")
10print(f"EMBEDDINGS SUMMARY: {len(segments)} total embeddings")
11print(f"{'='*80}\n")
12
13for idx, segment in enumerate(segments, 1):
14 print(f"[{idx}/{len(segments)}] {segment.embedding_option.upper()} | {segment.embedding_scope.upper()}")
15 print(
16 f"├─ Time range: {segment.start_offset_sec}s - {segment.end_offset_sec}s")
17 print(f"├─ Dimensions: {len(segment.float_)}")
18 print(f"└─ First 10 values: {segment.float_[:10]}")
19 print()

Code explanation

1

Retrieve the embeddings

Retrieve the embeddings for an indexed video.
Function call: You call the indexes.indexed_assets.retrieve function.
Parameters:

  • index_id: The unique identifier of the index containing your video.

  • indexed_asset_id: The unique identifier of your indexed video.

  • embedding_option: The types of embeddings to retrieve. Valid values are visual, audio, and transcription. You can specify multiple values. This example uses ["visual", "audio", "transcription"].

    See the Embedding options section for details.

Return value: The response contains, among other information, an object named embedding that contains the embedding data for your video. The embedding.video_embedding.segments field is a list of segment objects. Each segment object includes:

  • float_: The embedding vector (a list of floats).
  • embedding_option: The type of embedding (visual, audio, or transcription).
  • embedding_scope: The scope of the embedding (clip).
  • start_offset_sec: The start time of the segment in seconds.
  • end_offset_sec: The end time of the segment in seconds.
2

Process the results

This example iterates through the embeddings in the segments field and prints the embedding type, scope, time range, dimensions, and the first 10 vector values for each segment.