youtube-automation
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseYouTube Automation via Rube MCP
通过Rube MCP实现YouTube自动化
Automate YouTube operations through Composio's YouTube toolkit via Rube MCP.
通过Composio的YouTube工具包,借助Rube MCP自动化YouTube操作。
Prerequisites
前提条件
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active YouTube connection via with toolkit
RUBE_MANAGE_CONNECTIONSyoutube - Always call first to get current tool schemas
RUBE_SEARCH_TOOLS
- 必须已连接Rube MCP(需提供RUBE_SEARCH_TOOLS)
- 通过并使用工具包
RUBE_MANAGE_CONNECTIONS建立有效的YouTube连接youtube - 请始终先调用以获取当前的工具schema
RUBE_SEARCH_TOOLS
Setup
设置步骤
Get Rube MCP: Add as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
https://rube.app/mcp- Verify Rube MCP is available by confirming responds
RUBE_SEARCH_TOOLS - Call with toolkit
RUBE_MANAGE_CONNECTIONSyoutube - If connection is not ACTIVE, follow the returned auth link to complete Google OAuth
- Confirm connection status shows ACTIVE before running any workflows
获取Rube MCP:在客户端配置中添加作为MCP服务器。无需API密钥 —— 只需添加端点即可使用。
https://rube.app/mcp- 验证Rube MCP是否可用,确认能正常响应
RUBE_SEARCH_TOOLS - 调用并指定工具包为
RUBE_MANAGE_CONNECTIONSyoutube - 如果连接状态未处于ACTIVE,请按照返回的授权链接完成Google OAuth验证
- 在运行任何工作流之前,确认连接状态显示为ACTIVE
Core Workflows
核心工作流
1. Upload and Manage Videos
1. 上传与管理视频
When to use: User wants to upload a video or update video metadata
Tool sequence:
- - Upload a new video [Required]
YOUTUBE_UPLOAD_VIDEO - - Update title, description, tags, privacy [Optional]
YOUTUBE_UPDATE_VIDEO - - Set a custom thumbnail [Optional]
YOUTUBE_UPDATE_THUMBNAIL
Key parameters:
- : Video title (max 100 characters)
title - : Video description (max 5000 bytes)
description - : Array of keyword tags
tags - : YouTube category ID (e.g., '22' for People & Blogs)
categoryId - : 'public', 'private', or 'unlisted'
privacyStatus - : Object with
videoFilePathfor the video file{name, mimetype, s3key}
Pitfalls:
- UPLOAD_VIDEO consumes high quota; prefer UPDATE_VIDEO for metadata-only changes
- videoFilePath must be an object with s3key, not a raw file path or URL
- Tags total must not exceed 500 characters including separators
- Angle brackets in tags are automatically stripped
< > - Description limit is 5000 bytes, not characters (multibyte chars count more)
适用场景:用户需要上传视频或更新视频元数据
工具执行顺序:
- - 上传新视频 [必填]
YOUTUBE_UPLOAD_VIDEO - - 更新标题、描述、标签、隐私设置 [可选]
YOUTUBE_UPDATE_VIDEO - - 设置自定义缩略图 [可选]
YOUTUBE_UPDATE_THUMBNAIL
关键参数:
- : 视频标题(最多100个字符)
title - : 视频描述(最多5000字节)
description - : 关键词标签数组
tags - : YouTube分类ID(例如,'22'代表人物与博客)
categoryId - : 'public'(公开)、'private'(私有)或'unlisted'(不公开列出)
privacyStatus - : 包含
videoFilePath的视频文件对象{name, mimetype, s3key}
注意事项:
- UPLOAD_VIDEO会消耗大量配额;仅需更新元数据时,优先使用UPDATE_VIDEO
- videoFilePath必须是包含s3key的对象,不能是原始文件路径或URL
- 标签总长度(含分隔符)不能超过500个字符
- 标签中的尖括号会被自动移除
< > - 描述的限制是5000字节,而非字符(多字节字符占用更多字节)
2. Search YouTube Content
2. 搜索YouTube内容
When to use: User wants to find videos, channels, or playlists
Tool sequence:
- - Search for content [Required]
YOUTUBE_SEARCH_YOU_TUBE - - Get full details for a specific video [Optional]
YOUTUBE_VIDEO_DETAILS - - Get details for multiple videos [Optional]
YOUTUBE_GET_VIDEO_DETAILS_BATCH
Key parameters:
- : Search query (supports exact phrases, exclusions, channel handles)
q - : 'video', 'channel', or 'playlist'
type - : Results per page (1-50)
maxResults - : For pagination
pageToken
Pitfalls:
- Search endpoint only returns 'snippet' part; use VIDEO_DETAILS for statistics
- Search results are capped at 500 total items
- Search has higher quota cost (100 units) vs list endpoints (1 unit)
- BATCH video details practical limit is ~50 IDs per call; chunk larger sets
适用场景:用户需要查找视频、频道或播放列表
工具执行顺序:
- - 搜索内容 [必填]
YOUTUBE_SEARCH_YOU_TUBE - - 获取特定视频的完整详情 [可选]
YOUTUBE_VIDEO_DETAILS - - 批量获取多个视频的详情 [可选]
YOUTUBE_GET_VIDEO_DETAILS_BATCH
关键参数:
- : 搜索查询词(支持精确短语、排除词、频道用户名)
q - : 'video'(视频)、'channel'(频道)或'playlist'(播放列表)
type - : 每页结果数量(1-50)
maxResults - : 分页令牌
pageToken
注意事项:
- 搜索端点仅返回'snippet'部分数据;如需统计数据,请使用VIDEO_DETAILS
- 搜索结果最多返回500条数据
- 搜索的配额成本更高(100单位),而列表端点仅需1单位
- 批量获取视频详情的实际限制约为每次调用50个ID;请将更大的ID集拆分为多个批次
3. Manage Playlists
3. 管理播放列表
When to use: User wants to create playlists or manage playlist contents
Tool sequence:
- - List user's existing playlists [Optional]
YOUTUBE_LIST_USER_PLAYLISTS - - Create a new playlist [Optional]
YOUTUBE_CREATE_PLAYLIST - - Add a video to a playlist [Optional]
YOUTUBE_ADD_VIDEO_TO_PLAYLIST - - List videos in a playlist [Optional]
YOUTUBE_LIST_PLAYLIST_ITEMS
Key parameters:
- : Playlist ID ('PL...' for user-created, 'UU...' for uploads)
playlistId - : Resource parts to include (e.g., 'snippet,contentDetails')
part - : Items per page (1-50)
maxResults - : Pagination token from previous response
pageToken
Pitfalls:
- Do NOT pass channel IDs ('UC...') as playlist IDs; convert 'UC' to 'UU' for uploads
- Large playlists require pagination via pageToken; follow nextPageToken until absent
- items[].id is not the videoId; use items[].snippet.resourceId.videoId
- Creating duplicate playlist names is allowed; check existing playlists first
适用场景:用户需要创建播放列表或管理播放列表内容
工具执行顺序:
- - 列出用户现有的播放列表 [可选]
YOUTUBE_LIST_USER_PLAYLISTS - - 创建新播放列表 [可选]
YOUTUBE_CREATE_PLAYLIST - - 将视频添加到播放列表 [可选]
YOUTUBE_ADD_VIDEO_TO_PLAYLIST - - 列出播放列表中的视频 [可选]
YOUTUBE_LIST_PLAYLIST_ITEMS
关键参数:
- : 播放列表ID(用户创建的以'PL...'开头,上传列表以'UU...'开头)
playlistId - : 要包含的资源部分(例如,'snippet,contentDetails')
part - : 每页项目数量(1-50)
maxResults - : 来自上一次响应的分页令牌
pageToken
注意事项:
- 请勿将频道ID('UC...')作为播放列表ID传入;如需获取上传列表,请将'UC'前缀替换为'UU'
- 大型播放列表需要通过pageToken进行分页;请持续使用nextPageToken直到其不存在
- items[].id并非视频ID;请使用items[].snippet.resourceId.videoId
- 允许创建重复名称的播放列表;请先检查现有播放列表
4. Get Channel and Video Analytics
4. 获取频道与视频分析数据
When to use: User wants to analyze channel performance or video metrics
Tool sequence:
- - Resolve a handle to channel ID [Prerequisite]
YOUTUBE_GET_CHANNEL_ID_BY_HANDLE - - Get channel subscriber/view/video counts [Required]
YOUTUBE_GET_CHANNEL_STATISTICS - - List all videos from a channel [Optional]
YOUTUBE_LIST_CHANNEL_VIDEOS - - Get per-video statistics [Optional]
YOUTUBE_GET_VIDEO_DETAILS_BATCH - - Get recent channel activities [Optional]
YOUTUBE_GET_CHANNEL_ACTIVITIES
Key parameters:
- : Channel ID ('UC...'), handle ('@handle'), or 'me'
channelId - : Channel handle (e.g., '@Google')
forHandle - : Comma-separated video IDs for batch details
id - : Resource parts to include (e.g., 'snippet,statistics')
parts
Pitfalls:
- Channel statistics are lifetime totals, not per-period
- BATCH video details may return fewer items than requested for private/deleted videos
- Response data may be nested under or
data; parse defensivelydata_preview - contentDetails.duration uses ISO 8601 format (e.g., 'PT4M13S')
适用场景:用户需要分析频道表现或视频指标
工具执行顺序:
- - 将用户名解析为频道ID [前置步骤]
YOUTUBE_GET_CHANNEL_ID_BY_HANDLE - - 获取频道订阅数/观看数/视频数 [必填]
YOUTUBE_GET_CHANNEL_STATISTICS - - 列出频道的所有视频 [可选]
YOUTUBE_LIST_CHANNEL_VIDEOS - - 获取每个视频的统计数据 [可选]
YOUTUBE_GET_VIDEO_DETAILS_BATCH - - 获取频道近期活动 [可选]
YOUTUBE_GET_CHANNEL_ACTIVITIES
关键参数:
- : 频道ID('UC...')、用户名('@handle')或'me'(当前用户)
channelId - : 频道用户名(例如,'@Google')
forHandle - : 用于批量获取详情的逗号分隔视频ID列表
id - : 要包含的资源部分(例如,'snippet,statistics')
parts
注意事项:
- 频道统计数据是累计总数,而非特定时间段的数据
- 批量获取视频详情时,对于私有/已删除的视频,返回的项目可能少于请求数量
- 响应数据可能嵌套在或
data下;请谨慎解析data_preview - contentDetails.duration使用ISO 8601格式(例如,'PT4M13S')
5. Manage Subscriptions and Comments
5. 管理订阅与评论
When to use: User wants to subscribe to channels or view video comments
Tool sequence:
- - Subscribe to a channel [Optional]
YOUTUBE_SUBSCRIBE_CHANNEL - - Unsubscribe from a channel [Optional]
YOUTUBE_UNSUBSCRIBE_CHANNEL - - List subscriptions [Optional]
YOUTUBE_LIST_USER_SUBSCRIPTIONS - - List comments on a video [Optional]
YOUTUBE_LIST_COMMENT_THREADS
Key parameters:
- : Channel to subscribe/unsubscribe
channelId - : Video ID for comment threads
videoId - : Results per page
maxResults - : Pagination token
pageToken
Pitfalls:
- Subscribing to an already-subscribed channel may return an error
- Comment threads return top-level comments with up to 5 replies each
- Comments may be disabled on some videos
- Unsubscribe requires the subscription ID, not the channel ID
适用场景:用户需要订阅频道或查看视频评论
工具执行顺序:
- - 订阅频道 [可选]
YOUTUBE_SUBSCRIBE_CHANNEL - - 取消订阅频道 [可选]
YOUTUBE_UNSUBSCRIBE_CHANNEL - - 列出订阅列表 [可选]
YOUTUBE_LIST_USER_SUBSCRIPTIONS - - 列出视频的评论 [可选]
YOUTUBE_LIST_COMMENT_THREADS
关键参数:
- : 要订阅/取消订阅的频道ID
channelId - : 用于获取评论线程的视频ID
videoId - : 每页结果数量
maxResults - : 分页令牌
pageToken
注意事项:
- 订阅已订阅的频道可能会返回错误
- 评论线程返回的是顶级评论,每条最多包含5条回复
- 部分视频可能已禁用评论功能
- 取消订阅需要订阅ID,而非频道ID
Common Patterns
通用模式
Channel ID Resolution
频道ID解析
Handle to Channel ID:
1. Call YOUTUBE_GET_CHANNEL_ID_BY_HANDLE with '@handle'
2. Extract channelId from response
3. Use in subsequent channel operationsUploads Playlist:
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用户名转频道ID:
1. 调用YOUTUBE_GET_CHANNEL_ID_BY_HANDLE,参数为'@handle'
2. 从响应中提取channelId
3. 在后续的频道操作中使用该ID上传列表:
1. 获取频道ID(以'UC'开头)
2. 将'UC'前缀替换为'UU'以获取上传列表ID
3. 结合LIST_PLAYLIST_ITEMS使用以枚举所有视频Pagination
分页处理
- Set (max 50 per page)
maxResults - Check response for
nextPageToken - Pass token as in next request
pageToken - Continue until is absent
nextPageToken
- 设置(每页最多50条)
maxResults - 检查响应中的
nextPageToken - 在下次请求中传入该令牌作为
pageToken - 持续执行直到不存在
nextPageToken
Batch Video Details
批量获取视频详情
- Collect video IDs from search or playlist listings
- Chunk into groups of ~50 IDs
- Call GET_VIDEO_DETAILS_BATCH per chunk
- Merge results across chunks
- 从搜索结果或播放列表中收集视频ID
- 将ID拆分为每组约50个的批次
- 为每个批次调用GET_VIDEO_DETAILS_BATCH
- 合并所有批次的结果
Known Pitfalls
已知注意事项
Quota Management:
- YouTube API has a daily quota limit (default 10,000 units)
- Upload = 1600 units; search = 100 units; list = 1 unit
- Prefer list endpoints over search when possible
- Monitor quota usage to avoid hitting daily limits
ID Formats:
- Video IDs: 11-character alphanumeric strings
- Channel IDs: Start with 'UC' followed by 22 characters
- Playlist IDs: Start with 'PL' (user) or 'UU' (uploads)
- Do not confuse channel IDs with playlist IDs
Thumbnails:
- Custom thumbnails require channel phone verification
- Must be JPG, PNG, or GIF; under 2MB
- Recommended: 1280x720 resolution (16:9 aspect ratio)
Response Parsing:
- Statistics values are returned as strings, not integers; cast before math
- Duration uses ISO 8601 format (PT#H#M#S)
- Batch responses may wrap data under different keys
配额管理:
- YouTube API有每日配额限制(默认10000单位)
- 上传 = 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)
- 批量响应的数据可能嵌套在不同的键下
Quick Reference
快速参考
| Task | Tool Slug | Key Params |
|---|---|---|
| Upload video | YOUTUBE_UPLOAD_VIDEO | title, description, tags, categoryId, privacyStatus, videoFilePath |
| Update video | YOUTUBE_UPDATE_VIDEO | video_id, title, description, tags |
| Set thumbnail | YOUTUBE_UPDATE_THUMBNAIL | videoId, thumbnailUrl |
| Search YouTube | YOUTUBE_SEARCH_YOU_TUBE | q, type, maxResults |
| Video details | YOUTUBE_VIDEO_DETAILS | id, part |
| Batch video details | YOUTUBE_GET_VIDEO_DETAILS_BATCH | id, parts |
| List playlists | YOUTUBE_LIST_USER_PLAYLISTS | maxResults, pageToken |
| Create playlist | YOUTUBE_CREATE_PLAYLIST | (check schema) |
| Add to playlist | YOUTUBE_ADD_VIDEO_TO_PLAYLIST | (check schema) |
| List playlist items | YOUTUBE_LIST_PLAYLIST_ITEMS | playlistId, maxResults |
| Channel statistics | YOUTUBE_GET_CHANNEL_STATISTICS | id/forHandle/mine |
| List channel videos | YOUTUBE_LIST_CHANNEL_VIDEOS | channelId, maxResults |
| Channel ID by handle | YOUTUBE_GET_CHANNEL_ID_BY_HANDLE | channel_handle |
| Subscribe | YOUTUBE_SUBSCRIBE_CHANNEL | channelId |
| List subscriptions | YOUTUBE_LIST_USER_SUBSCRIPTIONS | (check schema) |
| List comments | YOUTUBE_LIST_COMMENT_THREADS | videoId |
| Channel activities | YOUTUBE_GET_CHANNEL_ACTIVITIES | (check schema) |
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 上传视频 | 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 | (请查看schema) |
| 添加至播放列表 | YOUTUBE_ADD_VIDEO_TO_PLAYLIST | (请查看schema) |
| 列出播放列表项目 | 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 | (请查看schema) |
| 列出评论 | YOUTUBE_LIST_COMMENT_THREADS | videoId |
| 频道活动 | YOUTUBE_GET_CHANNEL_ACTIVITIES | (请查看schema) |