Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VIDLENS_ASRNoASR backend: 'auto' (SenseVoice when available, else Whisper), 'whisper' to force the old backend.auto
VIDLENS_BINNoDirectory for the ffmpeg symlink/copy (installed default is a bin/ dir under user data).
VIDLENS_OUTNoDirectory for products and cache (defaults to %LOCALAPPDATA%\vidlens\ on Windows or ~/.local/share/vidlens/ on POSIX; source layout defaults to out/ in-project).
VIDLENS_COOKIESNoPath to a cookies.txt file, used to allow sites that need login (e.g. 抖音). Disabled by default.
PYTHONIOENCODINGNoSet to 'utf-8' for the stdio MCP server (as shown in the Chatbox/Claude/Cursor config).utf-8
VIDLENS_MODEL_DIRNoModel directory (source default D:\dev\models\whisper, falling back to ~/.cache/whisper).
HF_HUB_DISABLE_XETNoSet to '1' to avoid hf-mirror Xet 401 errors; recommended in the MCP env config.1
VIDLENS_TAGGING_MODELNoOverride path to the CED-mini AudioTagging model for video_soundscape.
VIDLENS_TAGGING_LABELSNoOverride path to the AudioSet class_labels_indices.csv for CED-mini tagging.
VIDLENS_SENSEVOICE_MODELNoOverride path to the SenseVoice ONNX model.
VIDLENS_SENSEVOICE_TOKENSNoOverride path to the SenseVoice tokens.txt vocabulary file.
VIDLENS_COOKIES_FROM_BROWSERNoRead login cookies from a browser: chrome / edge / firefox / chromium.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
video_metaA

读取公开视频的元数据(标题、UP主、时长、发布日期、播放/点赞、是否有字幕)。 不下载任何媒体,几乎零成本。用于判断"这个视频值不值得看"。

video_planA

0 下载:按切点/长静音把视频切成章节,给出建议观看顺序。 长视频默认先调它,再挑 2-3 个章节用 video_window / video_sheet,不要一上来就转写全片。

video_subsA

只读平台字幕轨(人工字幕优先,其次自动字幕),0 媒体下载。 方言/口音重、ASR 不确定时,先看这里有没有原字幕;没有再用 ASR 或看画面硬字幕。

video_briefA

看一个视频:默认给摘要(章节 + 关键句 + 全文路径,约 1.5k 字), 需要完整报告才传 level="full"(6–9k 字,会长期占用上下文,慎用)。 平台字幕优先(0 媒体下载),无字幕才下音频做 ASR。 长视频(>20 分钟且无字幕)默认只给章节建议,不逐字转写;确实要全量传 full=true。 方言可传 lang=yue 等,或 prompt="以下是粤语,请保留方言用词"。 需要看画面再用 video_sheet / video_frames,不要下整片。

video_windowA

只看某个时间窗:该窗内的台词(带时间码)与停顿。 有缓存/平台字幕则零下载;否则只下该窗口的音频做 ASR,不转写全片。 方言可传 lang=yue / prompt=...。适合"刚才那 30 秒他说了什么",也是长视频抽样的主力工具。

video_watchA

分段看片:一次只前进一段(默认 5 分钟,约 1k 字),看完就停,等调用方决定。

这就是「一段一段看、看一点说一点」的入口:

  • 第一次调用:从 0 开始,返回第 1 段的要点 + 进度;

  • 继续看:再调一次(cursor="next" 接着上次的位置);

  • cursor="restart" 从头看,cursor="stop" 清掉进度。 返回里带「已看多少 / 共多少(百分比)」;看完会明说「看完了」。 要某段逐字再传 video_window;不要用 video_brief(level="full") 一次拉全文。

video_audioA

听一段:本地 SenseVoice 的语种/情感/音频事件 + 节拍/能量(近似)。 只下这一段音频(20 秒约 0.5MB),不转写全片。节拍估计对纯语音段意义有限, 对音乐/剪辑节奏更有用;情感/事件是模型标签,不是事实判断。

video_soundscapeA

听这一段"有什么声音"(不是"说了什么"):AudioSet 527 类多标签 + 概率 + 时间码。 能覆盖吃饭/咀嚼、敲桌子/拍、水声、杯子碰撞、拖拽、塑料袋等;喝水/吞咽没有对应类。 只下这一段音频(60 秒约 1MB)。概率是模型输出,不是事实断言,要结合画面核对。

video_sheetB

只下载这一段(例如 20 秒 ≈ 0.9MB),返回一张拼图,每格左上角烧着绝对时间码。 用于"看一眼这段画面在发生什么"。

video_framesA

按秒数精确取帧(最多 6 张),返回图片本身。只在需要读小字/看清细节时用。 注意:取帧需要下载对应片段,成本高于 video_sheet。

video_fullA

下载整片(仅在你明确要看全片时使用)。必须 confirm=True 才会执行。 普通分析不需要它——先试 video_brief。

video_job_startA

解决客户端超时:长视频先起后台任务,再用 video_job 轮询。 推荐顺序:video_meta → video_plan → video_window / video_sheet; 只有明确要全量逐字时才 video_job_start(full=true)。 comments=True 会额外附上评论区争议分析。

video_jobA

查询后台任务。wait_seconds 建议 20-30(不要超过 60,否则客户端会超时)。 完成时返回完整报告;运行中返回 stage + 百分比。

video_ocrA

把画面上的字读出来(本地 OCR,离线;不靠人声、不需要平台字幕)。 专治「没有人声、文字全在画面上」的视频:brief 报「几乎无人声」之后就该用它。 只下这一段的最低画质视频,按 n 个时间点取帧识别,结果带时间码、可直接引用。 代价:约 1 帧 0.3-0.8s(CPU);n 越大越细,12 帧适合 5-6 分钟。 引擎是可选依赖(≈80MB):不传 install 时只告诉你装到哪、怎么换目录; 传 install=true 就地下载并先复述位置。

video_visual_scanA

抽样看画面:全片均匀取样(有切点时按切点取)n 帧,每帧烧上绝对时间码,拼成图返回。 用于没有声音、或长时间无语音的视频。代价:下最低画质视频(7 分钟约 14-21MB),用完即删。

video_commentsA

抓公开视频的评论区(目前支持 B 站,免登录),给出互动比、负面/正面词频、 争议度启发式估计、高赞评论。默认不返回评论配图:一张截图走 MCP 是 base64 全量进上下文,很容易把窗口顶爆。确实要看图再传 with_images=true(最多 4 张)。 评论是最敌对的文本来源,全部经过清洗与注入扫描后才展示。

vidlens_modelsA

本地模型目录 / 硬件建议 / 下载(大小、落点、换目录都说清)。 action=list 看目录(含本机解析出的真实路径);action=recommend 看这台机器适合哪个; action=download 装某个模型:先只报大小与落点,传 confirm=true 才真下。

vidlens_doctorA

自检:python / ffmpeg / yt-dlp / 依赖 / whisper 模型 / 磁盘 / 网络。哪里断了直接说。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 18 tools

Disambiguation4/5

Descriptions actively steer the agent away from the wrong tool (e.g. video_subs before ASR, video_sheet/frames instead of video_full, video_window for a single span vs video_watch for incremental progress), which is unusually strong guidance. Still, there are clusters of near-neighbours: video_brief / video_watch / video_window all can yield transcripts of the same footage, and video_sheet / video_frames / video_visual_scan / video_ocr all sample frames, so a hurried agent could easily pick the wrong one.

Naming Consistency4/5

Nearly everything follows a single `video_<noun>` scheme with short, readable suffixes. The two infrastructure tools break the prefix (vidlens_models, vidlens_doctor), and a few names mix styles (video_job_start is noun_verb, video_full is an adjective), but the overall set is predictable.

Tool Count4/5

18 tools is on the heavy side, but they form a deliberate cost tier (meta → plan → window → sheet → OCR → job) rather than a flat pile. Each tool has a stated cheaper alternative it exists to replace, though a few of the visual/transcript tools could plausibly be merged.

Completeness5/5

The surface covers the full video-analysis lifecycle: metadata, subtitles, planning, incremental watching, time windows, audio events, soundscape, frame/sheet/scan visuals, OCR, comments, plus model management, diagnostics and async job polling for long runs. No obvious dead ends remain for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues