video-reader-mcp

video-reader-mcp

Enables Claude to read and watch online videos (YouTube, TikTok, Douyin, Facebook, Instagram) by pasting a link, providing summaries, transcripts, frame analysis, and metadata.

Category
访问服务器

README

video-reader-mcp

An MCP server that lets Claude (or any MCP client) read and watch online videos — YouTube, TikTok, Douyin (抖音), Facebook and Instagram — just by pasting a link.

Paste a URL and ask your assistant to summarize it, transcribe the speech, describe what's on screen, or pull the metadata and comments. It gives Claude the kind of "watch this video" ability that's otherwise built into tools like Gemini.

Tools

Tool What it does
get_media_info Title, uploader, views/likes, upload date, description, hashtags, top comments
get_transcript The spoken words — platform captions first, local Whisper speech-to-text as fallback
get_frames Samples frames evenly across the video so the model can see it
download_media Saves the raw video or audio file to a local folder

Platform support

Platform Status Notes
YouTube No login needed. (Cookies are deliberately not sent — YouTube breaks with them.)
TikTok No login needed.
Facebook Needs your cookies (you must be logged in).
Instagram Needs your cookies.
Douyin (抖音) Needs cookies. Uses a custom page scraper (douyin.py), because yt-dlp hits Douyin's signed API and fails. Fragile — Douyin changes its page format from time to time.

How it works

Built on yt-dlp (downloads + metadata), ffmpeg (frame extraction), youtube-transcript-api (fast YouTube captions) and optional faster-whisper (local speech-to-text).

Douyin is special: yt-dlp can't get past Douyin's request-signature wall (msToken/a_bogus), so douyin.py instead fetches the public share page and parses the embedded JSON blob (_ROUTER_DATA / RENDER_DATA) for the metadata and the CDN play URL — then streams that directly for frames/transcript.


Installation

1. Prerequisites

  • Python 3.10+
  • ffmpeg (needed for get_frames and Whisper transcription)
    • macOS: brew install ffmpeg
    • Windows: winget install Gyan.FFmpeg (or choco install ffmpeg)
    • Linux: sudo apt install ffmpeg

2. Get the code and install dependencies

git clone https://github.com/s8zvp68zyn-ctrl/video-reader-mcp.git
cd video-reader-mcp
python3 -m venv .venv
# macOS / Linux:
./.venv/bin/pip install -r requirements.txt
# Windows (PowerShell):
#   .venv\Scripts\pip install -r requirements.txt

(Don't want the heavier Whisper dependency? Remove the faster-whisper line from requirements.txt before installing — platform captions still work.)

3. Test it before wiring it up

# macOS / Linux:
./.venv/bin/python test_tools.py "https://www.youtube.com/watch?v=jNQXAC9IVRw"
# Windows:
#   .venv\Scripts\python test_tools.py "https://www.youtube.com/watch?v=jNQXAC9IVRw"

You should see metadata, a few transcript lines, and test_frame_*.jpg files.

4. Connect it to your MCP client (e.g. Claude Desktop)

Add the server to your client's MCP config. For Claude Desktop, edit:

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

Use claude_desktop_config.example.json as a template — replace the /ABSOLUTE/PATH/TO/... placeholders with real absolute paths. On Windows the command path is ...\.venv\Scripts\python.exe. If the config already has other servers, just add the video-reader entry inside the existing mcpServers.

Then fully quit and reopen the app. New tools load when a fresh chat starts.


Cookies (for Facebook, Instagram, Douyin)

YouTube and TikTok work with no setup. The other three are login-walled, so the server needs your browser session as a cookies.txt (Netscape format). The easiest way — no extension needed — uses yt-dlp to export from your browser:

# Be logged into the sites in your browser first.
# For Douyin, also open douyin.com once so cookies are "fresh".
./.venv/bin/yt-dlp --cookies-from-browser chrome --cookies cookies.txt \
    --skip-download --no-warnings "https://www.youtube.com/watch?v=jNQXAC9IVRw"

Replace chrome with safari, edge, firefox, brave, etc. (On macOS you'll get a Keychain prompt for "Chrome Safe Storage" — allow it. If the cookie DB is locked, quit the browser and retry.)

Then point the server at the file via VIDEO_READER_COOKIES_FILE (see the config example).

Cookies expire (days to weeks). When Facebook/Instagram/Douyin suddenly stop working, just re-run the export above and restart your client.

⚠️ Security: cookies.txt is your live login session — it is git-ignored by default. Never commit or share it.


Configuration (environment variables)

Variable Default Purpose
VIDEO_READER_COOKIES_FILE (none) Path to your cookies.txt. Applied only to FB/IG/Douyin.
VIDEO_READER_COOKIES_BROWSER (none) Alternative: read cookies live from a browser (e.g. chrome). Often unreliable for background app processes — a file is more robust.
VIDEO_READER_DOWNLOAD_DIR ~/Downloads/video-reader Where download_media saves files.
VIDEO_READER_WHISPER_MODEL base Whisper size: tiny/base/small/medium/large-v3. Bigger = more accurate, slower.

Troubleshooting

  • Tools don't appear → invalid JSON in the config (no trailing commas, use straight quotes — don't edit it in a rich-text editor), or the client wasn't fully restarted.
  • YouTube: "No video formats found" → you attached cookies to YouTube. Don't — the server already skips cookies for YouTube/TikTok; make sure you didn't hard-code them elsewhere.
  • Facebook/Instagram errors → expired or missing cookies. Re-export.
  • Douyin: "Fresh cookies needed" / no data → re-export cookies after visiting douyin.com logged in. If it still fails, Douyin likely changed its page format; fix the parser in douyin.py (_extract_blob / _find_aweme).
  • A site stopped working generallypip install -U yt-dlp (platforms change often).

Legal / responsible use

This tool automates access to content you can already view in a browser. Scraping Facebook, Instagram and Douyin is against their Terms of Service, and those extractors are fragile by nature. Only access content you're authorized to view, respect copyright and platform rules, and use your own accounts at your own risk. Provided as-is under the MIT License.

Contributing

Issues and PRs welcome — especially keeping the Douyin parser and platform extractors working as the sites change.

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选