名称: youtube-自动化 描述: “通过Rube MCP (Composio) 自动化YouTube任务:上传视频、管理播放列表、搜索内容、获取分析、处理评论。始终先搜索工具以获取当前模式。” 需要: mcp: [rube] 类别: 社交媒体
通过Rube MCP的YouTube自动化
通过Composio的YouTube工具包通过Rube MCP自动化YouTube操作。
工具包文档: composio.dev/toolkits/youtube
前提条件
- Rube MCP必须已连接(RUBE_SEARCH_TOOLS可用)
- 通过
RUBE_MANAGE_CONNECTIONS与工具包youtube的YouTube连接处于活动状态 - 始终先调用
RUBE_SEARCH_TOOLS以获取当前工具模式
设置
获取Rube MCP: 在客户端配置中添加https://rube.app/mcp作为MCP服务器。无需API密钥—仅添加端点即可工作。
- 通过确认
RUBE_SEARCH_TOOLS响应验证Rube MCP可用 - 使用工具包
youtube调用RUBE_MANAGE_CONNECTIONS - 如果连接未处于活动状态,按照返回的授权链接完成Google OAuth
- 在运行任何工作流前确认连接状态显示为活动
核心工作流
1. 上传和管理视频
何时使用: 用户希望上传视频或更新视频元数据
工具序列:
YOUTUBE_UPLOAD_VIDEO- 上传新视频 [必填]YOUTUBE_UPDATE_VIDEO- 更新标题、描述、标签、隐私 [可选]YOUTUBE_UPDATE_THUMBNAIL- 设置自定义缩略图 [可选]
关键参数:
title: 视频标题(最多100个字符)description: 视频描述(最多5000字节)tags: 关键词标签数组categoryId: YouTube类别ID(例如,'22’表示人物与博客)privacyStatus: ‘public’、‘private’或’unlisted’videoFilePath: 视频文件对象,格式为{name, mimetype, s3key}
陷阱:
- UPLOAD_VIDEO消耗高配额;首选UPDATE_VIDEO用于仅元数据更改
- videoFilePath必须是包含s3key的对象,而不是原始文件路径或URL
- 标签总字符数不得超过500,包括分隔符
- 标签中的尖括号
< >会自动去除 - 描述限制为5000字节,而非字符(多字节字符占用更多)
2. 搜索YouTube内容
何时使用: 用户希望查找视频、频道或播放列表
工具序列:
YOUTUBE_SEARCH_YOU_TUBE- 搜索内容 [必填]YOUTUBE_VIDEO_DETAILS- 获取特定视频的完整详细信息 [可选]YOUTUBE_GET_VIDEO_DETAILS_BATCH- 获取多个视频的详细信息 [可选]
关键参数:
q: 搜索查询(支持精确短语、排除、频道句柄)type: ‘video’、‘channel’或’playlist’maxResults: 每页结果数(1-50)pageToken: 用于分页
陷阱:
- 搜索端点仅返回’snippet’部分;使用VIDEO_DETAILS获取统计信息
- 搜索结果上限为500个项目
- 搜索配额成本较高(100单位),对比列表端点(1单位)
- 批量视频详细信息实用限制为每次调用约50个ID;分块处理较大集合
3. 管理播放列表
何时使用: 用户希望创建播放列表或管理播放列表内容
工具序列:
YOUTUBE_LIST_USER_PLAYLISTS- 列出用户现有播放列表 [可选]YOUTUBE_CREATE_PLAYLIST- 创建新播放列表 [可选]YOUTUBE_ADD_VIDEO_TO_PLAYLIST- 将视频添加到播放列表 [可选]YOUTUBE_LIST_PLAYLIST_ITEMS- 列出播放列表中的视频 [可选]
关键参数:
playlistId: 播放列表ID(用户创建为’PL…‘,上传为’UU…’)part: 要包含的资源部分(例如,‘snippet,contentDetails’)maxResults: 每页项目数(1-50)pageToken: 从先前响应获取的分页令牌
陷阱:
- 不要将频道ID(‘UC…’)作为播放列表ID传递;为上传转换’UC’为’UU’
- 大型播放列表需要通过pageToken分页;遵循nextPageToken直到不存在
- items[].id不是videoId;使用items[].snippet.resourceId.videoId
- 允许创建重复播放列表名称;先检查现有播放列表
4. 获取频道和视频分析
何时使用: 用户希望分析频道性能或视频指标
工具序列:
YOUTUBE_GET_CHANNEL_ID_BY_HANDLE- 将句柄解析为频道ID [前提]YOUTUBE_GET_CHANNEL_STATISTICS- 获取频道订阅者/视图/视频计数 [必填]YOUTUBE_LIST_CHANNEL_VIDEOS- 列出频道所有视频 [可选]YOUTUBE_GET_VIDEO_DETAILS_BATCH- 获取每个视频统计信息 [可选]YOUTUBE_GET_CHANNEL_ACTIVITIES- 获取最近频道活动 [可选]
关键参数:
channelId: 频道ID(‘UC…’)、句柄(‘@句柄’)或’me’forHandle: 频道句柄(例如,‘@Google’)id: 逗号分隔的视频ID用于批量详细信息parts: 要包含的资源部分(例如,‘snippet,statistics’)
陷阱:
- 频道统计是终身总数,而非每期数据
- 批量视频详细信息可能返回比请求更少的项目,对于私有/删除视频
- 响应数据可能嵌套在
data或data_preview下;防御性解析 - contentDetails.duration使用ISO 8601格式(例如,‘PT4M13S’)
5. 管理订阅和评论
何时使用: 用户希望订阅频道或查看视频评论
工具序列:
YOUTUBE_SUBSCRIBE_CHANNEL- 订阅频道 [可选]YOUTUBE_UNSUBSCRIBE_CHANNEL- 取消订阅频道 [可选]YOUTUBE_LIST_USER_SUBSCRIPTIONS- 列出订阅 [可选]YOUTUBE_LIST_COMMENT_THREADS- 列出视频评论 [可选]
关键参数:
channelId: 要订阅/取消订阅的频道videoId: 评论线程的视频IDmaxResults: 每页结果数pageToken: 分页令牌
陷阱:
- 订阅已订阅的频道可能返回错误
- 评论线程返回顶级评论,最多包含5个回复
- 某些视频可能禁用评论
- 取消订阅需要订阅ID,而非频道ID
常见模式
频道ID解析
句柄转频道ID:
1. 使用'@句柄'调用YOUTUBE_GET_CHANNEL_ID_BY_HANDLE
2. 从响应中提取channelId
3. 在后续频道操作中使用
上传播放列表:
1. 获取频道ID(以'UC'开头)
2. 将'UC'前缀替换为'UU'以获取上传播放列表ID
3. 与LIST_PLAYLIST_ITEMS一起使用以枚举所有视频
分页
- 设置
maxResults(每页最多50) - 检查响应中的
nextPageToken - 在下个请求中将令牌作为
pageToken传递 - 继续直到
nextPageToken不存在
批量视频详细信息
- 从搜索或播放列表列表收集视频ID
- 分块为约50个ID的组
- 每块调用GET_VIDEO_DETAILS_BATCH
- 合并各块结果
已知陷阱
配额管理:
- YouTube API有每日配额限制(默认10,000单位)
- 上传=1600单位;搜索=100单位;列表=1单位
- 可能时首选列表端点而非搜索
- 监控配额使用以避免触及每日限制
ID格式:
- 视频ID: 11字符字母数字字符串
- 频道ID: 以’UC’开头,后跟22字符
- 播放列表ID: 以’PL’(用户)或’UU’(上传)开头
- 不要混淆频道ID与播放列表ID
缩略图:
- 自定义缩略图需要频道手机验证
- 必须为JPG、PNG或GIF;小于2MB
- 推荐分辨率: 1280x720(16:9宽高比)
响应解析:
- 统计值作为字符串返回,非整数;数学运算前转换
- 持续时间使用ISO 8601格式(PT#H#M#S)
- 批量响应可能在不同键下包装数据
快速参考
| 任务 | 工具别名 | 关键参数 |
|---|---|---|
| 上传视频 | YOUTUBE_UPLOAD_VIDEO | title, description, tags, categoryId, privacyStatus, videoFilePath |
| 更新视频 | YOUTUBE_UPDATE_VIDEO | video_id, title, description, tags |
| 设置缩略图 | YOUTUBE_UPDATE_THUMBNAIL | videoId, thumbnailUrl |
| 搜索YouTube | YOUTUBE_SEARCH_YOU_TUBE | q, type, maxResults |
| 视频详细信息 | YOUTUBE_VIDEO_DETAILS | id, part |
| 批量视频详细信息 | YOUTUBE_GET_VIDEO_DETAILS_BATCH | id, parts |
| 列出播放列表 | YOUTUBE_LIST_USER_PLAYLISTS | maxResults, pageToken |
| 创建播放列表 | YOUTUBE_CREATE_PLAYLIST | (检查模式) |
| 添加到播放列表 | YOUTUBE_ADD_VIDEO_TO_PLAYLIST | (检查模式) |
| 列出播放列表项目 | YOUTUBE_LIST_PLAYLIST_ITEMS | playlistId, maxResults |
| 频道统计 | YOUTUBE_GET_CHANNEL_STATISTICS | id/forHandle/mine |
| 列出频道视频 | YOUTUBE_LIST_CHANNEL_VIDEOS | channelId, maxResults |
| 通过句柄获取频道ID | YOUTUBE_GET_CHANNEL_ID_BY_HANDLE | channel_handle |
| 订阅 | YOUTUBE_SUBSCRIBE_CHANNEL | channelId |
| 列出订阅 | YOUTUBE_LIST_USER_SUBSCRIPTIONS | (检查模式) |
| 列出评论 | YOUTUBE_LIST_COMMENT_THREADS | videoId |
| 频道活动 | YOUTUBE_GET_CHANNEL_ACTIVITIES | (检查模式) |
由Composio提供动力