关于 youtube-automation
youtube-automation 是通过 Composio 的 YouTube 工具包和 Rube MCP 操作 YouTube 的技能,涵盖视频发布、搜索、播放列表、频道指标、订阅和评论,并强调连接与授权检查。
主要功能
- 01上传和更新视频
- 02搜索视频、频道和播放列表
- 03创建和管理播放列表
- 04获取频道与视频指标
- 05管理订阅和评论
适用场景
- 01发布视频并设置元数据
- 02查找视频或播放列表内容
- 03查看频道和视频统计
- 04管理频道订阅或查看评论
MCP 相关
通过 Rube MCP 使用 Composio 的 YouTube 工具包。需要连接 Rube MCP 并启用 YouTube 连接;操作前应先获取工具架构。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill youtube-automation安装后在 Claude Code 中输入/youtube-automation确认已加载。
详细介绍
通过 Rube MCP 自动执行 YouTube 操作
通过 Rube MCP 使用 Composio 的 YouTube 工具包自动执行 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
发布与账号边界
确认连接的频道以及目标视频/播放列表 ID 无误。更改上传视频的公开状态、发表评论和订阅频道都需要用户明确授权;未经授权发布时,请先使用私密暂存。确认媒体的权利/许可,并妥善保护私密/不公开链接。进行局部更新前先读取现有元数据,以免端点采用替换语义时意外清除未提供的可变字段。记录返回的上传/视频 ID,并在重试不确定的上传之前检查处理状态。通过实时架构和 YouTube 官方文档核实当前配额费用/限制;下方数值为历史示例。
核心工作流
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 - 搜索结果限制取决于参数/账号;分页不能证明已获取频道的全部内容
- 搜索的配额成本较高(100 个单位),而列表端点为 1 个单位
- BATCH 视频详情接口单次调用的实用上限约为 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 作为 playlistId 传入;请从频道的 contentDetails 中读取上传内容播放列表 ID
- 大型播放列表需要通过 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. Read contentDetails.relatedPlaylists.uploads from the actual channel resource
3. Use with LIST_PLAYLIST_ITEMS to enumerate all videos
分页
- 设置
maxResults(每页最多 50 条) - 检查响应中是否包含
nextPageToken - 在下一个请求中将令牌作为
pageToken传入 - 持续请求,直到
nextPageToken不存在
批量获取视频详情
- 从搜索结果或播放列表中收集视频 ID
- 将其分成每组约 50 个 ID
- 对每组调用 GET_VIDEO_DETAILS_BATCH
- 合并各组结果
已知陷阱
配额管理:
- YouTube API 有每日配额限制(默认 10,000 个单位)
- 规划批量操作前,请确认各方法的配额消耗;不要假设历史上的上传或列表操作配额消耗仍然适用。
- 尽可能优先使用列表端点,而非搜索端点。
- 监控配额使用情况,避免触及每日上限。
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 | (请查看架构) |
适用场景
当需要执行概览中描述的工作流或操作时,可使用此技能。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并请求澄清。