Introduction

Extract insights from your video content with our AI that identifies objects, actions, speech, and text - enabling you to build powerful applications through simple APIs.

Sign up for a free account, retrieve your API key, and make your first search request in minutes.

1from twelvelabs import TwelveLabs
2from twelvelabs.indexes import IndexesCreateRequestModelsItem
3from twelvelabs.tasks import TasksRetrieveResponse
4
5client = TwelveLabs(api_key="<YOUR_API_KEY>")
6
7index = client.indexes.create(
8 index_name="<YOUR_INDEX_NAME>",
9 models=[
10 IndexesCreateRequestModelsItem(
11 model_name="marengo2.7",
12 model_options=["visual", "audio"]
13 )
14 ]
15)
16if index.id is None:
17 raise RuntimeError("Failed to create an index.")
18print(f"Created index: id={index.id}")
19
20task = client.tasks.create(
21 index_id=index.id, video_url="<YOUR_VIDEO_URL>")
22print(f"Created task: id={task.id}")
23
24def on_task_update(task: TasksRetrieveResponse):
25 print(f" Status={task.status}")
26task = client.tasks.wait_for_done(task_id=task.id, callback=on_task_update)
27if task.status != "ready":
28 raise RuntimeError(f"Indexing failed with status {task.status}")
29print(
30 f"Upload complete. The unique identifier of your video is {task.video_id}.")
31
32search_pager = client.search.query(
33 index_id=index.id, query_text="<YOUR_QUERY>", search_options=["visual", "audio"],)
34print("Search results:")
35for clip in search_pager:
36 print(
37 f" video_id {clip.video_id} score={clip.score} start={clip.start} end={clip.end} confidence={clip.confidence}"
38 )

Most popular

TwelveLabs models

Guides