Token导航 LogoToken导航

Agent Skill · 研究检索

twelvelabs-video-intelligence(十二实验室视频智能)

用于辅助视频生成、动画合成、脚本化剪辑或 Remotion 等视频项目开发。它适合让 Agent 组织镜头、生成素材说明、维护合成代码或排查渲染问题。使用时需要确认分辨率、时长、素材路径和导出格式;涉及外部素材、人物肖像或商业发布时,应先核对版权授权和内容审核要求。

twelvelabs-video-intelligence 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 23,288。

总安装 4,307周安装 185GitHub Stars 1下载 1,510核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.2

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:twelvelabs-video-intelligence(十二实验室视频智能)
来源仓库:https://github.com/james-le-twelve-labs/twelvelabs-video-intelligence
安装命令:
openclaw skills install twelvelabs-video-intelligence
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install twelvelabs-video-intelligence

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

twelvelabs-video-intelligence 利用 TwelveLabs AI 理解视频内容。适合在 OpenClaw 中搜索内部视频库、生成摘要与分析关键帧。可用于定位特定时刻或提取视觉与语音元素。需上传视频文件或提供 URL,并确认存储与处理权限。

适用宿主包括 OpenClaw,接入前应确认版本、权限和运行环境要求。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install twelvelabs-video-intelligence;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

twelvelabs-video-intelligence 怎么安装?

在终端执行 openclaw skills install twelvelabs-video-intelligence。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

twelvelabs-video-intelligence 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

twelvelabs-video-intelligence 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

twelvelabs-video-intelligence 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

twelvelabs-video-intelligence 用的人多吗?

公开数据是累计安装 4,307 次,近一周安装 185 次,下载 1,510 次,GitHub 1 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

twelvelabs-video-intelligence 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
twelvelabs-video-intelligence

十二实验室视频智能 · 本页

4,3071接触敏感数据MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
twelvelabs-video-intelligence
description
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.
metadata
openclaw
requires
bins
env
primaryEnv
TWELVE_LABS_API_KEY
emoji
🎬
homepage
https://docs.twelvelabs.io
install
package
twelvelabs
label
Install TwelveLabs Python SDK (pip)
links
homepage
https://twelvelabs.io
repository
https://github.com/twelvelabs-io/twelvelabs-python
documentation
https://docs.twelvelabs.io/reference

TwelveLabs

Search inside videos, generate summaries, chapters, highlights, and analyze video content using the TwelveLabs Python SDK (v1.2.1).

Setup

  1. Get your API key: https://api.twelvelabs.io
  2. Install the SDK:
   python3 -m pip install twelvelabs
  1. Set environment variable:
   export TWELVE_LABS_API_KEY="your-api-key"

Important: index before you search or analyze

Videos must be indexed before they can be searched or analyzed. Always index a video and wait for status Ready before running search or analysis commands.

Initialize the client

All snippets below assume this setup:

import os
from twelvelabs import TwelveLabs

client = TwelveLabs(api_key=os.environ["TWELVE_LABS_API_KEY"])

List indexes

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

Create an index

from twelvelabs.indexes import IndexesCreateRequestModelsItem

index = client.indexes.create(
    index_name="my-index",
    models=[
        IndexesCreateRequestModelsItem(model_name="marengo3.0", model_options=["visual", "audio"]),
        IndexesCreateRequestModelsItem(model_name="pegasus1.2", model_options=["visual", "audio"]),
    ],
    addons=["thumbnail"],
)
print(f"Created index: {index.id}")

Use both models: Marengo 3.0 for search/embeddings, Pegasus 1.2 for analysis.

Upload an asset

From URL:

asset = client.assets.create(method="url", url="https://example.com/video.mp4")
print(f"Asset: {asset.id}")

From local file:

with open("/path/to/video.mp4", "rb") as f:
    asset = client.assets.create(method="direct", file=f)
print(f"Asset: {asset.id}")

Assets are reusable — upload once, index into multiple indexes.

Index an asset

indexed = client.indexes.indexed_assets.create(
    index_id="<index-id>",
    asset_id=asset.id,
)
print(f"Indexed asset: {indexed.id}")

Check indexing status

result = client.indexes.indexed_assets.retrieve(
    index_id="<index-id>",
    indexed_asset_id="<indexed-asset-id>",
)
print(f"Status: {result.status}")

Statuses: pending → queued → indexing → ready (or failed).

Poll until ready

import time

while True:
    result = client.indexes.indexed_assets.retrieve(
        index_id="<index-id>",
        indexed_asset_id=indexed.id,
    )
    if result.status == "ready":
        print(f"Ready. Indexed asset ID: {indexed.id}")
        break
    if result.status == "failed":
        raise RuntimeError("Indexing failed")
    print(f"Status: {result.status} — waiting...")
    time.sleep(5)

List indexed assets

for video in client.indexes.indexed_assets.list("<index-id>"):
    duration = video.system_metadata.duration if hasattr(video, "system_metadata") and video.system_metadata else ""
    filename = video.system_metadata.filename if hasattr(video, "system_metadata") and video.system_metadata else ""
    print(f"{video.id}  {filename}  {duration}s")

Search

results = client.search.query(
    index_id="<index-id>",
    query_text="person giving a presentation",
    search_options=["visual", "audio"],
)

for result in results:
    print(f"{result.start:.1f}s - {result.end:.1f}s  rank={result.rank}  video={result.video_id}")

Results include timestamps (start/end in seconds) and relevance rank (1 = most relevant).

Search options

results = client.search.query(
    index_id="<index-id>",
    query_text="your query",
    search_options=["visual", "audio"],  # or ["transcription"]
    threshold="medium",                   # high, medium, low (default), none
    group_by="video",                     # clip (default) or video
    sort_option="clip_count",             # score (default) or clip_count
    page_limit=20,                        # max 50
)

Transcription search

results = client.search.query(
    index_id="<index-id>",
    query_text="what the speaker said about revenue",
    search_options=["transcription"],
    transcription_options=["semantic"],  # semantic, lexical, or both (default)
)

Search with filtering

import json

# Filter by duration range
results = client.search.query(
    index_id="<index-id>",
    query_text="your query",
    search_options=["visual"],
    filter=json.dumps({"duration": {"gte": 60, "lte": 300}}),
)

Filter fields: id (array of video IDs), duration, width, height, size, filename.

Analyze a video

Use a prompt to generate summaries, chapters, highlights, titles, topics, hashtags, action items, or any open-ended analysis:

response = client.analyze(
    video_id="<video-id>",
    prompt="Generate a summary with chapters and key takeaways",
)
print(response.data)

Example prompts:

  • "Summarize this video in 3 paragraphs"
  • "List the chapters with timestamps"
  • "Extract action items from this meeting"
  • "Generate a title, 5 topics, and 10 hashtags"
  • "Create a table of contents"

Streaming analysis

stream = client.analyze_stream(
    video_id="<video-id>",
    prompt="Describe this video",
)
for chunk in stream:
    if chunk.event_type == "text_generation":
        print(chunk.text, end="")

Composed search (text + image)

Combine text and image for refined results. Marengo 3.0 required:

with open("image.jpg", "rb") as f:
    results = client.search.query(
        index_id="<index-id>",
        query_text="red color",
        query_media_type="image",
        query_media_file=f,
        search_options=["visual"],
    )

Entity search

Find specific people or objects using reference images. Marengo 3.0 required:

# Create collection + entity with reference images
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(
    entity_collection_id=collection.id,
    name="Person Name",
    asset_ids=[asset.id],
)

# Search for entity
results = client.search.query(
    index_id="<index-id>",
    query_text=f"<@{entity.id}> is walking",
    search_options=["visual", "audio"],
)

Embeddings

Retrieve embeddings from an indexed video

video = client.indexes.videos.retrieve(
    index_id="<index-id>",
    video_id="<video-id>",
    embedding_option=["visual", "audio"],
)

for segment in video.embedding.video_embedding.segments:
    print(f"{segment.start_offset_sec}s - {segment.end_offset_sec}s  scope={segment.embedding_scope}  option={segment.embedding_option}  dims={len(segment.float_)}")

Create new embeddings (Embed v2 API)

from twelvelabs.types import TextInputRequest, ImageInputRequest, MediaSource

# Text embedding (512 dimensions)
res = client.embed.v_2.create(
    input_type="text",
    model_name="marengo3.0",
    text=TextInputRequest(input_text="your text here"),
)
embedding = res.data[0].embedding

# Image embedding from 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

Sample video for testing

Big Buck Bunny — 10 seconds, 1MB, free to use:

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

Limitations

  • Indexing is async — videos take time to process. Poll client.indexes.indexed_assets.retrieve() until status is ready.
  • Composed search requires Marengo 3.0 — text + image search only works with this model.
  • Entity search requires Marengo 3.0 — and additional setup (collections, assets, entities).
  • Query limit — search queries support up to 500 tokens (Marengo 3.0) or 77 tokens (older models).
  • Page limit — max 50 results per search page.
  • Index names must be unique — use timestamps or UUIDs to avoid conflicts.
  • client.summarize() and client.gist() are deprecated — use client.analyze(prompt="...") instead.

Resources

平台分布

OpenClaw

80.07%
按下载量换算1,209

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills