关于 youtube-automation
youtube-automation 通过 Rube MCP 调用 Composio 的 YouTube 工具包,自动处理 YouTube 任务。涵盖视频、播放列表、频道、订阅和评论工作流。
主要功能
- 01上传和编辑视频
- 02搜索视频、频道和播放列表
- 03创建和管理播放列表
- 04获取频道与视频统计数据
- 05管理订阅和评论
适用场景
- 01发布带有元数据的视频
- 02查找视频或播放列表
- 03查看频道和视频指标
- 04整理播放列表与订阅
MCP 相关
它通过 Rube MCP 访问 Composio 的 YouTube 工具包。客户端需连接 Rube MCP 并建立有效的 YouTube 连接。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill youtube-automation安装后在 Claude Code 中输入/youtube-automation确认已加载。
详细介绍
通过 Rube MCP 自动执行 YouTube 操作
通过 Rube MCP 使用 Composio 的 YouTube 工具包自动执行 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 - 如果连接状态不是 ACTIVE,请使用返回的授权链接完成 Google OAuth
- 运行任何工作流前,确认连接状态显示为 ACTIVE
核心工作流
1. 上传和管理视频
适用场景:用户想上传视频或更新视频元数据
工具调用顺序:
YOUTUBE_UPLOAD_VIDEO- 上传新视频[必需]YOUTUBE_UPDATE_VIDEO- 更新标题、描述、标签和隐私设置[可选]YOUTUBE_UPDATE_THUMBNAIL- 设置自定义缩略图[可选]
关键参数:
title:视频标题(最多 100 个字符)description:视频描述(最多 5000 字节)tags:关键词标签数组categoryId:YouTube 类别 ID(例如,People & Blogs 对应'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...')、句柄('@handle')或 '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. Call YOUTUBE_GET_CHANNEL_ID_BY_HANDLE with '@handle'
2. Extract channelId from response
3. Use in subsequent channel operations
上传内容播放列表:
1. Get channel ID (starts with 'UC')
2. Replace 'UC' prefix with 'UU' to get uploads playlist ID
3. Use with LIST_PLAYLIST_ITEMS to enumerate all videos
分页
- 设置
maxResults(每页最多 50 条) - 检查响应中的
nextPageToken - 在下一个请求中将令牌作为
pageToken传入 - 持续请求,直到
nextPageToken不再存在
批量获取视频详情
- 从搜索结果或播放列表中收集视频 ID
- 将 ID 分成每组约 50 个
- 对每组调用 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 提供支持
评论
支持 Markdown