视频转LinkedIn帖子生成器

一款自动化从YouTube视频生成LinkedIn帖子草稿的服务器,提供基于视频转录的高质量可编辑内容。

  • by NvkAnirudh
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 nvkanirudh/yt-to-linkedin-mcp-server

使用说明

YouTube到LinkedIn MCP服务器

一种模型上下文协议(MCP)服务器,可自动从YouTube视频生成LinkedIn帖子草稿。该服务器基于YouTube视频转录提供高质量、可编辑的内容草稿。

特性

  • YouTube转录提取:使用视频URL从YouTube视频中提取文字记录
  • 成绩单摘要:使用OpenAI GPT生成视频内容的简明摘要
  • LinkedIn帖子生成:用可定制的语气和风格创建专业的LinkedIn帖子草稿
  • 模块化API设计:具有明确端点的干净FastAPI实现
  • 容器化部署:已准备好在Smithery部署

安装说明

先决条件

  • Python 3.8+
  • Docker(用于容器化部署)
  • OpenAI API密钥
  • YouTube数据API密钥(可选,但建议用于更好的元数据)

地方发展

  1. 克隆存储库:

    git clone <repository-url>
    cd yt-to-linkedin
    
  2. 创建虚拟环境并安装依赖项:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -r requirements.txt
    
  3. 创建一个 .env 使用API密钥在项目根目录中创建文件:

    OPENAI_API_KEY=your_openai_api_key
    YOUTUBE_API_KEY=your_youtube_api_key
    
  4. 运行应用程序:

    uvicorn app.main:app --reload
    
  5. 访问API文档:http://localhost:8000/docs

Docker部署

  1. 构建Docker镜像:

    docker build -t yt-to-linkedin-mcp .
    
  2. 运行容器:

    docker run -p 8000:8000 --env-file .env yt-to-linkedin-mcp
    

Smithery部署

  1. 确保已安装并配置Smithery CLI。

  2. 部署到Smithery:

    smithery deploy
    

API终点

1.转录提取

端点: /api/v1/transcript
方法:POST
描述:从YouTube视频中提取文字记录

请求正文:

{
  "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
}

响应:

{
  "video_id": "VIDEO_ID",
  "video_title": "Video Title",
  "transcript": "Full transcript text...",
  "language": "en",
  "duration_seconds": 600,
  "channel_name": "Channel Name",
  "error": null
}

2.成绩单摘要

端点: /api/v1/summarize
方法:POST
描述:从视频记录中生成摘要

请求正文:

{
  "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
}

响应:

{
  "summary": "Generated summary text...",
  "word_count": 200,
  "key_points": [
    "Key point 1",
    "Key point 2",
    "Key point 3"
  ]
}

3.LinkedIn帖子生成

端点: /api/v1/generate-post
方法:POST
描述:根据视频摘要生成LinkedIn帖子

请求正文:

{
  "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
}

响应:

{
  "post_content": "Generated LinkedIn post content...",
  "character_count": 800,
  "estimated_read_time": "About 1 minute",
  "hashtags_used": ["#ai", "#machinelearning"]
}

4.输出格式

端点: /api/v1/output
方法:POST
描述:格式化LinkedIn帖子以供输出

请求正文:

{
  "post_content": "LinkedIn post content...",
  "format": "json"
}

响应:

{
  "content": {
    "post_content": "LinkedIn post content...",
    "character_count": 800
  },
  "format": "json"
}

环境变量

变量 描述 必填
OPENAI_API_KEY 用于摘要和后期生成的OPENAI API密钥 否(可在请求中提供)
YOUTUBE_API_KEY 用于获取视频元数据的YOUTUBE数据API密钥 否(可在请求中提供)
PORT 运行服务器的端口(默认值:8000) 否

备注:虽然API键的环境变量是可选的(因为它们可以在每个请求中提供),但建议为本地开发和测试设置它们。当部署到Smithery时,用户需要在请求中提供自己的API密钥。

许可证

麻省理工学院