guimatheus92/mcp-video-analyzer

guimatheus92/mcp-video-analyzer

от guimatheus92
MCP сервер для анализа видео - извлекает транскрипт, ключевые кадры, метаданные и текст с экрана (OCR) из URL и локальных файлов. Полезен разработчикам и техподдержке для разбора видео с багами, де...

mcp-video-analyzer

mcp-video-analyzer

Turn any video — YouTube, Instagram, TikTok, Loom, X, Vimeo, direct links, local files — into transcripts, key frames, OCR text, and metadata for AI agents.

npm license awesome-mcp-servers mcpservers.org

mcp-video-analyzer MCP server

No existing video MCP combines transcripts + visual frames + metadata in one tool. This one does — across Loom, the major yt-dlp platforms (YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook), direct video URLs, and local files.

Want a full pipeline, not just a tool? social-knowledge-base is built on top of this server — it downloads whole Instagram creator accounts (reels, stories, highlights), transcribes them, and turns the result into a searchable, RAG-queryable knowledge base with AI-generated notes. Use this MCP when you want per-video analysis inside an agent; use social-knowledge-base when you want to archive and query an entire account.

Installation

Prerequisites
  • Node.js 22.12+ — required to run the server via npx
  • yt-dlp — required for YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook URLs; optional for everything else (improves Loom download quality). Install with pip install yt-dlp
  • Chrome/Chromium (optional) — fallback for frame extraction if yt-dlp is unavailable

Часто задаваемые вопросы

Инструменты были проиндексированы:
analyze_momentтолько чтениеидемпотентныйвнешний мир

Углубленный анализ конкретного временного отрезка в видео. Объединяет пакетное извлечение кадров, фильтрацию расшифровки, OCR и аннотированную временную шкалу для выбранного фрагмента видео. Используй, когда нужно точно понять, что происходит между двумя отметками времени: - Что на экране (кадры + извлечённый текст через OCR) - Что говорится (расшифровка, отфильтрованная по диапазону) - Единая временная шкала, объединяющая визуальный и аудиоконтент Пример: analyze_moment(url, "1:30", "2:00", 10) — 10 кадров + расшифровка + OCR для этого 30-секундного окна Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov), а также локальные видеофайлы (абсолютный путь или file:// URI).

Параметры
  • countnumber

    Количество кадров для извлечения в диапазоне (по умолчанию: 10)

  • fromstringобязательный
  • maxWidthinteger

    Максимальная ширина возвращаемых кадров в пикселях; 0 сохраняет исходное разрешение. По умолчанию 800 (или MCP_FRAME_MAX_WIDTH). Увеличьте это значение, когда видео записано с экрана и смысл в мелком тексте: терминалы, панели управления, IDE. Исходные кадры требуют в несколько раз больше контекста, чем при значении по умолчанию.

  • ocrLanguagestring

    Коды языков Tesseract OCR (по умолчанию: "eng+por"). Используйте "+" для объединения: "eng+spa", "eng+fra+deu".

  • tostringобязательный

    Конечная временная метка (например, "2:00")

  • urlstringобязательный

    Источник видео: ссылка для общего доступа Loom, URL видео на платформе (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), прямой URL .mp4/.webm/.mov или абсолютный путь к локальному видеофайлу.

analyze_videoтолько чтениеидемпотентныйвнешний мир

Анализирует URL видео, чтобы извлечь транскрипцию, ключевые кадры, метаданные, комментарии, OCR-текст и аннотированную временную шкалу. Возвращает структурированные данные о содержимом видео: - Транскрипция с временными метками и спикерами - Ключевые кадры, извлечённые через детекцию смены сцен (дедуплицированные, в виде изображений). Для статичных клипов без смены сцен (например, Reels/Stories с говорящей головой, где меняется только текст на экране) автоматически переключается на равномерную временную дискретизацию. - OCR-текст, извлечённый из кадров (код, сообщения об ошибках, текст интерфейса, цены/даты/CTA, видимые на экране) - Аннотированная временная шкала, объединяющая транскрипцию + кадры + OCR в единое хронологическое представление - Метаданные (название, длительность, платформа) - Комментарии зрителей (если доступны) Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI). Уровни детализации: - "brief": только метаданные + сокращённая транскрипция (быстро, без загрузки видео) - "standard": полный анализ с кадрами смены сцен (по умолчанию) - "detailed": плотная дискретизация (1 кадр/сек), больше кадров, полный OCR Используйте options.fields, чтобы запросить только определённые данные (например, ["metadata", "transcript"]). Используйте options.forceRefresh, чтобы обойти кеш. Используйте options.model / options.language / options.initialPrompt, чтобы переопределить настройки транскрипции Whisper для каждого вызова (например, более тяжёлую модель + предметный глоссарий для сложного аудио) без перезапуска сервера.

Параметры
  • optionsobject

    Параметры анализа

  • urlstringобязательный

    Источник видео: ссылка для общего доступа Loom, URL видео на платформе (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), прямой URL .mp4/.webm/.mov или абсолютный путь к локальному видеофайлу.

analyze_videosтолько чтениеидемпотентныйвнешний мир

Анализирует сразу много видео за один вызов, с ограничением параллелизма и результатами по каждому файлу. Для каждого источника выполняет тот же пайплайн, что и analyze_video (кадры + OCR + расшифровка + таймлайн), используя общий кеш и файловые сайдкары. Предназначен для обработки набора локальных файлов: используйте вместе с MCP_WRITE_SIDECARS=1, чтобы результаты сохранялись рядом с каждым видео, а при повторном запуске работа продолжалась, а не пересчитывалась заново. Возвращает JSON-сводку и по одной структурированной записи на источник: - ok=true → title, duration, frameCount, ocrCount, transcriptEntries, warnings - ok=false → сообщение об ошибке для этого конкретного видео (остальные видео всё равно завершаются) Чтобы ответ оставался в разумных рамках, изображения кадров НЕ встраиваются, а полные массивы расшифровки/OCR/таймлайна возвращаются только когда options.fields задан; иначе вы получаете только счётчики. Если нужны изображения или полные данные внутри результата, используйте analyze_video для отдельного источника.

Параметры
  • concurrencyinteger

    Сколько видео анализировать параллельно (по умолчанию: 2). Извлечение кадров и OCR нагружают процессор — увеличивай осторожно.

  • optionsobject

    Параметры анализа, применяемые к каждому источнику.

  • sourcesstring[]обязательный

    Источники видео для анализа за один раз (URL-адреса Loom, URL-адреса видеоплатформ, таких как YouTube, прямые URL-адреса или локальные пути).

get_frame_atтолько чтениеидемпотентныйвнешний мир

Извлекает один кадр видео по заданной временной метке. Полезен для проверки того, что отображается на экране в определённый момент. ИИ читает расшифровку, находит ключевой момент и запрашивает точный кадр на этой метке. Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или URI file://). Аргументы: - url: источник видео (URL или локальный путь) - timestamp: позиция по времени (например, "1:23", "0:05", "01:23:45") Возвращает: одно изображение кадра видео на указанной временной метке.

Параметры
  • maxWidthinteger

    Максимальная ширина возвращаемых кадров в пикселях; 0 сохраняет исходное разрешение. По умолчанию 800 (или MCP_FRAME_MAX_WIDTH). Увеличьте это значение, когда видео записано с экрана и смысл в мелком тексте: терминалы, панели управления, IDE. Исходные кадры требуют в несколько раз больше контекста, чем при значении по умолчанию.

  • returnBase64boolean

    Возвращайте кадр как встроенный base64 вместо пути к файлу.

  • timestampstringобязательный

    Временная метка для извлечения кадра (например, "1:23", "0:05", "01:23:45").

  • urlstringобязательный

    Источник видео: ссылка для общего доступа Loom, URL видео на платформе (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), прямой URL .mp4/.webm/.mov или абсолютный путь к локальному видеофайлу.

get_frame_burstтолько чтениеидемпотентныйвнешний мир

Извлекает до запрошенного количества исходных кадров в пределах временного диапазона. Рассчитан на анализ движения и вибраций, где детекция смены сцен не срабатывает, потому что сама «сцена» не меняется, меняется только положение или состояние объектов. Пример: get_frame_burst(url, "0:15", "0:17", 10) → 10 кадров за 2 секунды - ИИ видит объект в разных положениях на разных кадрах → понимает вибрацию - Подходит для: тряски, мерцания, анимаций, быстрой прокрутки, индикаторов загрузки Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI). Аргументы: - url: источник видео (URL или локальный путь) - from: начальная метка времени (например, "0:15") - to: конечная метка времени (например, "0:17") - count: количество кадров (по умолчанию: 5, максимум: 30) Возвращает: текстовый блок JSON вида { frameCount, from, to, warnings, frames: [{ time, timingOrigin }] }, а следом изображения в том же порядке, что и кадры. timingOrigin принимает значение "source-pts" для измеренных меток времени FFmpeg относительно видео и "seek-target" для запрошенных перемоток в браузере. Пустой результат содержит frames: []. До N изображений исходных кадров, выбранных ffmpeg в интервале [from, to), без дублирования кадров ради достижения запрошенного количества. Дробные границы вроде "0:01.1" поддерживаются. Резервный вариант с браузером перематывает по всему диапазону, включая его границы; эти цели перемотки - не измеренные PTS исходных кадров.

Параметры
  • countnumber

    Количество кадров для извлечения (по умолчанию: 5)

  • fromstringобязательный
  • maxWidthinteger

    Максимальная ширина возвращаемых кадров в пикселях; 0 сохраняет исходное разрешение. По умолчанию 800 (или MCP_FRAME_MAX_WIDTH). Увеличьте это значение, когда видео записано с экрана и смысл в мелком тексте: терминалы, панели управления, IDE. Исходные кадры требуют в несколько раз больше контекста, чем при значении по умолчанию.

  • returnBase64boolean

    Возвращайте кадры как встроенный base64 вместо путей к файлам.

  • tostringобязательный

    Конечная временная метка (например, "2:00")

  • urlstringобязательный

    Источник видео: ссылка для общего доступа Loom, URL видео на платформе (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), прямой URL .mp4/.webm/.mov или абсолютный путь к локальному видеофайлу.

get_framesтолько чтениеидемпотентныйвнешний мир

Извлекает ключевые кадры из видео по ссылке без расшифровки или метаданных. Два режима извлечения: - Обнаружение смены сцен (по умолчанию) — ловит визуальные переходы. - Плотная выборка (dense=true) — захватывает 1 кадр/с для полного покрытия видео. Возвращает оптимизированные, дедуплицированные JPEG-кадры. Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI).

Параметры
  • optionsobject
  • urlstringобязательный

    Источник видео: ссылка для общего доступа Loom, URL видео на платформе (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), прямой URL .mp4/.webm/.mov или абсолютный путь к локальному видеофайлу.

get_metadataтолько чтениеидемпотентныйвнешний мир

Получает метаданные видео, комментарии, главы и AI-саммари по ссылке на видео. Возвращает структурированные метаданные без загрузки видео или извлечения кадров. Быстрее, чем analyze_video, если нужны только метаданные. Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые URL видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI).

Параметры
  • urlstringобязательный

    Источник видео: ссылка для общего доступа Loom, URL видео на платформе (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), прямой URL .mp4/.webm/.mov или абсолютный путь к локальному видеофайлу.

get_transcriptтолько чтениеидемпотентныйвнешний мир

Извлекает только расшифровку из URL видео. Возвращает расшифровку с временными метками и идентификацией говорящего (если доступно). Быстрее, чем analyze_video, если нужна только расшифровка. Если у платформы нет встроенной расшифровки, пытается выполнить транскрипцию через Whisper (требуется @huggingface/transformers, whisper CLI или OPENAI_API_KEY). Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp; предпочтительны встроенные субтитры), прямые URL видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI). Для локальных файлов сначала используются боковые файлы .vtt/.srt рядом с видео, затем встроенная дорожка субтитров, и только потом резервная транскрипция Whisper, если ничего из этого нет.

Параметры
  • optionsobject

    Переопределения транскрипции (применяются только к запасному варианту Whisper)

  • urlstringобязательный

    Источник видео: ссылка для общего доступа Loom, URL видео на платформе (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), прямой URL .mp4/.webm/.mov или абсолютный путь к локальному видеофайлу.

0.11.0основная
0.10.1
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
0.4.0
0.3.0
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0

Выберите клиент, чтобы установить guimatheus92/mcp-video-analyzer:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "guimatheus92-mcp-video-analyzer-jz73rgup3c": {
      "command": "npx",
      "args": [
        "mcp-video-analyzer@latest"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "guimatheus92-mcp-video-analyzer-jz73rgup3c": {
      "command": "npx",
      "args": [
        "mcp-video-analyzer@latest"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "guimatheus92-mcp-video-analyzer-jz73rgup3c": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "mcp-video-analyzer@latest"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"guimatheus92-mcp-video-analyzer-jz73rgup3c\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"mcp-video-analyzer@latest\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "guimatheus92-mcp-video-analyzer-jz73rgup3c": {
      "command": "npx",
      "args": [
        "mcp-video-analyzer@latest"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add guimatheus92-mcp-video-analyzer-jz73rgup3c -- npx mcp-video-analyzer@latest

Либо через JSON-конфиг:

claude mcp add-json guimatheus92-mcp-video-analyzer-jz73rgup3c "{\"command\":\"npx\",\"args\":[\"mcp-video-analyzer@latest\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add guimatheus92-mcp-video-analyzer-jz73rgup3c -- npx mcp-video-analyzer@latest

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.guimatheus92-mcp-video-analyzer-jz73rgup3c]
command = "npx"
args = ["mcp-video-analyzer@latest"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите guimatheus92/mcp-video-analyzer, а в поле команды запуска — строку ниже:
npx mcp-video-analyzer@latest

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "guimatheus92-mcp-video-analyzer-jz73rgup3c": {
      "command": "npx",
      "args": [
        "mcp-video-analyzer@latest"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "guimatheus92-mcp-video-analyzer-jz73rgup3c": {
      "command": "npx",
      "args": [
        "mcp-video-analyzer@latest"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например guimatheus92-mcp-video-analyzer-jz73rgup3c.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: guimatheus92-mcp-video-analyzer-jz73rgup3c
    command: npx
    args:
      - "mcp-video-analyzer@latest"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "guimatheus92-mcp-video-analyzer-jz73rgup3c": {
      "command": "npx",
      "args": [
        "mcp-video-analyzer@latest"
      ]
    }
  }
}

Похожие MCP-сервера

Adityaaery20/media-mcp

Adityaaery20/media-mcp

от adityaaery20

MCP-сервер для обработки изображений и видео без ключей и конфигурации. Позволяет изменять размер, конвертировать форматы и сжимать файлы. Также доступны обрезка, фильтры и анализ. Видео требует ff...

Python⭐ 5
samson-art/transcriptor-mcp

samson-art/transcriptor-mcp

от samson-art

MCP-сервер для получения транскриптов и субтитров с YouTube, Twitter, Instagram и ещё 8 платформ. Использует yt-dlp, при отсутствии субтитров задействует Whisper (локально или OpenAI). Полезен для ...

TypeScript⭐ 24
supadata-ai/mcp

supadata-ai/mcp

от supadata-ai

MCP сервер для извлечения транскриптов видео с YouTube, TikTok, Instagram и Twitter, а также веб-скрапинга, краулинга и AI-извлечения структурированных данных. Помогает разработчикам парсить контент и собирать метаданные с медиаплатформ.

TypeScript⭐ 63
velyan/pdf-card-mcp

velyan/pdf-card-mcp

от velyan

PDF Card MCP — локальный MCP сервер и инструмент, который превращает плотные PDF в портативные HTML-читалки с привязкой к страницам. Сохраняет текст, обрезает таблицы, фигуры и формулы, извлекает стили из PDF. Идеален для чтения, цитирования и заметок — всё работает офлайн без облачных сервисов.

Python⭐ 2
video-edit-mcp

video-edit-mcp

от aditya2755

MCP-сервер для мощного редактирования видео и аудио: обрезка, слияние, эффекты, работа со звуком и скачивание. Поддерживает цепочки операций без промежуточных файлов - идеально для автоматизации мо...

Python⭐ 29
realcrabcut/crabcut-mcp-server

realcrabcut/crabcut-mcp-server

от realcrabcut

MCP-сервер для нарезки YouTube-видео в короткие клипы. Автоматически находит лучшие моменты, делает вертикальное видео 9:16 с субтитрами и отдаёт готовые файлы. Идеален для контент-мейкеров и марке...

TypeScript⭐ 2
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин