
关于
观看、理解、操作视频和音频。观看——从本地文件、URL、RTSP/直播流或桌面录制摄入,返回实时上下文和可播放流链接。理解——提取帧、构建视觉/语义/时间索引,按时间戳搜索片段并自动剪辑。操作——转码和处理。
name: videodb description: 观看、理解、操作视频和音频。观看——从本地文件、URL、RTSP/直播流或桌面实时录制中摄取;返回实时上下文和可播放的流链接。理解——提取帧、构建视觉/语义/时间索引,并搜索带时间戳和自动剪辑的片段。操作——转码和规范化(编解码器、帧率、分辨率、宽高比),执行时间线编辑(字幕、文字/图片叠加、品牌标识、音频叠加、配音、翻译),生成媒体资产(图片、音频、视频),以及为直播流或桌面捕获的事件创建实时告警。 origin: ECC allowed-tools: Read Grep Glob Bash(python:*) argument-hint: "[任务描述]"
VideoDB 技能
视频、直播流和桌面会话的感知 + 记忆 + 操作。
何时使用
桌面感知
- 启动/停止捕获屏幕、麦克风和系统音频的桌面会话
- 流式传输实时上下文并存储情景会话记忆
- 对屏幕上的语音和画面运行实时告警/触发器
- 生成会话摘要、可搜索的时间线和可播放的证据链接
视频摄取 + 流
- 摄取文件或URL并返回可播放的网络流链接
- 转码/规范化:编解码器、比特率、帧率、分辨率、宽高比
索引 + 搜索(时间戳 + 证据)
- 构建视觉、语音和关键词索引
- 搜索并返回带时间戳和可播放证据的精确片段
- 从搜索结果自动创建剪辑
时间线编辑 + 生成
- 字幕:生成、翻译、烧录
- 叠加:文字/图片/品牌标识、动态字幕
- 音频:背景音乐、旁白、配音
- 通过时间线操作进行程序化合成和导出
直播流(RTSP)+ 监控
- 连接 RTSP/直播流
- 运行实时视觉和语音理解并为监控工作流发出事件/告警
工作原理
常见输入
- 本地文件路径、公共 URL 或 RTSP URL
- 桌面捕获请求:启动 / 停止 / 总结会话
- 所需操作:获取理解上下文、转码规格、索引规格、搜索查询、剪辑范围、时间线编辑、告警规则
常见输出
- 流URL
- 带时间戳和证据链接的搜索结果
- 生成的资产:字幕、音频、图片、剪辑
- 直播流的事件/告警载荷
- 桌面会话摘要和记忆条目
运行 Python 代码
运行任何 VideoDB 代码前,切换到项目目录并加载环境变量:
from dotenv import load_dotenv
load_dotenv(".env")
import videodb
conn = videodb.connect()
这会从以下位置读取 VIDEO_DB_API_KEY:
- 环境变量(如果已导出)
- 当前目录中项目的
.env文件
如果密钥缺失,videodb.connect() 会自动抛出 AuthenticationError。
当简短的内联命令即可完成时,不要编写脚本文件。
编写内联 Python(python -c "...")时,始终使用格式正确的代码——使用分号分隔语句并保持可读性。对于超过约3条语句的内容,改用 heredoc:
python << 'EOF'
from dotenv import load_dotenv
load_dotenv(".env")
import videodb
conn = videodb.connect()
coll = conn.get_collection()
print(f"Videos: {len(coll.get_videos())}")
EOF
设置
当用户要求"设置 videodb"或类似操作时:
1. 安装 SDK
pip install "videodb[capture]" python-dotenv
如果 videodb[capture] 在 Linux 上失败,不带 capture 扩展安装:
pip install videodb python-dotenv
2. 配置 API 密钥
用户必须使用任一方法设置 VIDEO_DB_API_KEY:
- 在终端中导出(启动 Claude 前):
export VIDEO_DB_API_KEY=your-key - 项目
.env文件:在项目的.env文件中保存VIDEO_DB_API_KEY=your-key
在 console.videodb.io 获取免费 API 密钥(50次免费上传,无需信用卡)。
不要自己读取、写入或处理 API 密钥。始终让用户自行设置。
快速参考
上传媒体
# URL
video = coll.upload(url="https://example.com/video.mp4")
# YouTube
video = coll.upload(url="https://www.youtube.com/watch?v=VIDEO_ID")
# 本地文件
video = coll.upload(file_path="/path/to/video.mp4")
转录 + 字幕
# force=True 跳过视频已索引时的错误
video.index_spoken_words(force=True)
text = video.get_transcript_text()
stream_url = video.add_subtitle()
在视频中搜索
from videodb.exceptions import InvalidRequestError
video.index_spoken_words(force=True)
# search() 在没有结果时抛出 InvalidRequestError。
# 始终用 try/except 包裹,将"No results found"视为空结果。
try:
results = video.search("product demo")
shots = results.get_shots()
stream_url = results.compile()
except InvalidRequestError:
shots = []
兼容工具
Claude CodeCursor
标签
前端开发
