Servidor MCP de YouTube a LinkedIn
Un servidor de Protocolo de Contexto de Modelo (MCP) que automatiza la generación de borradores de publicaciones de LinkedIn a partir de vídeos de YouTube. Este servidor proporciona borradores de contenido editables y de alta calidad basados en transcripciones de vídeos de YouTube.
Características
Extracción de transcripciones de YouTube : extraiga transcripciones de videos de YouTube mediante URL de videos
Resumen de transcripciones : genere resúmenes concisos de contenido de video utilizando OpenAI GPT
Generación de publicaciones en LinkedIn : crea borradores de publicaciones profesionales en LinkedIn con un tono y estilo personalizables.
Diseño de API modular : implementación limpia de FastAPI con puntos finales bien definidos
Implementación en contenedores : lista para implementarse en Smithery
Related MCP server: YouTube Translate MCP
Instrucciones de configuración
Prerrequisitos
Python 3.8+
Docker (para implementación en contenedores)
Clave API de OpenAI
Clave API de datos de YouTube (opcional, pero recomendada para obtener mejores metadatos)
Desarrollo local
Clonar el repositorio:
git clone <repository-url> cd yt-to-linkedinCree un entorno virtual e instale dependencias:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txtCrea un archivo
.enven la raíz del proyecto con tus claves API:OPENAI_API_KEY=your_openai_api_key YOUTUBE_API_KEY=your_youtube_api_keyEjecute la aplicación:
uvicorn app.main:app --reloadAcceda a la documentación de la API en http://localhost:8000/docs
Implementación de Docker
Construya la imagen de Docker:
docker build -t yt-to-linkedin-mcp .Ejecute el contenedor:
docker run -p 8000:8000 --env-file .env yt-to-linkedin-mcp
Despliegue de herrería
Asegúrese de tener la CLI de Smithery instalada y configurada.
Implementar en Smithery:
smithery deploy
Puntos finales de API
1. Extracción de la transcripción
Punto final : /api/v1/transcript
Método : POST
Descripción : Extraer la transcripción de un vídeo de YouTube
Cuerpo de la solicitud :
{
"youtube_url": "https://www.youtube.com/watch?v=VIDEO_ID",
"language": "en",
"youtube_api_key": "your_youtube_api_key" // Optional, provide your own YouTube API key
}Respuesta :
{
"video_id": "VIDEO_ID",
"video_title": "Video Title",
"transcript": "Full transcript text...",
"language": "en",
"duration_seconds": 600,
"channel_name": "Channel Name",
"error": null
}2. Resumen de la transcripción
Punto final : /api/v1/summarize
Método : POST
Descripción : Generar un resumen a partir de una transcripción de video
Cuerpo de la solicitud :
{
"transcript": "Video transcript text...",
"video_title": "Video Title",
"tone": "professional",
"audience": "general",
"max_length": 250,
"min_length": 150,
"openai_api_key": "your_openai_api_key" // Optional, provide your own OpenAI API key
}Respuesta :
{
"summary": "Generated summary text...",
"word_count": 200,
"key_points": [
"Key point 1",
"Key point 2",
"Key point 3"
]
}3. Generación de publicaciones en LinkedIn
Punto final : /api/v1/generate-post
Método : POST
Descripción : Generar una publicación de LinkedIn a partir de un resumen de video
Cuerpo de la solicitud :
{
"summary": "Video summary text...",
"video_title": "Video Title",
"video_url": "https://www.youtube.com/watch?v=VIDEO_ID",
"speaker_name": "Speaker Name",
"hashtags": ["ai", "machinelearning"],
"tone": "professional",
"voice": "first_person",
"audience": "technical",
"include_call_to_action": true,
"max_length": 1200,
"openai_api_key": "your_openai_api_key" // Optional, provide your own OpenAI API key
}Respuesta :
{
"post_content": "Generated LinkedIn post content...",
"character_count": 800,
"estimated_read_time": "About 1 minute",
"hashtags_used": ["#ai", "#machinelearning"]
}4. Formato de salida
Punto final : /api/v1/output
Método : POST
Descripción : Dar formato a la publicación de LinkedIn para su salida.
Cuerpo de la solicitud :
{
"post_content": "LinkedIn post content...",
"format": "json"
}Respuesta :
{
"content": {
"post_content": "LinkedIn post content...",
"character_count": 800
},
"format": "json"
}Variables de entorno
Variable | Descripción | Requerido |
CLAVE API DE OPENAI | Clave API de OpenAI para resumen y generación posterior | No (se puede proporcionar en las solicitudes) |
CLAVE DE API DE YOUTUBE | Clave API de datos de YouTube para obtener metadatos de video | No (se puede proporcionar en las solicitudes) |
PUERTO | Puerto donde ejecutar el servidor (predeterminado: 8000) | No |
Nota : Si bien las variables de entorno para las claves API son opcionales (ya que se pueden proporcionar en cada solicitud), se recomienda configurarlas para el desarrollo y las pruebas locales. Al implementar en Smithery, los usuarios deberán proporcionar sus propias claves API en las solicitudes.
Licencia
Instituto Tecnológico de Massachusetts (MIT)