YouTube MCP
Una herramienta para tomar capturas de pantalla automáticamente de videos de YouTube. Admite YouTube Shorts y vídeos de YouTube.
función
Cortos de YouTube
- Tomar una captura de pantalla cada n segundos
- Hasta 60 tomas (si el vídeo dura 60 segundos o más)
- Recorta con precisión solo el área de video y guárdala en
tmp/
- Ver capturas de pantalla en tiempo real
- Descargue todas las imágenes o las seleccionadas localmente como un archivo ZIP (se abre tanto en Mac como en Windows)
Vídeos de YouTube
- Tomar una captura de pantalla cada n segundos
- Hasta 60 tomas (si el vídeo dura 60 segundos o más)
- Recorta con precisión solo el área de video y guárdala en
tmp/
- Ver capturas de pantalla en tiempo real
- Descargue todas las imágenes o las seleccionadas localmente como un archivo ZIP (se abre tanto en Mac como en Windows)
TikTok
- Actualmente en preparación
- Utilice una URL de YouTube o YouTube Shorts
Pila de tecnología
- Node.js 18
- Expresar
- Dramaturgo
- Funciones de Firebase (Gen 2)
- Alojamiento de Firebase
- Almacenamiento de Firebase
- Mecanografiado
- CSS de Bootstrap
Configuración del proyecto
Lista de API
Tomar captura de pantalla
- Punto final :
/screenshot
- Método : POST
- Parámetros :
- respuesta :
Obtener lista de capturas de pantalla
- Punto final :
/screenshots
- Método : OBTENER
- respuesta :
Descarga ZIP
- Punto final :
/download-zip
- Método : POST
- Parámetros :
- Respuesta : Archivo ZIP
Arquitectura de GCP
Servicios utilizados
- Funciones de Firebase (Gen 2)
- Tiempo de ejecución: Node.js 18
- Región: us-central1
- Memoria: 1 GiB
- Procesador: 1
- Tiempo de espera: 540 segundos
- Número máximo de instancias: 100
- Concurrencia: 80
- Punto final: https://api-ub7zp5pjra-uc.a.run.app
- Almacenamiento de Firebase
- Cubo: mcp-5e4b5.firebasestorage.app
- Reglas de seguridad: Acceso sólo a usuarios autenticados
- Alojamiento de Firebase
- Dominio: https://mcp-5e4b5.web.app
Configuración de permisos de IAM
Permisos de usuario
t@bonginkan.ai
roles/owner
(propietario del proyecto)roles/run.admin
(administrador de Cloud Run)
Permisos de la cuenta de servicio
- Funciones en la nube
33501462786-compute@developer.gserviceaccount.com
roles/run.admin
roles/run.developer
roles/run.invoker
roles/cloudfunctions.developer
roles/storage.admin
- Administrador de Firebase
firebase-adminsdk-fbsvc@mcp-5e4b5.iam.gserviceaccount.com
roles/firebase.sdkAdminServiceAgent
roles/firebaseauth.admin
roles/iam.serviceAccountTokenCreator
roles/storage.admin
- Construcción en la nube
33501462786@cloudbuild.gserviceaccount.com
roles/run.admin
roles/cloudfunctions.developer
roles/storage.admin
roles/artifactregistry.admin
roles/eventarc.admin
Detalles de implementación
Función de captura de pantalla
- Controlar navegadores sin cabeza con Playwright
- Tamaño de la ventana gráfica: 1280x720
- Utilice un directorio temporal para almacenar capturas de pantalla
- Después de cargar en Firebase Storage, elimine el archivo temporal.
- Las URL firmadas son válidas durante 15 minutos.
Manejo de errores
- Detectar errores en cada punto final de la API
- Devuelve un mensaje de error en formato JSON.
- Manejo de puntos finales 404
- Respuesta de error apropiada para errores 500
Configuración de CORS
- Orígenes permitidos:
- Métodos permitidos: GET, POST
- Credenciales: Válidas
Características de seguridad
- Reglas de seguridad de almacenamiento de Firebase
- Establecer tiempo de expiración para URL firmadas (15 minutos)
- Eliminar correctamente los archivos temporales
Últimas revisiones (28/03/2024)
Corrección de errores
- Configuración CORS mejorada
- Especificar explícitamente los orígenes permitidos
- Habilitación de credenciales
- Manejo de errores mejorado
- Respuesta JSON para errores 404
- Mensaje de error detallado para errores 500
- Compatibilidad con almacenamiento de Firebase
- Especificar un nombre de depósito explícitamente
- Establezca el tiempo de expiración de las URL firmadas en 15 minutos
- Optimizaciones de Cloud Functions Gen 2
- Optimizar la configuración de memoria (1 GiB)
- Ajustar la configuración del tiempo de espera (540 segundos)
- Establecer el número de ejecuciones simultáneas (80)
Funciones mejoradas
- Función de captura de pantalla
- Optimización de la configuración de Playwright
- Configuración de la ventana gráfica del navegador sin cabeza
- Gestión mejorada de archivos temporales
- Soporte mejorado para YouTube Shorts
- Implementación de la función de visualización en tiempo real
- Respuesta de API mejorada
- Mensajes de error en japonés
- Formato de respuesta estandarizado
- Estandarización de formatos de marcas de tiempo
- Implementación de una respuesta de streaming
- Seguridad mejorada
- Actualización de las reglas de seguridad de Firebase Storage
- Asegúrese de que se eliminen los archivos temporales
- Restricción adecuada de la información de error
- Mejoras en la interfaz
- Optimización de la visualización en tiempo real
- Corrección de URL de la imagen
- Manejo de errores mejorado
- Mejoras en la interfaz de usuario
configuración
- Clonar el repositorio
- Instalación de dependencias
- Instalar Firebase CLI
- Iniciar sesión en Firebase
- Inicializando el proyecto
- Desplegar
Creación de un entorno de desarrollo local
- Instalación de dependencias
- Configuración de la clave de la cuenta de servicio
- Descargue la clave de su cuenta de servicio desde la consola de Firebase
- Guardar como
functions/service-account.json
- Configuración de variables de entorno
- Iniciando el emulador
Configuración del puerto del emulador
El emulador utiliza los siguientes puertos:
- Funciones: http://127.0.0.1:5001
- Interfaz de usuario del emulador: http://127.0.0.1:4001
Pruebas de API
- Chequeo de salud
- Tomar captura de pantalla
- Obtener lista de capturas de pantalla
- Descarga ZIP
Notas
- Al usar el emulador, accederá al almacenamiento real de Firebase.
- La clave de la cuenta de servicio está incluida en
.gitignore
y no está comprometida con el repositorio - Puede comprobar el estado de ejecución y los registros de las funciones en la interfaz de usuario del emulador.
Notas
- Node.js 18 quedará obsoleto el 30 de abril de 2025
- Las capturas de pantalla se guardan en un directorio temporal y se eliminan después del procesamiento.
- Si el vídeo dura más de 60 segundos, solo se guardarán las primeras 60 imágenes.
- Las reglas de seguridad de Firebase Storage están configuradas para permitir el acceso solo a usuarios autenticados.
- Las URL firmadas solo son válidas durante 15 minutos
IMPORTANTE
Especificaciones para guardar capturas de pantalla y comprimirlas
- Guardar una captura de pantalla
- Todas las capturas de pantalla se guardan temporalmente en
/tmp/screenshots/
. - El nombre del archivo tiene el formato
screenshot_[タイムスタンプ]_[連番].png
- El archivo temporal se conservará una vez finalizado el procesamiento y se sobrescribirá cuando tome una nueva captura de pantalla.
- Todas las capturas de pantalla se guardan temporalmente en
- Creando un archivo ZIP
- La captura de pantalla seleccionada se cargará directamente desde
/tmp/screenshots/
- Se creará un archivo ZIP temporal en
/tmp/screenshots/
y luego se eliminará después de la descarga. - El nombre del archivo ZIP tiene el formato
screenshots_[タイムスタンプ].zip
- La captura de pantalla seleccionada se cargará directamente desde
- Administrar archivos temporales
- Los archivos temporales deben limpiarse periódicamente
- Recomendamos eliminar las capturas de pantalla antiguas antes de tomar otras nuevas.
licencia
Licencia 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.
Captura y procesa automáticamente capturas de pantalla de videos y cortos de YouTube en intervalos específicos, admite tiempos de captura de pantalla personalizables y proporciona puntos finales de API para la gestión de imágenes.
Related MCP Servers
- -securityAlicense-qualityProvides functionality to search YouTube videos and automatically save the results to Google Sheets.Last updated -19JavaScriptMIT 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 -17TypeScriptMIT License
- -securityFlicense-qualityEnables extraction of transcript text from YouTube videos by providing the video URL, supporting standard, shortened, and embed URL formats.Last updated -1JavaScript
- 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 -16TypeScriptMIT License