YouTube管理工具

通过MCP协议连接Claude与YouTube账户,支持视频、播放列表、评论、字幕和频道管理的本地化工具。

  • by fmenguy
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 fmenguy/ClaudeTube

使用说明

ClaudeTube

MCP服务器将Claude连接到您的YouTube帐户。

直接从Claude管理您的视频、播放列表、评论、字幕和频道。

最初,我创建这个工具来管理我自己的游戏频道 脱氯铜矿作为一名创作者,我希望能够直接从Claude控制我的频道,而不离开我的工作流程。该项目向所有希望这样做的YouTube创作者开放。


法语 | 英语


堆叠技术

组件 技术
运行时 Node.js 18+
语言 TypeScript(严格模式)
协议 模型上下文协议(MCP) @modelcontextprotocol/sdk
API YouTube数据API v3通过 googleapis
自动刷新的OAuth 2.0身份验证
加密 AES-256-GCM(静止令牌)
验证 Zod(schémas运行时)

安全

ClaudeTube的设计以安全为重。没有妥协。

测量 细节
OAuth 2.0 标准协议。没有操纵YouTube密码。
AES-256-GCM加密 令牌在静止时通过操作和通过身份验证标签进行完整性检查,使用随机IV进行加密。
没有远程服务器 MCP服务器仅在本地运行。数据仅在您的机器和Google API之间传输。
最小最大范围 授权时只需要严格必要的YouTube范围。
明确确认 任何破坏性操作(删除视频、播放列表、评论)都需要一个参数 confirm: true.
输入验证 在任何API调用之前,Regex都会验证YouTube ID。文本被消毒(删除控制字符)。
文件权限 令牌目录创建于 0700,文件 0600.
Architecture de chiffrement
Clé source (env var ou dérivée du homedir)
    |
    v
SHA-256 → Clé AES-256 (32 bytes)
    |
    v
Chiffrement AES-256-GCM
    - IV aléatoire (16 bytes) par opération
    - Authentication tag (16 bytes) pour l'intégrité
    - Résultat stocké en JSON : { iv, tag, data }

令牌从未以明文形式写入磁盘。

可用工具(27)

认证

输出 描述
auth 生成OAuth 2.0授权URL
auth_callback 使用授权代码完成连接
auth_status 检查连接状态并显示频道信息
auth_revoke 断开连接并删除存储的令牌

视频

输出 描述
list_my_videos 列出您频道的视频(标题、统计数据、状态)
get_video 视频的完整详细信息(元数据、统计数据、标签)
update_video 更改标题、描述、标签、类别、隐私
delete_video 删除视频(需要确认)
rate_video 喜欢、不喜欢或删除注释

播放列表

输出 描述
list_my_playlists 列出所有播放列表
create_playlist 创建新播放列表
update_playlist 更改标题、描述和隐私
delete_playlist 删除播放列表(需要确认)
list_playlist_items 从播放列表中列出视频
add_to_playlist 将视频添加到播放列表
remove_from_playlist 从播放列表中删除视频

评论

输出 描述
list_comments 列出视频评论
post_comment 在视频上发表评论
reply_to_comment 回复现有评论
delete_comment 删除评论(需要确认)
moderate_comment 批准、拒绝或标记为垃圾邮件

链

输出 描述
get_my_channel 您频道的完整信息
update_my_channel 更改描述、关键字、语言、国家

字幕

输出 描述
list_captions 列出视频的字幕
download_caption 下载字幕(SRT、SBV、VTT)
delete_caption 删除字幕(需要确认)

研究

输出 描述
search_youtube 在YouTube上搜索视频、频道或播放列表

安装

先决条件

  • Node.js 18或更高版本
  • 启用YouTube数据API v3的Google云项目
  • OAuth 2.0标识符(“桌面应用程序”类型)

1.创建Google ID

  1. 访问 谷歌云控制台
  2. 创建项目或选择现有项目
  3. 能够API YouTube数据v3 在 API库
  4. 进去 标识符 > 创建标识符 > 身份客户端OAuth 2.0
  5. d类应用: 申请局
  6. 注意 Client ID 等等 Client Secret

2.安装器ClaudeTube

git clone https://github.com/fmenguy/ClaudeTube.git
cd ClaudeTube
npm install
npm run build

3.配置器Claude

选项A——克劳德代码(CLI/VS代码/JetBrains)

创建文件 .mcp.json 在项目的根源:

{
  "mcpServers": {
    "claudetube": {
      "command": "node",
      "args": ["/chemin/vers/ClaudeTube/dist/index.js"],
      "env": {
        "YOUTUBE_CLIENT_ID": "votre-client-id.apps.googleusercontent.com",
        "YOUTUBE_CLIENT_SECRET": "votre-client-secret"
      }
    }
  }
}

添加 .mcp.json 给你的 .gitignore 为了不暴露你的秘密。

选项B——克劳德桌面

将以下配置添加到文件中 claude_desktop_config.json :

{
  "mcpServers": {
    "claudetube": {
      "command": "node",
      "args": ["/chemin/vers/ClaudeTube/dist/index.js"],
      "env": {
        "YOUTUBE_CLIENT_ID": "votre-client-id.apps.googleusercontent.com",
        "YOUTUBE_CLIENT_SECRET": "votre-client-secret"
      }
    }
  }
}

4.联系

重新启动Claude后,只需询问:

“登录我的YouTube帐户”

Claude将通过该工具生成授权链接 auth,然后将完成与的连接 auth_callback令牌被加密并存储在本地。

环境变量

变量 请求 描述
YOUTUBE_CLIENT_ID 是 客户端ID OAuth 2.0 Google
YOUTUBE_CLIENT_SECRET 是的 秘密客户端OAuth 2.0谷歌
YOUTUBE_REDIRECT_URI 非 URI重定向(错误: urn:ietf:wg:oauth:2.0:oob)
CLAUDETUBE_TOKEN_PATH 否 加密令牌的存储路径(默认: ~/.claudetube/tokens.enc)
CLAUDETUBE_ENCRYPTION_KEY 否 令牌的自定义加密密钥

使用示例

"Liste mes 5 dernières vidéos"
→ list_my_videos(maxResults: 5)

"Mets la vidéo dQw4w9WgXcQ en non-répertorié"
→ update_video(videoId: "dQw4w9WgXcQ", privacyStatus: "unlisted")

"Crée une playlist 'Best of 2024' et ajoutes-y ces 3 vidéos"
→ create_playlist + add_to_playlist x3

"Réponds 'Merci !' aux 5 derniers commentaires sur ma vidéo"
→ list_comments + reply_to_comment x5

"Quels sous-titres sont disponibles sur ma dernière vidéo ?"
→ list_my_videos(maxResults: 1) + list_captions

项目建筑

src/
├── index.ts              Point d'entrée MCP, enregistrement des outils
├── auth/
│   └── oauth.ts          OAuth 2.0 flow, chiffrement et stockage des tokens
├── tools/
│   ├── videos.ts         Gestion des vidéos (CRUD + rating)
│   ├── playlists.ts      Gestion des playlists (CRUD + items)
│   ├── comments.ts       Commentaires (CRUD + modération)
│   ├── channel.ts        Informations et modification de la chaîne
│   ├── captions.ts       Sous-titres (list, download, delete)
│   └── search.ts         Recherche YouTube
└── utils/
    ├── errors.ts         Gestion d'erreurs API centralisée
    └── validation.ts     Validation et sanitisation des entrées

英语

MCP服务器将Claude连接到您的YouTube帐户。

直接从Claude管理您的视频、播放列表、评论、字幕和频道。

我最初构建这个工具是为了管理我自己的游戏频道 脱氯铜矿作为一名创作者,我想直接从克劳德那里控制我的频道,而不离开我的工作流程。该项目对所有想做同样事情的YouTube创作者开放。


技术栈

组件 技术
运行时 Node.js 18+
语言 TypeScript(严格模式)
协议 模型上下文协议(MCP) @modelcontextprotocol/sdk
API YouTube数据API v3通过 googleapis
身份验证 OAuth 2.0自动刷新
加密 AES-256-GCM(静止令牌)
验证 Zod(运行时模式)

安全

ClaudeTube以安全为首要任务。没有妥协。

度量 详细信息
OAuth 2.0 行业标准协议。您的YouTube密码永远不会被处理。
AES-256-GCM加密 令牌在静止时使用随机IV进行加密,并通过身份验证标签进行完整性验证。
无远程服务器 MCP服务器仅在本地计算机上运行。数据仅在您和Google的API之间流动。
最小范围 授权期间只要求严格必要的YouTube范围。
明确确认 每一个破坏性行为(视频、播放列表、评论删除)都需要 confirm: true 参数。
输入验证 YouTube标识符在任何API调用之前通过regex进行验证。文本输入被净化(控制字符被删除)。
文件权限 令牌目录是通过以下方式创建的 0700,令牌文件 0600.
Encryption architecture
Key source (env var or derived from homedir)
    |
    v
SHA-256 → AES-256 key (32 bytes)
    |
    v
AES-256-GCM encryption
    - Random IV (16 bytes) per operation
    - Authentication tag (16 bytes) for integrity
    - Stored as JSON: { iv, tag, data }

令牌从不以明文形式写入磁盘。

可用工具(27)

认证

工具 说明
auth 生成OAuth 2.0授权URL
auth_callback 使用授权码完成连接
auth_status 检查连接状态并显示频道信息
auth_revoke 断开连接并删除存储的令牌

视频

工具 说明
list_my_videos 列出您频道的视频(标题、统计数据、状态)
get_video 完整的视频细节(元数据、统计数据、标签)
update_video 更新标题、描述、标签、类别、隐私
delete_video 删除视频(需要确认)
rate_video 喜欢、不喜欢或删除评级

播放列表

工具 说明
list_my_playlists 列出您的所有播放列表
create_playlist 创建新的播放列表
update_playlist 更新标题、描述、隐私
delete_playlist 删除播放列表(需要确认)
list_playlist_items 在播放列表中列出视频
add_to_playlist 将视频添加到播放列表
remove_from_playlist 从播放列表中删除视频

评论

工具 说明
list_comments 列出对视频的评论
post_comment 对视频发表评论
reply_to_comment 对现有评论的回复
delete_comment 删除评论(需要确认)
moderate_comment 批准、拒绝或标记为垃圾邮件

频道

工具 说明
get_my_channel 完整频道信息
update_my_channel 更新描述、关键字、语言、国家

字幕

工具 说明
list_captions 列出视频的字幕
download_caption 下载字幕曲目(SRT、SBV、VTT)
delete_caption 删除字幕曲目(需要确认)

搜索

工具 说明
search_youtube 在YouTube上搜索视频、频道或播放列表

安装

先决条件

  • Node.js 18或更高版本
  • 启用了YouTube Data API v3的Google Cloud项目
  • OAuth 2.0凭据(桌面应用程序类型)

1.创建Google凭据

  1. 首选 谷歌云控制台
  2. 创建项目或选择现有项目
  3. 启用 YouTube数据API v3 在 API库
  4. 首选 凭证 > 创建凭据 > OAuth 2.0客户端ID
  5. 应用程序类型: 桌面应用程序
  6. 记下 Client ID 和 Client Secret

2.安装排气管

git clone https://github.com/fmenguy/ClaudeTube.git
cd ClaudeTube
npm install
npm run build

3.配置Claude

选项A——克劳德代码(CLI/VS代码/JetBrains)

创建一个 .mcp.json 项目根目录下的文件:

{
  "mcpServers": {
    "claudetube": {
      "command": "node",
      "args": ["/path/to/ClaudeTube/dist/index.js"],
      "env": {
        "YOUTUBE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
        "YOUTUBE_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

添加 .mcp.json 到你的 .gitignore 保护你的秘密安全。

选项B——克劳德桌面

将以下内容添加到您的 claude_desktop_config.json 文件:

{
  "mcpServers": {
    "claudetube": {
      "command": "node",
      "args": ["/path/to/ClaudeTube/dist/index.js"],
      "env": {
        "YOUTUBE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
        "YOUTUBE_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

4.连接

重启克劳德后,只需问:

“连接到我的YouTube帐户”

Claude将通过以下方式生成授权链接 auth 工具,然后使用完成连接 auth_callback令牌被加密并存储在本地。

环境变量

变量 必填 描述
YOUTUBE_CLIENT_ID 是 谷歌OAuth 2.0客户端ID
YOUTUBE_CLIENT_SECRET 是 谷歌OAuth 2.0客户端密码
YOUTUBE_REDIRECT_URI 否 重定向URI(默认值: urn:ietf:wg:oauth:2.0:oob)
CLAUDETUBE_TOKEN_PATH 否 加密令牌存储路径(默认值: ~/.claudetube/tokens.enc)
CLAUDETUBE_ENCRYPTION_KEY 否 令牌的自定义加密密钥

用法示例

"List my last 5 videos"
→ list_my_videos(maxResults: 5)

"Set video dQw4w9WgXcQ to unlisted"
→ update_video(videoId: "dQw4w9WgXcQ", privacyStatus: "unlisted")

"Create a playlist 'Best of 2024' and add these 3 videos"
→ create_playlist + add_to_playlist x3

"Reply 'Thanks!' to the last 5 comments on my video"
→ list_comments + reply_to_comment x5

项目结构

src/
├── index.ts              MCP entry point, tool registration
├── auth/
│   └── oauth.ts          OAuth 2.0 flow, token encryption & storage
├── tools/
│   ├── videos.ts         Video management (CRUD + rating)
│   ├── playlists.ts      Playlist management (CRUD + items)
│   ├── comments.ts       Comments (CRUD + moderation)
│   ├── channel.ts        Channel info & updates
│   ├── captions.ts       Captions (list, download, delete)
│   └── search.ts         YouTube search
└── utils/
    ├── errors.ts         Centralized API error handling
    └── validation.ts     Input validation & sanitization

许可证

麻省理工学院——见 许可证