{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_qccbak2d5jbz","handle":"cctv2333-vidlens-mcp","url":"https://wellknown.network/agents/cctv2333-vidlens-mcp","links":{"self":"https://wellknown.network/agents/cctv2333-vidlens-mcp/record.json","html":"https://wellknown.network/agents/cctv2333-vidlens-mcp","markdown":"https://wellknown.network/agents/cctv2333-vidlens-mcp/record.md","api":"https://wellknown.network/api/v1/agents/cctv2333-vidlens-mcp","status":"https://wellknown.network/api/v1/agents/cctv2333-vidlens-mcp/status","claim":"https://wellknown.network/agents/cctv2333-vidlens-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/cctv2333-vidlens-mcp/claim.json","badge":"https://wellknown.network/agents/cctv2333-vidlens-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/cctv2333-vidlens-mcp/history","tools":"https://wellknown.network/api/v1/agents/cctv2333-vidlens-mcp/tools"},"ard":{"identifier":"urn:air::server:cctv2333-vidlens-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"vidlens-mcp","summary":"Turn a public video into an evidence table an LLM can read: timecoded transcript, sampling sheets and AudioSet sound events, downloading only the bytes it needs.","description":"# vidlens\n\n[![ci](https://github.com/cctv2333/vidlens/actions/workflows/ci.yml/badge.svg)](https://github.com/cctv2333/vidlens/actions/workflows/ci.yml)\n[![PyPI](https://img.shields.io/pypi/v/vidlens-mcp.svg?cacheSeconds=600)](https://pypi.org/project/vidlens-mcp/)\n[![MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n**中文** · [English](README.en.md)\n\n把一个**公开可看**的视频，降解成「模型能真正读懂的证据表」。\n零云 API、零视觉模型、零显卡依赖。核心原则：**只下最小必要字节**。\n\n## 一分钟理解\n\n我有眼睛（能看图片），但没有耳朵。所以我需要两样东西：\n1. 声音 → 带时间戳的文字（这是唯一必须借工具的部分）\n2. 任意时刻的画面 → 我自己看\n\n工具只负责\"取样 + 量化\"，理解留在模型脑子里。\n\n## 三级预算（实测数据，7 分钟 1080p 视频）\n\n| 取法 | 体积 | 拿到什么 |\n|---|---|---|\n| 全片 1080p | 105.5 MB | 全部 |\n| **只下音频** | **7.3 MB** | **100% 语言信息（139 段 / 2184 字，与 1080p 逐字一致）** |\n| 只取 20 秒片段 | 0.9 MB | 那 20 秒的画面 |\n| 平台字幕（若有） | 0 MB | 平台自带的字幕轨，连音频都不用下 |\n\n**分辨率对语言信息零贡献。** 只有要读小字（代码、表格、UI 参数）时才需要原分辨率单帧。\n\n## 安装\n\n需要 Python 3.10+。两种装法：\n\n**A. 从 PyPI（推荐给使用者，不用 clone）**\n\n```bash\npipx install \"vidlens-mcp[all]\"      # 或 pip install \"vidlens-mcp[all]\"\nvidlens doctor                        # CLI 自检\n# MCP 配置只需要：{\"command\": \"vidlens-mcp\"}\n```\n\n产物与缓存在 `%LOCALAPPDATA%\\vidlens\\`（POSIX：`~/.local/share/vidlens/`），\n可用 `VIDLENS_OUT` / `VIDLENS_BIN` 覆盖；模型仍然放在你自己的模型目录。\n\n**B. 从源码（开发用）**\n\n```bat\ninstall.cmd\n```\n\n工程在哪就用哪，下面三个位置都能用环境变量覆盖：\n- 产物：`VIDLENS_OUT`，默认工程内 `out/`（源码布局）；装成 wheel 后默认 `%LOCALAPPDATA%\\vidlens\\out`\n- 模型：`VIDLENS_MODEL_ROOT`，默认 `%LOCALAPPDATA%\\vidlens\\models`（POSIX 走 XDG）；旧的 `D:\\dev\\models` **仅在它已存在时**沿用\n- ffmpeg 软链：`VIDLENS_BIN`，默认工程内 `bin/`（装成 wheel 后默认用户数据目录下的 `bin/`）\n\n**DSH 插件**（DeepSeek Harness 的原生 21 个工具）在另一个仓库：\n<https://github.com/cctv2333/dsh-vidlens>\n\n## 命令\n\n### 一、网上视频（不需要先下载）\n\n```bash\nvl meta  <url>                      # 只读网页，0 字节媒体\nvl grab  <url> --lang zh            # 字幕优先；无字幕则只下音频 -> 转写 + 停顿 + brief\nvl grab  <url> --cuts               # 额外扫镜头（需下最低画质视频，约 14-21MB，用完即删）\nvl clip  <url> --from 02:00 --to 02:20 --sheet   # 只下这 20 秒，出带时间码的拼图\n```\n\n### 二、本地视频\n\n```bash\nvl probe  a.mp4\nvl shots  a.mp4 --thr 0.30\nvl frames a.mp4 --at 19.5,21.0…","publisher":{"name":"cctv2333","url":null},"homepage":"https://github.com/cctv2333/vidlens","repository":"https://github.com/cctv2333/vidlens","version":"1.7.1","license":"MIT","protocols":["mcp"],"tags":["video","asr","mcp","llm","whisper","sensevoice","audioset","yt-dlp"],"pricing":null,"endpoints":[{"url":"pypi:vidlens-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"media.speech-recognition","name":"Speech Recognition","confidence":1,"provenance":"declared"}],"categories":["media"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"vidlens-mcp","registry":"pypi","observedAt":"2026-10-29T01:23:36.121Z","publishedAt":"2026-10-28T09:28:35.674275Z","latestVersion":"1.7.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"vidlens-mcp","url":"https://pypi.org/project/vidlens-mcp/","firstSeenAt":"2026-10-29T01:22:32.984Z","fetchedAt":"2026-10-29T01:22:32.984Z","normalizedAt":"2026-10-29T01:22:32.984Z"}]},"firstSeenAt":"2026-10-29T01:22:32.984Z","updatedAt":"2026-10-29T01:23:36.121Z"}