返回顶部
t

twelvelabs-video-intelligence视频智能分析

Search inside videos, generate summaries, and analyze video content using TwelveLabs video understanding AI. Use when the user wants to find moments in a video, summarize video content, get chapters or highlights, or work with video embeddings.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.2
安全检测
已通过
122
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

twelvelabs-video-intelligence

TwelveLabs

使用 TwelveLabs Python SDK(v1.2.1)搜索视频、生成摘要、章节、高光片段并分析视频内容。

设置

  1. 1. 获取 API 密钥:https://api.twelvelabs.io
  2. 安装 SDK:
bash python3 -m pip install twelvelabs
  1. 3. 设置环境变量:
bash export TWELVELABSAPI_KEY=your-api-key

重要提示:搜索或分析前需先建立索引

视频必须先建立索引,然后才能进行搜索或分析。在运行搜索或分析命令之前,务必先为视频建立索引并等待状态变为 Ready。

初始化客户端

以下所有代码片段均假设已进行此设置:

python
import os
from twelvelabs import TwelveLabs

client = TwelveLabs(apikey=os.environ[TWELVELABSAPIKEY])

列出索引

python
for index in client.indexes.list():
print(f{index.id}: {index.index_name})

创建索引

python
from twelvelabs.indexes import IndexesCreateRequestModelsItem

index = client.indexes.create(
index_name=my-index,
models=[
IndexesCreateRequestModelsItem(modelname=marengo3.0, modeloptions=[visual, audio]),
IndexesCreateRequestModelsItem(modelname=pegasus1.2, modeloptions=[visual, audio]),
],
addons=[thumbnail],
)
print(f已创建索引: {index.id})

同时使用两个模型:Marengo 3.0 用于搜索/嵌入,Pegasus 1.2 用于分析。

上传素材

从 URL 上传:
python
asset = client.assets.create(method=url, url=https://example.com/video.mp4)
print(f素材: {asset.id})

从本地文件上传:
python
with open(/path/to/video.mp4, rb) as f:
asset = client.assets.create(method=direct, file=f)
print(f素材: {asset.id})

素材可重复使用——上传一次,可索引到多个索引中。

为素材建立索引

python
indexed = client.indexes.indexed_assets.create(
index_id=,
asset_id=asset.id,
)
print(f已索引素材: {indexed.id})

检查索引状态

python
result = client.indexes.indexed_assets.retrieve(
index_id=,
indexedassetid=,
)
print(f状态: {result.status})

状态:pending → queued → indexing → ready(或 failed)。

轮询直至就绪

python
import time

while True:
result = client.indexes.indexed_assets.retrieve(
index_id=,
indexedassetid=indexed.id,
)
if result.status == ready:
print(f就绪。已索引素材 ID: {indexed.id})
break
if result.status == failed:
raise RuntimeError(索引失败)
print(f状态: {result.status} — 等待中...)
time.sleep(5)

列出已索引素材

python
for video in client.indexes.indexed_assets.list():
duration = video.systemmetadata.duration if hasattr(video, systemmetadata) and video.system_metadata else
filename = video.systemmetadata.filename if hasattr(video, systemmetadata) and video.system_metadata else
print(f{video.id} {filename} {duration}s)

搜索

python
results = client.search.query(
index_id=,
query_text=正在做演示的人,
search_options=[visual, audio],
)

for result in results:
print(f{result.start:.1f}s - {result.end:.1f}s 排名={result.rank} 视频={result.video_id})

结果包含时间戳(start/end,单位为秒)和相关度 rank(1 = 最相关)。

搜索选项

python
results = client.search.query(
index_id=,
query_text=你的查询,
search_options=[visual, audio], # 或 [transcription]
threshold=medium, # high, medium, low(默认), none
group_by=video, # clip(默认)或 video
sortoption=clipcount, # score(默认)或 clip_count
page_limit=20, # 最多 50
)

转录搜索

python
results = client.search.query(
index_id=,
query_text=演讲者关于收入的说法,
search_options=[transcription],
transcription_options=[semantic], # semantic, lexical, 或两者(默认)
)

带过滤条件的搜索

python
import json

按时长范围过滤

results = client.search.query( index_id=, query_text=你的查询, search_options=[visual], filter=json.dumps({duration: {gte: 60, lte: 300}}), )

过滤字段:id(视频 ID 数组)、duration、width、height、size、filename。

分析视频

使用提示词生成摘要、章节、高光片段、标题、主题、话题标签、行动项或任何开放式分析:

python
response = client.analyze(
video_id=,
prompt=生成包含章节和关键要点的摘要,
)
print(response.data)

示例提示词:

  • - 用3段话总结此视频
  • 列出带时间戳的章节
  • 提取本次会议的行动项
  • 生成标题、5个主题和10个话题标签
  • 创建目录

流式分析

python
stream = client.analyze_stream(
video_id=,
prompt=描述此视频,
)
for chunk in stream:
if chunk.eventtype == textgeneration:
print(chunk.text, end=)

组合搜索(文本 + 图像)

结合文本和图像以获得更精确的结果。需要 Marengo 3.0:

python
with open(image.jpg, rb) as f:
results = client.search.query(
index_id=,
query_text=红色,
querymediatype=image,
querymediafile=f,
search_options=[visual],
)

实体搜索

使用参考图像查找特定人物或物体。需要 Marengo 3.0:

python

创建集合 + 带参考图像的实体


collection = client.entity_collections.create(name=my-team)
asset = client.assets.create(method=url, url=https://example.com/person.jpg)
entity = client.entity_collections.entities.create(
entitycollectionid=collection.id,
name=人物姓名,
asset_ids=[asset.id],
)

搜索实体

results = client.search.query( index_id=, query_text=f<@{entity.id}> 正在行走, search_options=[visual, audio], )

嵌入

从已索引视频中检索嵌入

python
video = client.indexes.videos.retrieve(
index_id=,
video_id=,
embedding_option=[visual, audio],
)

for segment in video.embedding.video_embedding.segments:
print(f{segment.startoffsetsec}s - {segment.endoffsetsec}s 范围={segment.embeddingscope} 选项={segment.embeddingoption} 维度={len(segment.float_)})

创建新嵌入(Embed v2 API)

python
from twelvelabs.types import TextInputRequest, ImageInputRequest, MediaSource

文本嵌入(512 维)

res = client.embed.v_2.create( input_type=text, model_name=marengo3.0, text=TextInputRequest(input_text=你的文本), ) embedding = res.data[0].embedding

从 URL 获取图像嵌入

res = client.embed.v_2.create( input_type=image, model_name=marengo3.0, image=ImageInputRequest(media_source=MediaSource(url=https://example.com/image.jpg)), ) embedding = res.data[0].embedding

用于测试的示例视频

Big Buck Bunny — 10 秒,1MB,免费使用:

https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/720/BigBuckBunny72010s_1MB.mp4

限制

  • - 索引是异步的

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 twelvelabs-video-intelligence-1775909172 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 twelvelabs-video-intelligence-1775909172 技能

通过命令行安装

skillhub install twelvelabs-video-intelligence-1775909172

下载

⬇ 下载 twelvelabs-video-intelligence v1.0.2(免费)

文件大小: 3.87 KB | 发布时间: 2026-4-12 11:46

v1.0.2 最新 2026-4-12 11:46
Remove MCP server references from skill file

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部