Unlock the wealth of data stored in any video. Twelve Labs can index petabytes of video content and make it semantically searchable with everyday language.
Unlock the wealth of data stored in any video. Twelve Labs can index petabytes of video content and make it semantically searchable with everyday language
Unlock the wealth of data stored in any video. Twelve Labs can index petabytes of video content and make it semantically searchable with everyday language
Use everyday language for lightning-fast, context-aware searches that pinpoint the exact moment you need in any video.
Search in natural language or with image to quickly uncover semantically related moments within your videos. Explore a whole new dimension of multimodal search.
Understand your video data like never before and search across speech, text, audio and visuals — making video data searchable across modalities.
Fine tune our foundation models to learn the nuances of your business enabling search in language natural to your team.
Marengo has been trusted by developers around the world to run millions of queries.
Our cutting edge infrastructure allows you to index videos in a quarter of their length. Large library? Parallelize indexing to save time.
Break through language barriers with the ability to search in over 100 languages, allowing users to freely search in their preferred language
from
import os
client = TwelveLabs(<"YOUR_API_KEY">)
# Create new Index
index = client.index.create(
name="My First Index",
engines=[
{
"name": "marengo2.6",
"options": ["visual", "conversation", "text_in_video"],
},
],
)
# Create new Task on Index (Upload video)
video_path = os.path.join(os.path.dirname(__file__), "<YOUR_FILE_PATH>")
task = client.task.create(index_id=index.id, file=video_path, language="en")
# Wait for indexing to finish
task.wait_for_done()
# Search from your index
query = "An artist climbing up the ladder that he painted."
result = client.search.query(index.id, query, ["visual", "conversation"])
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from twelvelabs import TwelveLabs
import os
client = TwelveLabs(<"YOUR_API_KEY">)
# Create new Index
index = client.index.create(
name="My First Index",
engines=[
{
"name": "marengo2.6",
"options": ["visual", "conversation", "text_in_video"],
},
],
)
# Create new Task on Index (Upload the video)
video_path = os.path.join(os.path.dirname(__file__), "<YOUR_FILE_PATH>")
task = client.task.create(index_id=index.id, file=video_path, language="en")
# Wait for indexing to finish
task.wait_for_done()
# Search from your index
query = "An artist climbing up the ladder that he painted."
result = client.search.query(index.id, query, ["visual", "conversation"])
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SearchResult(
pool=SearchPool(
total_count=16, total_duration=1754.0, index_id="<INDEX_ID>"
),
data=[
SearchData(
score=83.07,
start=30.09375,
end=45.671875,
video_id=<VIDEO_ID>",
metadata=[{"type":"visual"}],
confidence="high",
thumbnail_url=None,
module_confidence=None,
),
...
],
page_info=SearchPageInfo(
limit_per_page=10,
total_results=73,
page_expired_at="2024-03-04T01:23:08Z",
next_page_token="<NEXT_PAGE_TOKEN>",
prev_page_token=None,
),
)
from
import os
client = TwelveLabs(<"YOUR_API_KEY">)
# Create new Index
index = client.index.create(
name="My First Index",
engines=[
{
"name": "marengo2.6",
"options": ["visual", "conversation", "text_in_video"],
},
],
)
# Create new Task on Index (Upload video)
video_path = os.path.join(os.path.dirname(__file__), "<YOUR_FILE_PATH>")
task = client.task.create(index_id=index.id, file=video_path, language="en")
# Wait for indexing to finish
task.wait_for_done()
# Search from your index
query = "An artist climbing up the ladder that he painted."
result = client.search.query(index.id, query, ["visual", "conversation"])
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { TwelveLabs } from 'twelvelabs';
import fs from 'fs';
import path from 'path';
const client = new TwelveLabs({ apiKey: '<YOUR_API_KEY>' });
// Create new Index
const index = await client.index.create({
name: 'My First Index',
engines: [
{
name: 'marengo2.6',
options: ['visual', 'conversation', 'text_in_video'],
},
]
});
// Create new Task on Index (Upload the video)
const videoPath = path.join(__dirname, '<YOUR_FILE_PATH>');
const task = await client.task.create({
indexId: index.id,
file: fs.createReadStream(videoPath),
language: 'en',
});
// Wait for indexing to finish
await task.waitForDone();
// Search from your index
const query = 'An artist climbing up the ladder that he painted';
const result = await client.search.query({
indexId: index.id,
query,
options: ['visual', 'conversation'],
});
console.log(result);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SearchResult(
pool: {
totalCount: 16,
totalDuration: 1754,
indexId: '<INDEX_ID>'
),
data: [
{
score: 83.07,
start: 30.09375,
end: 45.671875,
metadata: [Array],
vvideoId: '<VIDEO_ID>'
confidence: 'high',
modules: [Array]
},
...
],
pageInfo: {
limitPerPage: 10,,
totalResults: 73
pageExpiredAt: '2024-03-04T01:29:55Z',
nextPageToken: '45e12410-5e5b-4a45-9a55-12b8a838fd99-1'
}
}
from
import os
client = TwelveLabs(<"YOUR_API_KEY">)
# Create new Index
index = client.index.create(
name="My First Index",
engines=[
{
"name": "marengo2.6",
"options": ["visual", "conversation", "text_in_video"],
},
],
)
# Create new Task on Index (Upload video)
video_path = os.path.join(os.path.dirname(__file__), "<YOUR_FILE_PATH>")
task = client.task.create(index_id=index.id, file=video_path, language="en")
# Wait for indexing to finish
task.wait_for_done()
# Search from your index
query = "An artist climbing up the ladder that he painted."
result = client.search.query(index.id, query, ["visual", "conversation"])
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from twelvelabs import TwelveLabs
import os
client = TwelveLabs(<"YOUR_API_KEY">)
# Create new Index
index = client.index.create(
name="My First Index",
engines=[
{
"name": "marengo2.6",
"options": ["visual", "conversation", "text_in_video"],
},
],
)
# Create new Task on Index (Upload the video)
video_path = os.path.join(os.path.dirname(__file__), "<YOUR_FILE_PATH>")
task = client.task.create(index_id=index.id, file=video_path, language="en")
# Wait for indexing to finish
task.wait_for_done()
# Search from your index
query = "An artist climbing up the ladder that he painted."
result = client.search.query(index.id, query, ["visual", "conversation"])
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SearchResult(
pool=SearchPool(
total_count=16, total_duration=1754.0, index_id="<INDEX_ID>"
),
data=[
SearchData(
score=83.07,
start=30.09375,
end=45.671875,
video_id=<VIDEO_ID>",
metadata=[{"type":"visual"}],
confidence="high",
thumbnail_url=None,
module_confidence=None,
),
...
],
page_info=SearchPageInfo(
limit_per_page=10,
total_results=73,
page_expired_at="2024-03-04T01:23:08Z",
next_page_token="<NEXT_PAGE_TOKEN>",
prev_page_token=None,
),
)
from
import os
client = TwelveLabs(<"YOUR_API_KEY">)
# Create new Index
index = client.index.create(
name="My First Index",
engines=[
{
"name": "marengo2.6",
"options": ["visual", "conversation", "text_in_video"],
},
],
)
# Create new Task on Index (Upload video)
video_path = os.path.join(os.path.dirname(__file__), "<YOUR_FILE_PATH>")
task = client.task.create(index_id=index.id, file=video_path, language="en")
# Wait for indexing to finish
task.wait_for_done()
# Search from your index
query = "An artist climbing up the ladder that he painted."
result = client.search.query(index.id, query, ["visual", "conversation"])
print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { TwelveLabs } from 'twelvelabs';
import fs from 'fs';
import path from 'path';
const client = new TwelveLabs({ apiKey: '<YOUR_API_KEY>' });
// Create new Index
const index = await client.index.create({
name: 'My First Index',
engines: [
{
name: 'marengo2.6',
options: ['visual', 'conversation', 'text_in_video'],
},
]
});
// Create new Task on Index (Upload the video)
const videoPath = path.join(__dirname, '<YOUR_FILE_PATH>');
const task = await client.task.create({
indexId: index.id,
file: fs.createReadStream(videoPath),
language: 'en',
});
// Wait for indexing to finish
await task.waitForDone();
// Search from your index
const query = 'An artist climbing up the ladder that he painted';
const result = await client.search.query({
indexId: index.id,
query,
options: ['visual', 'conversation'],
});
console.log(result);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SearchResult(
pool: {
totalCount: 16,
totalDuration: 1754,
indexId: '<INDEX_ID>'
),
data: [
{
score: 83.07,
start: 30.09375,
end: 45.671875,
metadata: [Array],
vvideoId: '<VIDEO_ID>'
confidence: 'high',
modules: [Array]
},
...
],
pageInfo: {
limitPerPage: 10,,
totalResults: 73
pageExpiredAt: '2024-03-04T01:29:55Z',
nextPageToken: '45e12410-5e5b-4a45-9a55-12b8a838fd99-1'
}
}