Token导航 LogoToken导航TokenDH.com
MCP YouTube Extract logo
AI代理stdio官方级别未说明来源级核验

MCP YouTube Extract

MCP Server

一个无需API密钥即可提取YouTube视频元数据和字幕的MCP服务器工具,适用于内容分析和自动化处理。

工具数

0

提示词数

0

GitHub Stars

19

资源数

0
Python自动化AI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

sinjab

提供方

sinjab

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp-youtube-extract

详细介绍

MCP YouTube摘录

](https://badge.fury.io/py/mcp-youtube-extract) ![Python 3.13+](https://www.python.org/downloads/) ![License: MIT](https://opensource.org/licenses/MIT) ![Code style: black](https://github.com/psf/black)

用于YouTube操作的模型上下文协议(MCP)服务器,演示了MCP的核心概念,包括工具和日志记录。

✨ 不需要API密钥! 使用yt-info提取视频元数据和yt-ts提取转录本即可开箱即用。

特性

  • MCP服务器:功能齐全的MCP服务器,具有:

- 工具:从YouTube视频中提取信息,包括元数据和文字记录 - 综合录井:整个应用程序的详细日志记录 - 错误处理:采用回退逻辑对成绩单进行稳健的错误处理

  • YouTube集成:使用yt-info extract和yt-ts-extract内置YouTube功能:

- 提取视频信息(标题、描述、频道、发布日期、观看次数) - 使用智能回退逻辑获取视频转录 - 支持手动创建和自动生成的成绩单 - 基本功能不需要API密钥

📦 在PyPI上可用

此软件包现在可以在PyPI上使用!您可以通过以下方式直接安装:

pip install mcp-youtube-extract

访问套餐页面: PyPI上的mcp youtube摘录

安装

快速入门(推荐)

最简单的入门方法是从PyPI安装:

pip install mcp-youtube-extract

或者使用pipx(推荐用于命令行工具):

pipx install mcp-youtube-extract

这将安装所有依赖项的最新版本。然后,您可以直接运行MCP服务器:

mcp_youtube_extract

使用紫外线(显影)

对于开发或如果您喜欢紫外线:

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone and install the project
git clone https://github.com/sinjab/mcp_youtube_extract.git
cd mcp_youtube_extract

# Install dependencies (including dev dependencies)
uv sync --dev

# Set up your API key for development
cp .env.example .env
# Edit .env and add your YouTube API key

来源

  1. 克隆存储库:
   git clone https://github.com/sinjab/mcp_youtube_extract.git
   cd mcp_youtube_extract
  1. 在开发模式下安装:
   uv sync --dev

配置

环境变量

无需配置! 服务器使用yt-info extract进行元数据提取,开箱即用。

可选: 为了增强功能,您可以选择设置YouTube API密钥:

# Optional YouTube API Configuration
YOUTUBE_API_KEY=your_youtube_api_key_here

可选:

  • YOUTUBE_API_KEY:您的YouTube数据API密钥(可选,为元数据提取提供额外的回退)

获取YouTube API密钥(可选)

虽然不是必需的,但您可以选择设置YouTube数据API密钥以增强功能。以下是如何获得一个:

第一步:创建谷歌云项目

  1. 转到 谷歌云控制台
  2. 点击页面顶部的“选择项目”
  3. 点击“新建项目”并为其命名(例如,“MCP YouTube摘录”)
  4. 点击“创建”

步骤2:启用YouTube数据API

  1. 在您的新项目中,请转到 API库
  2. 搜索“YouTube数据API v3”
  3. 点击它,然后点击“启用”

步骤3:创建API凭据

  1. 转到 凭证页面
  2. 单击“创建凭据”并选择“API密钥”
  3. 将显示您的新API密钥-立即复制它
  4. 点击“限制密钥”以保护它(推荐)

步骤4:限制您的API密钥(推荐)

  1. 在API密钥设置中,单击“限制密钥”
  2. 在“API限制”下,选择“限制密钥”
  3. 从下拉列表中选择“YouTube Data API v3”
  4. 点击“保存”

步骤5:设置账单(必填)

  1. 转到 账单页面
  2. 将账单帐户链接到您的项目
  3. 备注:YouTube Data API每天有10000个单元的免费层,这通常足以满足大多数用例

API密钥使用限制

  • 免费等级:每天10000个单位
  • 成本:免费等级后每1000单位5美元
  • 备注:API密钥仅在yt-info-extract失败时用作回退
  • 大多数用户不需要API密钥,因为yt-info-extract处理大多数请求

安全最佳实践

  • 永远不要提交API密钥 到版本控制
  • 使用环境变量 如配置部分所示
  • 限制API密钥 仅限于YouTube数据API
  • 监控使用情况 在Google Cloud控制台中

用法

运行MCP服务器

使用PyPI安装(推荐)

# Install from PyPI
pip install mcp-youtube-extract

# Run the server
mcp_youtube_extract

使用开发设置

# Using uv
uv run mcp_youtube_extract

# Or directly
python -m mcp_youtube_extract.server

运行测试

# Run all pytest tests
uv run pytest

# Run specific pytest test
uv run pytest tests/test_with_api_key.py

# Run tests with coverage
uv run pytest --cov=src/mcp_youtube_extract --cov-report=term-missing

备注:The tests/ 目录包含4个文件:

  • test_context_fix.py -上下文API回退功能的Pytest测试
  • test_with_api_key.py -使用API密钥进行完整功能的Pytest测试
  • test_youtube_unit.py - 单元测试 YouTube核心功能
  • test_inspector.py - 独立检查脚本 (不是pytest测试)

测试覆盖率:该项目目前总体覆盖率为62%,核心功能覆盖率很高:

  • youtube.py:81%的覆盖率(核心业务逻辑)
  • logger.py:73%的覆盖率(测井工具)
  • server.py:22%的覆盖率(MCP协议处理)
  • __init__.py:100%覆盖率(包初始化)

运行检查脚本

test_inspector.py file是一个独立的脚本,它连接到MCP服务器并验证其功能:

# Run the inspection script to test server connectivity and functionality
uv run python tests/test_inspector.py

此脚本将:

  • 连接到MCP服务器
  • 列出可用的工具、资源和提示
  • 测试 get_yt_video_info 带有示例视频的工具
  • 验证服务器是否正常工作

使用YouTube工具

服务器提供了一个主要工具: get_yt_video_info

此工具获取YouTube视频ID并返回:

  • 通过yt信息提取视频元数据(标题、描述、频道、发布日期、观看次数)
  • 通过yt-ts提取视频转录(具有不同转录类型的回退逻辑)

示例用法:

# Extract video ID from YouTube URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
video_id = "dQw4w9WgXcQ"
result = get_yt_video_info(video_id)

客户端配置

要将此MCP服务器与客户端一起使用,请将以下配置添加到客户端的设置中:

使用PyPI安装(推荐)

{
  "mcpServers": {
    "mcp_youtube_extract": {
      "command": "mcp_youtube_extract"
    }
  }
}

带可选API密钥:

{
  "mcpServers": {
    "mcp_youtube_extract": {
      "command": "mcp_youtube_extract",
      "env": {
        "YOUTUBE_API_KEY": "your_youtube_api_key"
      }
    }
  }
}

使用开发设置

{
  "mcpServers": {
    "mcp_youtube_extract": {
      "command": "uv",
      "args": [
        "--directory",
        "",
        "run",
        "mcp_youtube_extract"
      ]
    }
  }
}

带可选API密钥:

{
  "mcpServers": {
    "mcp_youtube_extract": {
      "command": "uv",
      "args": [
        "--directory",
        "",
        "run",
        "mcp_youtube_extract"
      ],
      "env": {
        "YOUTUBE_API_KEY": "your_youtube_api_key"
      }
    }
  }
}

发展

项目结构

mcp_youtube_extract/
├── src/
│   └── mcp_youtube_extract/
│       ├── __init__.py
│       ├── server.py          # MCP server implementation
│       ├── google_api.py      # yt-info-extract integration
│       ├── transcript_api.py  # yt-ts-extract integration
│       ├── youtube.py         # Unified API facade
│       └── logger.py          # Logging configuration
├── tests/
│   ├── __init__.py
│   ├── test_context_fix.py    # Context API fallback tests
│   ├── test_inspector.py      # Server inspection tests
│   ├── test_with_api_key.py   # Full functionality tests
│   └── test_youtube_unit.py   # Unit tests for core functionality
├── logs/                      # Application logs
├── .env                       # Environment variables (create from .env.example)
├── .gitignore                 # Git ignore rules (includes coverage files)
├── pyproject.toml
├── LICENSE                    # MIT License
└── README.md

测试策略

该项目采用了一种全面的测试方法:

  1. 单元测试 (test_youtube_unit.py):使用模拟的yt信息提取测试YouTube核心功能
  2. 集成测试 (test_context_fix.py, test_with_api_key.py):测试服务器的完整功能
  3. 手动验证 (test_inspector.py):交互式服务器检查工具

错误处理

该项目包括稳健的错误处理:

  • 优雅的提取失败:返回适当的错误消息,而不是崩溃
  • 多种回退策略:yt-info-extract提供YouTube数据API、yt-dlp和pytubefix之间的自动回退
  • 转录回退逻辑:通过yt-ts提取实现转录检索的多种策略
  • 一致的错误响应:标准化错误消息格式
  • 综合录井:调试和监控的详细日志

建筑

# Install build dependencies
uv add --dev hatch

# Build the package
uv run hatch build

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

贡献

欢迎投稿!请随时提交拉取请求。

入门指南

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

支持

如果您遇到任何问题或有疑问,请:

  1. 检查 现有问题
  2. 使用有关您问题的详细信息创建新问题
  3. 在适用的情况下,包括日志和错误消息

目录标签

目录标签

Python自动化AI代理YouTube数据处理本地部署视频元数据字幕提取MCP协议自动化工具

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-keyremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP