关于 video-clips
这是用于查找视频片段、制作剪辑和合集、调整画面比例的 VideoDB 技能。它指导 Agent 使用连接器工具或 Python SDK,并处理长时间编辑任务及结果交付。
主要功能
- 01按时间范围剪辑视频
- 02根据内容查找精彩片段
- 03合并多个视频中的镜头
- 04调整为竖屏或方形画面
- 05生成缩略图和 MP4 下载
适用场景
- 01剪取 YouTube 视频中的片段
- 02将多个视频剪成合集
- 03制作适合社交平台的竖屏片段
MCP 相关
提供 VideoDB 连接器工具时,该技能指导 Agent 上传、搜索、编辑和交付视频;也说明了连接器不可用时使用 Python SDK 的方式。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ video-db/ skills --skill video-clips安装后在 Claude Code 中输入/video-clips确认已加载。
详细介绍
剪辑片段、精彩集锦和社交媒体短片
选择路径
- 提供了 VideoDB 连接器工具(名称类似
generate_clip、create_highlight_clip、compile_clips、reframe_video、upload_media):使用这些工具。这是在 Claude 网页版、桌面版和移动版聊天,以及 Cowork 中采用的路径。无需安装任何内容,也不要索要 API 密钥。 - 没有 VideoDB 工具,但可以使用 shell(Claude Code、Cowork,或任何可以运行 Python 的 Agent):用一句友好的话索要 VideoDB API 密钥(可在 https://console.videodb.io 免费获取,含 $20 额度,无需信用卡)。用户通过聊天或其他方式提供密钥后,请自行将其保存到项目的
.env文件中,键名为VIDEO_DB_API_KEY,绝不要打印密钥,然后继续使用本文末尾的 Python SDK 路径。在 Claude Code 中,也可以使用/mcp,然后授权 videodb。 - 没有 VideoDB 工具,也无法使用 shell:你正在使用 Claude 聊天。只回复以下内容,并根据请求调整:"尚未连接 VideoDB。请打开 Settings → Connectors,找到 VideoDB,点击 Connect 并登录(免费,无需信用卡)。然后再次发送此请求,我会继续处理。"此处不要提及 API 密钥、
.env、shell、Claude Code 或/mcp;这些都不适用于聊天,而且在聊天中粘贴密钥也无法使用,因为这里不能运行代码。
与用户交流时:回复中绝不要使用“索引”“已索引”或“正在索引”。请说“可搜索”(“现在可以按说过的话和画面内容进行搜索”),并使用“转录”,不要提及任务名称。每次只发送一行状态,然后给出结果。
每次剪辑都是耗时较长的任务:调用会返回 status: processing。回复中会包含 output_url,并指出用于轮询的工具(poll_with,较旧的服务则使用 retry_with)。使用该工具和 output_url 反复轮询,直到状态为 done;连续几次返回 processing 属于正常情况(上传一段 10 分钟的 YouTube 视频大约需要五分钟),而返回空结果的 done 回复表示还需再轮询一次。绝不要重新执行写入操作,否则会启动第二个任务。完成后的结果会包含 stream_url 和 player_url;请分享 player_url,它可在任何浏览器中打开。
使用连接器工具
获取视频。 首先使用视频标题或链接中的文字调用 search_videos_by_title(query);如果账号中已有该视频,请重复使用其 m- id,而不要再次上传。否则,对于 YouTube 链接或公开 URL,调用 upload_media(url) 并轮询,直到状态为 done;记下 m- id 和 length。本地文件无法通过连接器传入;用户需在 https://console.videodb.io 上传并分享 m- id。
| 用户需求 | 调用 |
|---|---|
| 从一个视频中截取一段或多段并拼接 | generate_clip(video_id, timeline=[[10, 25], [60, 90]])(秒) |
| 符合描述的片段 | 先调用一次 generate_transcript(media_id),然后调用 create_highlight_clip(video_id, prompt="every product demo"),再用它返回的镜头调用 compile_clips |
| 自行控制剪辑采用哪些片段 | 调用 generate_transcript(media_id) 并轮询,然后调用 get_transcript(media_id, timestamped=true, segmenter="sentence"),自行选择时间范围,再调用 generate_clip(详情见 video-search 技能) |
| 将多个视频剪成一段集锦 | compile_clips(clips=[{"video_id": "m-a", "shots": [[5, 20]]}, {"video_id": "m-b", "shots": [[0, 12]]}]) |
| 为 Shorts、Reels、TikTok 制作竖屏视频,或制作方形视频 | reframe_video(video_id, start, end, target="vertical")(可选 "square"、"landscape" 或 {"width", "height"});mode="smart" 会跟随主体 |
| 缩略图 | generate_thumbnail(video_id, time_seconds=42) |
| MP4 文件 | download_stream(stream_url, name="demo-reel.mp4"),轮询,然后分享下载 URL |
可避免重试的注意事项:
create_highlight_clip默认根据口语内容匹配;如果视频的语音尚未转录或建立索引,它会返回空的shots列表。请先转录。它返回的是镜头,而非流;使用compile_clips渲染这些镜头。reframe_video速度较慢。务必传入用户所需片段的start和end。它会在集合中保存新视频;字幕或后续剪辑应针对这个新的m-id 进行。在某些服务上,首次收到的done回复仅包含reframe_id,新视频稍后才会出现:继续轮询同一个output_url,并调用list_videos检查是否有新条目,最长约五分钟。如果视频仍未出现,请告知用户竖屏剪辑仍在 VideoDB 端渲染,并使用generate_clip提供相同时间范围的横屏片段,让用户先有内容可用。- 为片段添加字幕:先重新构图,然后对新视频调用
generate_transcript,再调用add_subtitles(见video-subtitles技能)。 - 用户以 mm:ss 格式提供的时间戳,会在任何调用前转换为秒。
交付。 分享 player_url 和使用的时间范围,并询问用户是否需要 MP4。
使用 Python SDK(Claude Code)
如果 import videodb 失败,请先使用 /videodb:setup 进行设置。完整参考:${CLAUDE_PLUGIN_ROOT}/python/SKILL.md 和 ${CLAUDE_PLUGIN_ROOT}/python/reference/editor.md。
from dotenv import load_dotenv; load_dotenv(".env")
import videodb
from videodb import ReframeMode
conn = videodb.connect(); coll = conn.get_collection()
video = coll.upload(url="https://www.youtube.com/watch?v=VIDEO_ID")
stream_url = video.generate_stream(timeline=[(10, 30), (45, 60)]) # ranges joined, no re-encode
vertical = video.reframe(start=10, end=30, target="vertical", mode=ReframeMode.smart)
print(f"https://console.videodb.io/player?url={stream_url}")