视频分析工具

一款基于AI的视频分析工具,支持YouTube、TikTok和Instagram平台的多模态分析,包括音频和视觉内容解析、转录及问答功能。

  • by u2n4
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 alihsh0/video-url-analyzer-mcp

使用说明

Video Analyzer MCP Server

Analyze any video with AI — YouTube, TikTok & Instagram
Powered by Google Gemini 3.5 Flash · FastMCP · yt-dlp

Features · Architecture · Quick Start · Integration · Security · العربية


特性

v1.5.2暴露 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 默认情况下,从保存的上下文中回答;双子座再分析是明确的选择加入
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异步下载的后台作业状态。

支持的平台

平台 方法 速度
油管 直接Gemini分析——分析无需下载。帧/剪辑提取使用 yt-dlp -g 流URL+ffmpeg(如果可用),带有小部分下载回退。 即时/快速本地提取
试试看。 tikwm.com API(快速)→ yt-dlp回退,使用安全的MP4 H.264/H.265选择器,避免不受支持的ByteDance bvc2/bytevc2 可能时为流 ~8s
Instagram 通过curl_cffi进行页面抓取(快速)→ yt-dlp回退 ~10s

照片/幻灯片帖子

平台 岗位类型 处理
试试看。 照片模式幻灯片 下载所有图像,提取可用的音乐/音轨,并发送一个多模式Gemini请求。
Instagram 旋转木马/单张照片帖子 按顺序下载图像幻灯片,并将其作为一篇帖子进行分析;混合视频幻灯片与元数据一起跳过。
油管 社区 /post/ 图片附件 剪贴 ytInitialData,下载图像附件,并通过Gemini Files API对其进行分析。

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


建筑

组件 角色
双子座3.5闪光灯 最新Gemini Flash型号——一次通过即可实现完整的音频+视觉理解
FastMCP 3.x 基于stdio传输的MCP协议框架
yt-dlp+curl-cffi 通过Chrome浏览器模拟进行视频下载,以绕过反机器人。TikTok下载更喜欢本地可解码的MP4 H.264/H.265格式,并拒绝字节跳动 bvc2/bytevc2 溪流。
tikwm.com API 当yt-dlp被WAF阻止时,TikTok快速路径回退
FFmpeg 本地帧/剪辑提取,包括在不下载完整视频的情况下提取YouTube流URL
后台作业 TikTok/Instagram的异步线程,以防止Claude Desktop超时。失败的内部结果被报告为失败的作业,而不是完成的作业。

操作模式

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

模式 行为
auto 默认自适应行为:YouTube直接分析;TikTok/Instagram快速API/刮取然后yt-dlp回退;保存的上下文在可用时重用。
api 双子座支持的分析或再分析。这被分析工具和明确的Gemini选择加入所使用。
client MCP客户端工作流模式:长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客户端模式:它从以下位置安装/运行 PyPI与 uvx,使用现有 GEMINI_API_KEY 环境变量时 一个已经设置,否则仅通过隐藏提示请求密钥, 并允许用户选择在哪里注册服务器:

  • 克劳德代码
  • 克劳德桌面版
  • Codex CLI
  • 光标
  • 帆板运动
  • VS代码/GitHub副本
  • 谷歌反重力
  • 克莱恩

不要将API密钥附加到PowerShell命令。如果跳过该键, 安装程序仍然会注册服务器,您可以设置 GEMINI_API_KEY 稍后。如果 GEMINI_API_KEY 已在您的用户环境中设置 安装程序将直接使用它,只打印一个掩码表单,如 AIza...abcd.

选项B-- uvx (不安装)

uvx video-url-analyzer-mcp

只要满足以下条件,即可在Windows/macOS/Linux上运行 紫外线 在PATH上。

选项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 到用户环境变量 或 到一个 被忽视 .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

获取免费钥匙 谷歌AI工作室, 然后在shell环境中设置一次(setx GEMINI_API_KEY ... 上 Windows或您的 ~/.zshrc / ~/.bashrc 在macOS/Linux上)。对于本地开发人员 只是,你也可以把它放在一个gignored里 .env.keys.local 旁边 回购。

Windows启动器

start.bat 负载 .env.keys.local (如果存在),设置安全默认值 (VIDEO_ANALYZER_MODE=auto),并运行 python -m video_url_analyzer_mcp. 将其用作 command 任何倾向于单一MCP客户端的价值 可执行。


整合

跑 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.

克劳德桌面(%APPDATA%\Claude\claude_desktop_config.json)

{
  "mcpServers": {
    "video-analyzer": {
      "command": "uvx",
      "args": ["video-url-analyzer-mcp"]
    }
  }
}

向导倾向于将API密钥留在操作系统环境中。如果你一定要 嵌入它,添加 "env": { "GEMINI_API_KEY": "YOUR_KEY_HERE" }.

克劳德代码(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代码/GitHub副本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、, 反重力(%USERPROFILE%\.gemini\antigravity\mcp_config.json),以及 克莱恩-住在 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")

安全

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

层 保护
上海光源 URL满列表-只接受YouTube、TikTok、Instagram域名。私有IP、本地主机, file:// 此 路 不通。
命令注入 shell=False + shlex.split().危险命令块列表(rm-rf、反向shell、eval、管道到shell)。
路径遍历 25+敏感路径模式被阻止(.ssh, .aws, .env,系统主管,AppData)。
传输层安全 对所有下载进行完整的证书验证。
浏览器Cookie 仅通过以下方式选择加入 VIDEO_ANALYZER_COOKIES=true。默认情况下禁用。
下载大小 每个视频的硬限制为100 MB。
DoS保护 最多10个并发后台作业。1小时后自动过期。储存容量为200份分析报告。
模式验证 Gemini JSON响应在执行前经过验证。响应大小限制为500K个字符。
依赖项 所有版本均已固定 requirements.txt.

环境变量

变量 描述 默认值
GEMINI_API_KEY Google 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_ANALYZER_MODEL 单旋钮默认模型id用于快速和深度模型分辨率。每次呼叫 model= 和 GEMINI_FAST_MODEL / GEMINI_DEEP_MODEL 仍然优先。 取消设置
GEMINI_FAST_MODEL 覆盖紧凑/标准细节模式 gemini-3.5-flash
GEMINI_DEEP_MODEL 覆盖 full 细节模式 gemini-3.1-pro-preview

默认快速模型: gemini-3.5-flash默认深度模型 (在以下情况下使用 detail="full"): gemini-3.1-pro-preview.Set VIDEO_ANALYZER_MODEL 同时覆盖两者。型号可用性可以 因Google帐户、地区和API级别而异-请返回 gemini-flash-latest 如果您的最新id尚未启用 钥匙。 | VIDEO_ANALYZER_MODE |行为预设(auto / api / client / local);阅读者 start.bat | auto |


故障排除

问题 解决方案
GEMINI_API_KEY not set 创建 .env 文件或传递环境变量
TikTok下载失败 tikwm.com回退自动激活。确保 curl_cffi 已安装。
试试看 bvc2 / bytevc2 codec v1.4在存在兼容的MP4 H.264/H.265格式时避免了这些不受支持的ByteDance流。如果没有兼容的流可用,工具将返回结构化的 unsupported_codec 或 no_compatible_format 错误,而不是上传或假装成功。
Instagram下载失败 pip install curl_cffi 用于浏览器模拟支持
ENOENT 在Windows上 使用 start.bat 作为Claude Desktop配置中的命令
模拟目标不可用 重新安装: pip install "yt-dlp[curl-cffi]"
克劳德桌面超时 TikTok/Instagram在后台运行——使用 check_analysis_job(job_id) 投票
后台作业表示失败 当工作程序结果为错误、Gemini文件处理失败或媒体验证拒绝源时,这是预期的。 check_analysis_job 不再将这些内部故障报告为已完成。
prepare_video_context 重复工作 它重用缓存的上下文,除非 force_refresh=true
油管 source.mp4 缺失 在某些情况下是预期的。框架/剪辑工具可以从保存的URL中恢复并使用 yt-dlp -g +ffmpeg快速提取。
双子座503/5xx 双子座 generate_content 呼叫重试次数最多为3次,采用指数回退。4xx auth/schema/user错误不会重试。

技术栈

技术 版本 目的
谷歌双子座3.5 Flash 最新 多模态视频分析引擎
快速多通道处理 3.1.0 MCP协议框架
yt-dlp 2026.3.3 视频下载器
curl-cffi 0.14.0 浏览器模拟(TLS指纹)
谷歌genai 1.66.0 官方谷歌GenAI SDK

许可证

麻省理工学院


阿拉伯语

人工智能视频分析服务器

MCP服务器用于视频分析 谷歌双子座3.5 Flash –谷歌最新的多媒体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)

克隆ribo,然后打开交互式处理器:

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.

安全

服务器受到以下保护:

  • 上海光源 -仅允许域的白名单
  • 注入命令 –禁止危险命令+无外壳执行
  • 突破轨道 –阻止25+条敏感路径
  • 防止过度妊娠 -最多同时执行10项任务

获取API密钥

  1. 前往 谷歌AI工作室
  2. 创建免费API密钥
  3. 将其存档 .env:
GEMINI_API_KEY=مفتاحك_هنا