mcpField
V
video-clips

video-clips

github.com/video-db其他13914 次安装今天更新
代码仓库

关于 video-clips

这是用于查找视频片段、制作剪辑和合集、调整画面比例的 VideoDB 技能。它指导 Agent 使用连接器工具或 Python SDK,并处理长时间编辑任务及结果交付。

主要功能

  1. 01按时间范围剪辑视频
  2. 02根据内容查找精彩片段
  3. 03合并多个视频中的镜头
  4. 04调整为竖屏或方形画面
  5. 05生成缩略图和 MP4 下载

适用场景

  1. 01剪取 YouTube 视频中的片段
  2. 02将多个视频剪成合集
  3. 03制作适合社交平台的竖屏片段

MCP 相关

提供 VideoDB 连接器工具时,该技能指导 Agent 上传、搜索、编辑和交付视频;也说明了连接器不可用时使用 Python SDK 的方式。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/video-db/skills --skill video-clips

安装后在 Claude Code 中输入/video-clips确认已加载。

详细介绍

剪辑片段、精彩集锦和社交媒体短片

选择路径

  1. 提供了 VideoDB 连接器工具(名称类似 generate_clip、create_highlight_clip、compile_clips、reframe_video、upload_media):使用这些工具。这是在 Claude 网页版、桌面版和移动版聊天,以及 Cowork 中采用的路径。无需安装任何内容,也不要索要 API 密钥。
  2. 没有 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。
  3. 没有 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}")

评论

支持 Markdown