mcpField
V
Video URL Analyzer

Video URL Analyzer

本地服务
github.com/u2n4媒体与设计423 周前更新

关于 Video URL Analyzer

Video URL Analyzer 是面向视频分析场景的 MCP 服务,可处理 YouTube、TikTok 和 Instagram 视频及图片帖。它结合 Gemini 分析音视频内容,并提供转录、片段检索、证据提取和教程步骤整理。

主要功能

  1. 01音视频多模态分析
  2. 02提取带时间戳的转录
  3. 03按问题查询视频内容
  4. 04检索片段并提取画面
  5. 05从技术视频整理教程步骤

适用场景

  1. 01为多语言视频生成转录
  2. 02定位视频中的特定事件
  3. 03从技术视频提取命令和代码
  4. 04为后续问答保存视频上下文

MCP 相关

通过 FastMCP over stdio 暴露 18 个工具,供 MCP 客户端分析视频、管理本地上下文并提取画面或片段。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"u2n4-video-url-analyzer": {
"command": "uvx",
"args": [
"video-url-analyzer-mcp"
]
}
}
}
启动命令uvx video-url-analyzer-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypivideo-url-analyzer-mcp1.5.1

工具

17

收录的工具列表 · 更新于 2 周前

参数类型必填说明
urlstring是视频 URL(YouTube、TikTok、Instagram 或其他)。
modelstring否要使用的 Gemini 模型。默认为 gemini-2.5-flash。
promptstring否自定义分析提示词。默认为综合分析。

详细介绍

视频分析器 MCP 服务

视频分析器 MCP 服务

借助 AI 分析任意视频 — YouTube、TikTok 和 Instagram
由 Google Gemini 3.5 Flash、FastMCP 和 yt-dlp 提供支持

Gemini 3.5 Flash Python 3.10+ MCP stdio 安全加固 MIT 许可证

功能 · 架构 · 快速开始 · 集成 · 安全 · 阿拉伯语


功能

功能 — 分析、转录、提问

v1.5.4 提供 18 个 MCP 工具:

工具功能
analyze_video使用自定义提示词全面分析音频和画面。借助 Gemini 的多模态理解能力。
get_transcript提取带时间戳的转录文本并识别说话者。支持通过自动检测处理 100 多种语言。
ask_about_video提出任何有关视频内容的问题。
prepare_slideshow_assets将按顺序排列的幻灯片图片作为 MCP 图片块返回,以便 Claude/客户端 AI 直接查看。
find_video_moments查找匹配的片段,并以精简、标准或完整的结构化格式输出。
analyze_video_segment仅分析选定的时间段。
prepare_video_context分析一次并保存可重复使用的本地上下文,以便后续提问和查找证据。
ask_video_context默认根据已保存的上下文作答;只有明确选择后才会重新调用 Gemini 分析。
list_video_contexts列出已保存的本地上下文。
delete_video_context删除一条已保存的上下文。
get_video_frame提取本地静态帧;条件允许时使用 YouTube 快速路径。
get_video_clip提取较短的本地片段,时长上限为 30 秒;条件允许时使用 YouTube 快速路径。
get_video_evidence_asset选择已保存的证据,并返回帧或片段引用。
list_video_sources查看本地来源、上下文和资源缓存的元数据。
cleanup_video_cache试运行或清理受管理的缓存文件;默认采用试运行模式。
watch_and_analyze从技术视频中提取教程步骤、Shell 命令、代码片段和文件路径。
execute_tutorial_steps安全地验证并审查提取出的步骤;只有在确认后才会执行。
check_analysis_job查询 TikTok/Instagram 异步下载的后台任务状态。
支持的平台
平台方式速度
YouTube直接使用 Gemini 分析 — 分析时无需下载。条件允许时,使用 yt-dlp -g 流媒体 URL 和 ffmpeg 提取帧或片段,并在必要时回退为下载较小片段。即时 / 本地快速提取
TikToktikwm.com API(快速)→ 回退到 yt-dlp,并使用安全的 MP4 H.264/H.265 选择器,在条件允许时避开不受支持的 ByteDance bvc2/bytevc2 流约 8 秒
Instagram通过 curl_cffi 抓取页面(快速)→ 回退到 yt-dlp约 10 秒
照片 / 幻灯片帖子
平台帖子类型处理方式
TikTok照片模式幻灯片下载所有图片,在可用时提取音乐 / 音频轨道,并发送一个多模态 Gemini 请求。
Instagram轮播 / 单张照片帖子按顺序下载图片幻灯片,并将其作为一个帖子进行分析;混有视频的幻灯片会跳过并附带元数据。
YouTube社区 /post/ 图片附件抓取 ytInitialData,下载图片附件,并通过 Gemini Files API 进行分析。

YouTube 视频直接通过 Gemini 原生视频理解功能进行分析——无需下载,无需上传,速度最快。 对于 YouTube 证据素材,source.mp4 并非总是必需:已保存的上下文会保留原始 URL,因此帧 / 剪辑工具稍后可以使用本地流快速路径。


架构

架构图

组件作用
Gemini 3.5 Flash最新的 Gemini Flash 模型——单次处理即可全面理解音频和视觉内容
FastMCP 3.x通过 stdio 传输的 MCP 协议框架
yt-dlp + curl_cffi使用 Chrome 浏览器模拟绕过反机器人机制并下载视频。TikTok 下载优先选择可在本地解码的 MP4 H.264/H.265 格式,并拒绝 ByteDance bvc2/bytevc2 流。
tikwm.com APIyt-dlp 被 WAF 拦截时的 TikTok 快速路径备用方案
ffmpeg本地提取帧 / 剪辑,包括提取 YouTube 流 URL,无需下载完整视频
后台任务使用异步线程处理 TikTok/Instagram,以避免 Claude Desktop 超时。失败的内部结果会报告为失败任务,而非已完成任务。
运行模式

这些是行为模式,而非工具名称:

模式行为
auto默认自适应行为:直接分析 YouTube;TikTok/Instagram 先使用快速 API / 抓取,再回退到 yt-dlp;有已保存的上下文时会复用。
api由 Gemini 支持的分析或重新分析。分析工具和明确选择 Gemini 的操作会使用此模式。
clientMCP 客户端工作流模式:耗时较长的 TikTok/Instagram 分析会返回用于轮询的后台 job_id。
local已保存上下文、缓存、帧和剪辑操作;除非明确请求,否则不使用 Gemini。

快速开始

打包后的运行时位于 src/video_url_analyzer_mcp/server.py;控制台入口点为 video_url_analyzer_mcp:main。选择适合你工作流的安装方式。

选项 A — Windows 一行安装程序(推荐新用户使用)
irm https://raw.githubusercontent.com/u2n4/video-url-analyzer-mcp/main/install.ps1 | iex

安装程序遵循当前 MCP 客户端模式:通过 uvx 从 PyPI 安装 / 运行;如果已设置 GEMINI_API_KEY 环境变量,则使用该变量,否则仅通过隐藏提示输入密钥;并允许用户选择注册服务的位置:

  • Claude Code
  • Claude Desktop
  • Codex CLI
  • Cursor
  • Windsurf
  • VS Code / GitHub Copilot
  • Google Antigravity
  • Cline

请勿将 API 密钥附加到 PowerShell 命令中。如果跳过输入密钥,安装程序仍会注册服务,你可以稍后设置 GEMINI_API_KEY。如果 GEMINI_API_KEY 已在用户环境变量中设置,安装程序会直接使用该变量,并仅打印类似 AIza...abcd 的掩码形式。

选项 B — uvx(无需安装)
uvx video-url-analyzer-mcp

只要 uv 位于 PATH 中,即可在 Windows / macOS / Linux 上运行。

选项 C — 从代码库检出版本启动 Windows 向导
git clone https://github.com/u2n4/video-url-analyzer-mcp.git
cd video-url-analyzer-mcp
powershell -ExecutionPolicy Bypass -File scripts\install_windows.ps1

该向导会:

  • 验证 Python 3.10+ 和(可选的)uv。
  • 将软件包安装为可编辑检出版本,或通过 uv tool install 安装。
  • 让你将 GEMINI_API_KEY 保存为用户环境变量,或保存到被 Git 忽略的 .env.keys.local 文件中。日志中的密钥会被遮蔽(AIza...abcd),不会完整打印。
  • 让你通过 VIDEO_ANALYZER_MODEL 选择默认模型。
  • 运行离线导入冒烟测试。
  • 转交给 scripts/configure_mcp_clients.ps1 进行客户端设置。
选项 D — 手动安装(任意操作系统)
git clone https://github.com/u2n4/video-url-analyzer-mcp.git
cd video-url-analyzer-mcp
pip install -e .
python -m video_url_analyzer_mcp

在 Google AI Studio 获取免费密钥,然后在 Shell 环境中设置一次(Windows 上运行 setx GEMINI_API_KEY ...,macOS/Linux 上则设置在 ~/.zshrc 或 ~/.bashrc 中)。仅用于本地开发时,也可以将密钥放在代码库旁边、被 Git 忽略的 .env.keys.local 文件中。

Windows 启动器

start.bat 会加载 .env.keys.local(如果存在),设置安全的默认值(VIDEO_ANALYZER_MODE=auto),然后运行 python -m video_url_analyzer_mcp。对于偏好使用单个可执行文件的 MCP 客户端,可将其用作 command 值。


集成

运行 scripts/configure_mcp_clients.ps1 打开交互式菜单,或从 docs/mcp-config-examples.md 复制以下代码片段。该向导会备份现有客户端配置、验证 JSON/TOML,并且绝不会覆盖无关的 MCP 服务。

客户端配置使用 video-analyzer 作为本地 MCP 服务的条目名称。已发布的软件包仍为 video-url-analyzer-mcp,注册表名称仍为 io.github.u2n4/video-url-analyzer-mcp。

Claude Desktop(%APPDATA%\Claude\claude_desktop_config.json)
{
  "mcpServers": {
    "video-analyzer": {
      "command": "uvx",
      "args": ["video-url-analyzer-mcp"]
    }
  }
}

该向导优先将 API 密钥保留在操作系统环境变量中。如果必须将其嵌入配置,请添加 "env": { "GEMINI_API_KEY": "YOUR_KEY_HERE" }。

Claude Code(CLI)
claude mcp add video-analyzer --transport stdio -- uvx video-url-analyzer-mcp

或者,在代码库中运行 pip install -e . 后:

claude mcp add video-analyzer --transport stdio -- python -m video_url_analyzer_mcp
Codex CLI(~/.codex/config.toml)
[mcp_servers.video-analyzer]
command = "uvx"
args = ["video-url-analyzer-mcp"]
VS Code / GitHub Copilot MCP

工作区注册会写入 .vscode/mcp.json:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "video-url-analyzer-gemini-api-key",
      "description": "Gemini API key for video-url-analyzer-mcp",
      "password": true
    }
  ],
  "servers": {
    "video-analyzer": {
      "type": "stdio",
      "command": "uvx",
      "args": ["video-url-analyzer-mcp"],
      "env": {
        "GEMINI_API_KEY": "${input:video-url-analyzer-gemini-api-key}"
      }
    }
  }
}

对于所有客户端,编辑配置后都要重启应用,以便加载新的 MCP 服务。完整代码片段(包括 Cursor、Windsurf、Antigravity(%USERPROFILE%\.gemini\antigravity\mcp_config.json)和 Cline)请参阅 docs/mcp-config-examples.md。


使用示例

# Full video analysis with Gemini 3.5 Flash
analyze_video("https://www.youtube.com/watch?v=dQw4w9WgXcQ")

# Custom analysis prompt
analyze_video("https://www.tiktok.com/@user/video/123",
              prompt="List every product shown and estimate prices")

# Multilingual transcript extraction
get_transcript("https://www.instagram.com/reel/ABC123/", lang="ar")

# Ask specific questions about video content
ask_about_video("https://youtu.be/abc",
                question="What programming language is used in the tutorial?")

# Analyze once, then ask locally from the saved context
prepare_video_context("https://youtu.be/abc", detail="standard")
ask_video_context("https://youtu.be/abc",
                  question="What happens near the end?")

# Extract visual evidence without embedding binary data in the tool output
get_video_frame("https://youtu.be/abc", timestamp="00:30")
get_video_clip("https://youtu.be/abc", start="00:20", end="00:28")

# Watch & build — extract tutorial steps
watch_and_analyze("https://www.youtube.com/watch?v=tutorial123")

安全

此服务已针对全面的威胁模型审计进行了安全加固:

层防护措施
SSRFURL 允许列表——仅接受 YouTube、TikTok、Instagram 域名。屏蔽私有 IP、localhost 和 file://。
命令注入使用 shell=False + shlex.split()。危险命令阻止列表(rm -rf、反向 Shell、eval、管道传给 Shell)。
路径遍历屏蔽 25 种以上敏感路径模式(.ssh、.aws、.env、系统目录、AppData)。
TLS所有下载均进行完整的证书验证。
浏览器 Cookie仅在选择启用 VIDEO_ANALYZER_COOKIES=true 时使用。默认禁用。
下载大小每个视频的硬性上限为 100 MB。
DoS 防护最多 10 个并发后台任务。1 小时后自动过期。最多存储 200 次分析。
架构验证执行前验证 Gemini JSON 响应。响应大小上限为 500K 个字符。
依赖项在 pyproject.toml 中维护运行时依赖项版本范围。

环境变量

变量描述默认值
GEMINI_API_KEYGoogle Gemini API 密钥必填
ANALYSES_DIR已保存分析的目录./analyses
VIDEO_CONTEXT_DIR已保存可重复使用的视频上下文目录video_contexts
VIDEO_SOURCE_DIR已下载源媒体缓存目录video_sources
VIDEO_ASSET_DIR提取帧/片段的目录video_assets
VIDEO_ANALYZER_COOKIES启用浏览器 Cookie 访问(true/false)false
VIDEO_DOWNLOAD_TIMEOUT覆盖下载和 yt-dlp 超时值,单位为秒现有的各操作默认值
VIDEO_FFMPEG_TIMEOUT覆盖 ffmpeg 提取超时值,单位为秒现有的各操作默认值
VIDEO_GEMINI_TIMEOUT可选的 Gemini HTTP 超时,单位为秒SDK 默认值
VIDEO_IMAGE_DOWNLOAD_CONCURRENCYTikTok/Instagram/YouTube 图片帖的并行图片下载数6
VIDEO_GEMINI_UPLOAD_CONCURRENCY已下载媒体和幻灯片图片的并行 Gemini Files 上传数4
VIDEO_ANALYZER_MODEL同时用于快速和深度模型解析的单一默认模型 ID。单次调用的 model= 和 GEMINI_FAST_MODEL/GEMINI_DEEP_MODEL 优先级仍更高。未设置
GEMINI_FAST_MODEL紧凑/标准详情模式的覆盖值gemini-3.5-flash
GEMINI_DEEP_MODELfull 详情模式的覆盖值gemini-3.1-pro-preview

默认快速模型:gemini-3.5-flash。默认深度模型 (在 detail="full" 时使用):gemini-3.1-pro-preview。设置 VIDEO_ANALYZER_MODEL 可同时覆盖两者。模型可用性可能因 Google 账号、地区和 API 层级而异——如果你的 密钥尚未启用最新 ID,请改用 gemini-flash-latest。 | VIDEO_ANALYZER_MODE | 行为预设(auto/api/client/local);由 start.bat 读取 | auto |


故障排除

问题解决方案
GEMINI_API_KEY not set创建 .env 文件,或通过环境变量传入
TikTok 下载失败自动启用 tikwm.com 备用方案。确保已安装 curl_cffi。
TikTok bvc2/bytevc2 编解码器v1.4 会在存在兼容的 MP4 H.264/H.265 格式时避开这些不受支持的 ByteDance 流。如果没有可用的兼容流,工具会返回结构化的 unsupported_codec 或 no_compatible_format 错误,而不会上传或谎报成功。
Instagram 下载失败安装 pip install curl_cffi 以支持浏览器模拟
Windows 上出现 ENOENT在 Claude Desktop 配置中使用 start.bat 作为命令
无法使用目标模拟重新安装:pip install "yt-dlp[curl-cffi]"
Claude Desktop 超时TikTok/Instagram 会在后台运行——使用 check_analysis_job(job_id) 轮询
后台任务显示失败当工作线程结果为错误、Gemini 文件处理失败或媒体验证拒绝该源时,这是预期行为。check_analysis_job 不再将这些内部失败报告为已完成。
prepare_video_context 重复执行工作它会重复使用缓存的上下文,除非设置 force_refresh=true
缺少 YouTube source.mp4某些情况下这是预期行为。帧/片段工具可以从已保存的 URL 恢复,并使用 yt-dlp -g + ffmpeg 快速提取。
Gemini 暂时性 503/5xx 错误Gemini generate_content 调用会采用指数退避策略,最多重试 3 次。4xx 身份验证/架构/用户错误不会重试。

技术栈

技术版本用途
Google Gemini 3.5 FlashLatest多模态视频分析引擎
FastMCP3.3.1+MCP 协议框架
yt-dlp2026.3.17+视频下载器
curl_cffi>=0.7.4,<0.15.0浏览器模拟(TLS 指纹),为兼容 yt-dlp 2026.03.17 而固定版本
google-genai2.5.0+Google 官方 GenAI SDK

许可证

MIT


阿拉伯语

视频分析服务

AI 视频分析服务

使用 Google Gemini 3.5 Flash 分析视频的 MCP 服务——Google 最新的多模态 Gemini Flash 模型。

功能
工具描述
analyze_video全面分析音频和画面,支持自定义指令
get_transcript提取语音文本并附带时间戳——支持 100 多种语言
ask_about_video询问有关视频内容的任何问题
prepare_video_context一次性分析视频并保存可重复使用的本地上下文
ask_video_context根据已保存的上下文回答,默认不使用 Gemini
get_video_frame / get_video_clip提取图像或片段作为本地证据,并提供通过 yt-dlp + ffmpeg 快速处理 YouTube 的路径
watch_and_analyze提取技术教程中的步骤、命令和代码
execute_tutorial_steps安全地审查并执行提取出的步骤
支持的平台
平台速度
YouTube即时——直接分析,无需下载
TikTok~8 秒——通过快速的 tikwm.com 接口
Instagram~10 秒——直接从页面提取
快速安装(Windows)

克隆仓库,然后运行交互式安装程序:

git clone https://github.com/u2n4/video-url-analyzer-mcp.git
cd video-url-analyzer-mcp
powershell -ExecutionPolicy Bypass -File scripts\install_windows.ps1

无需安装的替代方式:uvx video-url-analyzer-mcp。

安全

服务已采取防护措施:

  • SSRF——仅允许白名单中的域名
  • 命令注入——阻止危险命令 + 不使用 shell 执行
  • 路径遍历——阻止 25 个以上的敏感路径
  • 过载保护——最多允许 10 个并发任务
获取 API 密钥
  1. 访问 Google AI Studio
  2. 创建免费 API 密钥
  3. 将密钥放入 .env 文件:
GEMINI_API_KEY=مفتاحك_هنا

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。