video-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@video-mcpSummarize this YouTube video: https://youtu.be/dQw4w9WgXcQ"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
video-mcp — 视频文案提取 + 总结 MCP 服务
多平台视频 MCP:贴链接 → 提取字幕/口播文案 → 服务端蒸馏 → 只回 Markdown 摘要(省 token)。
背景:上游 yzfly/douyin-mcp-server 已于 2026-07-02 归档,解析代码在 2026-09 抖音 SSR 改版后失效。此为 fork 修复自建版(vault 镜像,服务器部署在
/home/jerry/video-mcp)。
工具
工具 | 参数 | 返回 |
|
| Markdown 摘要(标题/要点/结论/时间戳),全文不进对话 |
|
| 全文文本 + 落盘 |
平台自动识别:B站(bilibili.com/b23.tv)、YouTube(youtube.com/youtu.be)、抖音(douyin.com/v.douyin.com)。
Related MCP server: Open CLAW Knowledge Distiller
引擎与配置(环境变量)
变量 | 默认 | 说明 |
| 必填 | 硅基流动 key(SenseVoice 口播转写;复用 douyin-mcp 那把) |
|
| OpenAI 兼容端点;服务器上指 |
| 必填 | 对应端点 key(本地 llama.cpp 可任意非空) |
| deepseek-chat | 模型名 |
| 200000 | 超过此 token 的字幕自动分段 map-reduce(默认单段直给,本地 Qwen3.8 200K 无需分段) |
|
|
|
抖音引擎说明(browser 模式)
抖音无公开字幕。browser 引擎复用本机真实浏览器会话(需先启动 Kimi WebBridge 守护进程 ~/.kimi-webbridge/bin/kimi-webbridge start,浏览器需保持打开):
新标签打开
douyin.com/video/{id},等待视频元素就绪Performance API 提取签名音频流(media-audio-*)URL
下载 → ffmpeg(imageio-ffmpeg 自带静态二进制)转 wav
SenseVoice(硅基流动)→ 文案 → LLM 蒸馏
已知局限:依赖本机浏览器进程;服务器端自动化引擎(TikTokDownloader)为 TODO。
本地跑(stdio)
uv sync # 或 uv run video-mcp
ASR_API_KEY=sk-... LLM_API_KEY=sk-... uv run video-mcp服务器部署(规划)
# HTTP 模式
uv run video-mcp --transport http --host 127.0.0.1 --port 8310
# systemd 或 docker + Tailscale Serve 转发 → claude mcp add-remote / astrbot MCP 添加验证记录
2026-09-05:手动链路全通(浏览器签名流 → ffmpeg → SenseVoice → 总结);B站/抖音在 Mac(webbridge)与 Linux 服务器(CDP headless Chromium)双端实测通过
上游 yzfly/douyin-mcp-server 2026-07-02 归档,解析失效(KeyError 'videoInfoRes'),故自建本项目
Available Tools
2 toolsget_transcriptA
提取视频完整字幕/口播文案。全文会写入文件(不占对话),返回摘要性提示与路径。
Args: url: 视频链接(平台同上) out_dir: 落盘目录,默认 /tmp/video-mcp
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| out_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well by disclosing that the full text is written to a file (not occupying conversation) and that only a summary hint and path are returned. It stops short of mentioning file overwrite behavior, permissions, or failure modes, but the most important side effects are revealed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with no filler. Each sentence contributes either the core behavior or parameter semantics. It is an appropriate size for a two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has an output schema, so the description doesn't need to detail return values. However, the '平台同上' reference is not self-contained for an agent that lacks broader context, and the out_dir default mismatch is a real gap that could lead to incorrect invocation assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does add meaning to both parameters: url is a video link and out_dir is the destination directory. However, '平台同上' is not self-contained, and the stated default '/tmp/video-mcp' conflicts with the schema's default of '', creating ambiguity about actual behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('提取视频完整字幕/口播文案') on a clear resource (video transcript) and explains the key output behavior (write to file, return path). This naturally distinguishes it from the sibling summarize_video, which would produce a summary rather than the full transcript.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use this tool when you need the full transcript saved to a file rather than a summary. However, it never names summarize_video or explicitly says when not to use this tool, so the routing decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_videoB
给一个视频链接(B站/YouTube/抖音),提取字幕/口播文案并生成 Markdown 总结。
Args: url: 视频分享链接(支持 bilibili.com / b23.tv / youtube.com / youtu.be / douyin.com / v.douyin.com) lang: 输出语言,默认 zh
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| lang | No | zh |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It states that subtitles or spoken text are extracted and a Markdown summary is generated, but does not mention potential failure modes, dependence on subtitle availability, network access, rate limits, or processing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action and output, and uses a clear Args section for parameter details. Every sentence contributes useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two simple parameters and an output schema present, the description gives enough to invoke the tool correctly for typical cases. However, it lacks guidance on edge cases, such as videos without subtitles or unsupported URL variants, and does not clarify how it differs operationally from get_transcript.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining that 'url' is a video share link and listing supported domains, and that 'lang' controls the output language with a default of 'zh'. This adds practical meaning beyond the bare schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('summarize'), a clear resource ('video link'), and the main output ('Markdown summary'). It also enumerates supported platforms (B站/YouTube/抖音), making the tool's scope explicit and distinguishing it from the sibling get_transcript, though not by direct comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does and which URL patterns are accepted, but it gives no guidance on when to choose summarize_video vs get_transcript. It does not mention any exclusions, prerequisites, or scenarios where one tool should be preferred over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
get_transcript - First observed
summarize_video
TDQS
Scored across 2 tools
The two tools are related but have clear output differences: get_transcript writes the full transcript to a file, while summarize_video generates a Markdown summary. An agent could confuse them in edge cases, but the descriptions clarify their distinct purposes.
Both tool names follow the same verb_noun pattern in snake_case: get_transcript and summarize_video. This is fully consistent and predictable.
Two tools is minimal for a video-focused MCP server, covering only transcription and summarization. It is not an extreme mismatch, but the surface feels thin for the broad 'video-mcp' name.
For the apparent purpose of extracting video transcripts and generating summaries, the two core workflows are covered. However, there is no direct way to retrieve the full transcript inline, which is a minor but workable gap.
Maintenance
Related MCP Connectors
Any video URL to LLM-ready transcript. ASR built in, no captions needed. TikTok, X, TED and more.
Timestamped transcripts, chapters and clip suggestions from YouTube, Twitch, Kick or TikTok links.
Get transcripts from YouTube, TikTok, X, Instagram and more - even when captions are off.
Fetch transcripts, subtitles, chapters, metadata and frames from YouTube and 10+ video platforms
Related MCP Servers
- AlicenseAqualityCmaintenanceExtracts watermark-free videos and images from Douyin (TikTok) and Xiaohongshu (RedNote) share links, with optional AI-powered video transcription support.422 PyPI23Apache 2.0
- AlicenseNot gradedqualityDmaintenanceConverts YouTube and Bilibili videos into structured knowledge articles using local transcription or subtitle extraction combined with AI-powered summarization. It supports multiple summary styles and provides tools to process URLs, track job status, and retrieve results directly within MCP-compatible agents.64MIT
- AlicenseNot gradedqualityAmaintenanceEnables link type detection, video downloading, metadata extraction, and transcript generation across 16+ platforms including YouTube, Bilibili, and WeChat Channels. Supports automatic subtitle extraction and optional Whisper speech-to-text for videos without captions.2MIT
- AlicenseAqualityAmaintenanceEnables transcription of videos and audio from 1000+ platforms (YouTube, Bilibili, TikTok, etc.) using subtitle extraction first, then local Whisper transcription, with support for long videos, async tasks, and Chinese ASR optimization.42MIT