YouTube MCP
一个自动从 YouTube 视频中截取屏幕截图的工具。支持 YouTube Shorts 和 YouTube 视频。
功能
YouTube Shorts
每 n 秒截取一次屏幕截图
最多 60 张照片(如果视频长度为 60 秒或更长)
精确剪切视频区域并保存到
tmp/
实时查看屏幕截图
将所有或选定的图像以 ZIP 文件形式下载到本地(可在 Mac 和 Windows 上打开)
YouTube 视频
每 n 秒截取一次屏幕截图
最多 60 张照片(如果视频长度为 60 秒或更长)
精确剪切视频区域并保存到
tmp/
实时查看屏幕截图
将所有或选定的图像以 ZIP 文件形式下载到本地(可在 Mac 和 Windows 上打开)
TikTok
目前正在筹备中
请使用 YouTube 或 YouTube Shorts 网址
技术堆栈
Node.js 18
表达
剧作家
Firebase 函数(第二代)
Firebase 托管
Firebase 存储
TypeScript
引导 CSS
项目配置
API列表
截取屏幕截图
端点:
/screenshot
方法:POST
参数:
{ "url": "YouTube URL", "interval": 1 // 間隔(秒) }回复:
{ "success": true, "screenshots": [ { "imageUrl": "署名付きURL", "time": "タイムスタンプ", "filename": "ファイル名" } ], "interval": 1 }
获取截图列表
端点:
/screenshots
方法:GET
回复:
[ { "filename": "ファイル名", "imageUrl": "署名付きURL", "time": "タイムスタンプ" } ]
ZIP 下载
端点:
/download-zip
方法:POST
参数:
{ "filenames": ["ファイル名1", "ファイル名2"] }响应:ZIP 文件
GCP 架构
使用的服务
Firebase 函数(第二代)
运行时:Node.js 18
区域:us-central1
内存:1GiB
CPU:1
超时:540秒
最大实例数:100
并发:80
Firebase 存储
存储桶:mcp-5e4b5.firebasestorage.app
安全规则:仅限经过身份验证的用户访问
Firebase 托管
IAM 权限设置
用户权限
t@bonginkan.ai
roles/owner
(项目所有者)roles/run.admin
(Cloud Run 管理员)
服务帐户权限
云函数
33501462786-compute@developer.gserviceaccount.com
roles/run.admin
roles/run.developer
roles/run.invoker
roles/cloudfunctions.developer
roles/storage.admin
Firebase 管理员
firebase-adminsdk-fbsvc@mcp-5e4b5.iam.gserviceaccount.com
roles/firebase.sdkAdminServiceAgent
roles/firebaseauth.admin
roles/iam.serviceAccountTokenCreator
roles/storage.admin
云构建
33501462786@cloudbuild.gserviceaccount.com
roles/run.admin
roles/cloudfunctions.developer
roles/storage.admin
roles/artifactregistry.admin
roles/eventarc.admin
实现细节
截图功能
使用 Playwright 控制无头浏览器
视口尺寸:1280x720
使用临时目录存储屏幕截图
上传到 Firebase 存储后,删除临时文件。
签名 URL 有效期为 15 分钟
错误处理
捕获每个 API 端点的错误
以 JSON 格式返回错误消息。
处理 404 端点
500 错误的适当错误响应
CORS 设置
允许的来源:
允许的方法:GET、POST
凭证:有效
安全功能
Firebase 存储安全规则
设置签名 URL 的过期时间(15 分钟)
正确删除临时文件
最新修订(2024-03-28)
错误修复
改进的 CORS 配置
明确指定允许的来源
启用凭证
改进的错误处理
404 错误的 JSON 响应
500 错误的详细错误消息
Firebase 存储支持
明确指定存储桶名称
将签名 URL 的过期时间设置为 15 分钟
Cloud Functions Gen 2 优化
优化内存设置(1GiB)
调整超时设置(540秒)
设置并发执行数(80)
改进的功能
截图功能
优化 Playwright 设置
无头浏览器视口设置
改进的临时文件管理
改进了对 YouTube Shorts 的支持
实时显示功能实现
改进的 API 响应
日语错误信息
标准化响应格式
时间戳格式的标准化
实现流式响应
增强安全性
Firebase 存储安全规则更新
确保临时文件被删除
适当限制错误信息
前端改进
优化实时显示
图片URL修正
改进的错误处理
用户界面改进
设置
克隆存储库
安装依赖项
安装 Firebase CLI
登录 Firebase
初始化项目
部署
设置本地开发环境
安装依赖项
设置服务帐户密钥
从 Firebase 控制台下载您的服务帐号密钥
保存为
functions/service-account.json
设置环境变量
启动模拟器
仿真器端口设置
模拟器使用以下端口:
模拟器界面: http://127.0.0.1: 4001
API 测试
健康检查
截取屏幕截图
获取截图列表
ZIP 下载
笔记
使用模拟器时,您将访问实际的 Firebase 存储。
服务帐户密钥包含在
.gitignore
中,并且未提交到存储库您可以在模拟器 UI 中检查函数的执行状态和日志。
笔记
Node.js 18 将于 2025 年 4 月 30 日弃用
屏幕截图保存到临时目录并在处理后删除。
如果视频长度超过 60 秒,则只会保存前 60 张图像。
Firebase Storage 的安全规则设置为仅允许经过身份验证的用户访问。
签名 URL 的有效期仅为 15 分钟
重要的
保存屏幕截图和压缩文件的规范
保存屏幕截图
所有屏幕截图都临时保存在
/tmp/screenshots/
目录中。文件名的格式为
screenshot_[タイムスタンプ]_[連番].png
处理完成后,临时文件将被保留,并在您截取新屏幕截图时被覆盖。
创建 ZIP 文件
选定的屏幕截图将直接从
/tmp/screenshots/
加载下载后,将在
/tmp/screenshots/
中创建一个临时 ZIP 文件,然后删除该文件。ZIP 文件名的格式为
screenshots_[タイムスタンプ].zip
管理临时文件
应定期清理临时文件
我们建议在拍摄新截图之前删除旧截图。
执照
MIT 许可证
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
按照指定的时间间隔自动捕获和处理来自 YouTube 视频和 Shorts 的屏幕截图,支持可自定义的屏幕截图时间并提供用于图像管理的 API 端点。
Related MCP Servers
- -securityAlicense-qualityProvides functionality to search YouTube videos and automatically save the results to Google Sheets.Last updated -311MIT License
- AsecurityAlicenseAqualityEnables capturing high-quality native macOS screenshots using Safari through a Node.js server, supporting various sizes, zoom levels, and load wait times.Last updated -11MIT License
- -securityFlicense-qualityEnables extraction of transcript text from YouTube videos by providing the video URL, supporting standard, shortened, and embed URL formats.Last updated -71
- AsecurityAlicenseAqualityAn official MCP server implementation that allows AI assistants to capture website screenshots through the ScreenshotOne API, enabling visual context from web pages during conversations.Last updated -1031MIT License