Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Yueying – Let AI watch videos

PYPI · YUEYING · SCANNED SEP 20

Local videos or YouTube/Bilibili URLs -> timestamped transcript, keyframes, contact sheets. Offline.

Available components

+17 this week 71 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security97
  • No malware found by supply-chain analysis.Pass
  • Known CVEs were checked across the 48 of 53 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
  • Runs setuptools.build_meta at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • Dependency health was assessed across the 48 of 53 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 7 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability63
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1670 tokens (~278/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 86% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the Yueying – Let AI watch videos MCP server?

Yueying – Let AI watch videos runs locally as a PyPI package, launched with uvx yueying. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · yueying

# add to Claude Code
claude mcp add vsh5dvsch7-png-yueying -- uvx yueying
// .cursor/mcp.json
{
  "mcpServers": {
    "vsh5dvsch7-png-yueying": {
      "command": "uvx",
      "args": [
        "yueying"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "vsh5dvsch7-png-yueying": {
      "command": "uvx",
      "args": [
        "yueying"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add vsh5dvsch7-png-yueying -- uvx yueying
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "vsh5dvsch7-png-yueying": {
      "type": "local",
      "command": [
        "uvx",
        "yueying"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add vsh5dvsch7-png-yueying --command uvx --arg yueying
# ~/.hermes/config.yaml
mcp_servers:
  vsh5dvsch7-png-yueying:
    command: "uvx"
    args: ["yueying"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "vsh5dvsch7-png-yueying": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "yueying"
      ]
    }
  }
}
# add to Vellum
assistant mcp add vsh5dvsch7-png-yueying -t stdio -c uvx -a yueying
// mcp.json
{
  "mcpServers": {
    "vsh5dvsch7-png-yueying": {
      "command": "uvx",
      "args": [
        "yueying"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 −1
    • Known CVEs: pass → partial security
    • Dependency health: 0.99 → partial functional
  • 19 Sept 26 +16
    • Malware scan: unverified → pass security
  • 17 Sept 26 −14
    • Malware scan: pass → unverified security
  • 14 Sept 26 +16
    • Malware scan: unverified → pass security
  • 13 Sept 26 0
    • Stability: unverified → 0.03 functional
    • Package version: 0.2.0 → 0.2.1 functional
  • 12 Sept 26 54

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/yueying@0.2.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Dependencies 48 packages
Packages resolved 48
Stale 1
No linked repository 1
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

Background: SBOMs and build attestations, explained →

MCP tools · 6 exposed · ~1,426 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_frame_at ~145

Look closely at one moment of an already-watched video, e.g. to read code, a slide, a chart or a UI. For local files that still exist the exact frame at that time is extracted from the video; otherwise the nearest cached keyframe is returned and the caption says so. Also returns the transcript paragraphs spoken around that time. Returns one image (~100 KB at 960 px).

NameTypeReqDescription
max_widthinteger
timestringyesTimestamp: seconds, mm:ss or h:mm:ss, e.g. '03:15'
videostringyesvideo_id, results folder, or the path/URL given to watch_video

No output schema declared.

No examples provided.

get_frames ~257

See what is on screen in an already-watched video. Returns contact-sheet images (3x3 keyframes in time order, every tile labelled '#number mm:ss' bottom-left) or individual keyframes. Read the contact sheets first to get the visual storyline, then request single frames only when you need to read code, slides or UI text. At most 3 images per call (default 2), downscaled to max_width; page with start/count. Every image is preceded by its absolute file path so hosts that can read files may open the full-size original instead.

NameTypeReqDescription
countintegerImages per call; keep 2 or fewer in Claude Desktop
kindstringgrids = 3x3 contact sheets, 9 keyframes per image (start here); frames = individual full-size keyframes
max_widthintegerDownscale width in pixels; 1280 is about 150 KB per contact sheet
startinteger1-based number of the first image: contact-sheet number for grids, keyframe number (as printed on the tiles) for frames
videostringyesvideo_id, results folder, or the path/URL given to watch_video

No output schema declared.

No examples provided.

get_transcript ~189

Read part of an already-watched video's transcript with [mm:ss] timestamps. Use when the watch_video overview was truncated, when the user asks about a specific time range, or to export subtitles (format='srt'). Returns at most max_chars; when truncated the last line gives next_start so you can continue from there. Paragraph format is the cheapest.

NameTypeReqDescription
endEnd time (same formats); None = to the end
formatstringparagraphs = compact [mm:ss] text (fewest tokens); segments = one line per subtitle cue with start-end; srt = subtitle blocks
max_charsinteger
startstringStart time: seconds, mm:ss or h:mm:ss
videostringyesvideo_id from watch_video/list_videos, the results folder, or the same path/URL given to watch_video

No output schema declared.

No examples provided.

list_videos ~90

List videos already processed by yueying on this machine (newest first) and jobs currently running, with video_id, title, duration, text source, date, folder and size. Use when the user refers to a video watched earlier, to get a video_id for the other tools, or to see how much disk space results use. Instant and read-only.

NameTypeReqDescription
limitinteger

No output schema declared.

No examples provided.

search_transcript ~157

Find where something is said in an already-watched video. Each hit shows the time, the surrounding sentences, and the nearest keyframe number and contact-sheet number so you can follow up with get_frame_at or get_transcript. Use this instead of paging the whole transcript when the user asks 'when does he mention X' or 'find the part about Y'.

NameTypeReqDescription
context_secondsnumberSeconds of surrounding text to include around each hit
limitinteger
querystringyesWords to look for; separate alternatives with spaces (any term matches, more terms rank higher). Case-insensitive
videostringyesvideo_id, results folder, or the path/URL given to watch_video

No output schema declared.

No examples provided.

watch_video ~588

Turn a video into a timestamped transcript plus a keyframe overview so you can summarize it, answer questions about it, extract steps, commands or code, or write notes. `video` is an absolute path to a local video/audio file or a YouTube / Bilibili / Douyin / Xiaohongshu / TikTok / Vimeo URL. Fully offline: platform subtitles are used when they exist, otherwise local Whisper speech recognition (GPU when available, CPU otherwise); no API key. Results are cached per video, so calling again with the same video is instant. Typical time: 5–60 s for short subtitled videos, a few minutes for long videos without subtitles; the very first speech recognition downloads a model once (~480 MB on CPU, ~1.6 GB on GPU). If the reply starts with RUNNING, call watch_video again with the same `video` — it resumes waiting for the same job; do not change options and do not start other videos meanwhile. The reply is an English overview: metadata, chapters, the list of contact sheets (see them with get_frames), file paths, and the transcript with [mm:ss] timestamps (truncated at max_chars with a start time for get_transcript). Cite timestamps like (03:15). Not for live streams or images.

NameTypeReqDescription
cookies_from_browserReuse a browser login for HD or member-only Bilibili / sign-in-gated YouTube. Close Chrome first on Windows
frame_interval_secondsApproximate seconds between keyframes; None = automatic by duration (2–20 s). Use 2 for code/slide-heavy screencasts
languagestringSpoken language; auto detects it. Set it when you know it for better accuracy
max_charsintegerMaximum characters of transcript included in the reply
modestringfull = transcript + keyframes (default); transcript = no keyframes; frames = no speech recognition (platform subtitles still used)
modelstringWhisper model used only when the video has no subtitles. auto = large-v3-turbo on an NVIDIA GPU, small on CPU
output_dirAbsolute folder for the results; default $YUEYING_OUT_DIR/<name>-<id>
refreshbooleanDiscard cached results (and any running job) for this video and process it again
videostringyesAbsolute path to a local video/audio file, or a video page URL (YouTube, Bilibili, Douyin, Xiaohongshu, TikTok, Vimeo, X and other yt-dlp sites)
wait_secondsintegerHow long this call may block before answering RUNNING. Keep 45 in Claude Desktop/Cursor (60 s client timeout); Claude Code/Cline may use up to 1500

No output schema declared.

No examples provided.

Common questions

What is the Yueying – Let AI watch videos MCP server?

Yueying – Let AI watch videos is an MCP server listed in the public MCP registry as io.github.vsh5dvsch7-png/yueying. Local videos or YouTube/Bilibili URLs -> timestamped transcript, keyframes, contact sheets. Offline. This page covers its PyPI package (yueying).

Is the Yueying – Let AI watch videos MCP server safe to use?

Yueying – Let AI watch videos scores 71 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Yueying – Let AI watch videos MCP server expose?

Yueying – Let AI watch videos exposes 6 tools: watch_video, get_transcript, search_transcript, get_frames, get_frame_at, list_videos. Their descriptions and schemas cost roughly 1,426 tokens of context every time the server is loaded.

Is the Yueying – Let AI watch videos MCP server still maintained?

Yueying – Let AI watch videos is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Yueying – Let AI watch videos MCP server under?

Yueying – Let AI watch videos declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.