youtube-automation

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

YouTube 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
    RUBE_MANAGE_CONNECTIONS
    with toolkit
    youtube
  • Always call
    RUBE_SEARCH_TOOLS
    first to get current tool schemas
  • 必须已连接Rube MCP(需提供RUBE_SEARCH_TOOLS)
  • 通过
    RUBE_MANAGE_CONNECTIONS
    并使用工具包
    youtube
    建立有效的YouTube连接
  • 请始终先调用
    RUBE_SEARCH_TOOLS
    以获取当前的工具schema

Setup

设置步骤

Get Rube MCP: Add
https://rube.app/mcp
as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
  1. Verify Rube MCP is available by confirming
    RUBE_SEARCH_TOOLS
    responds
  2. Call
    RUBE_MANAGE_CONNECTIONS
    with toolkit
    youtube
  3. If connection is not ACTIVE, follow the returned auth link to complete Google OAuth
  4. Confirm connection status shows ACTIVE before running any workflows
获取Rube MCP:在客户端配置中添加
https://rube.app/mcp
作为MCP服务器。无需API密钥 —— 只需添加端点即可使用。
  1. 验证Rube MCP是否可用,确认
    RUBE_SEARCH_TOOLS
    能正常响应
  2. 调用
    RUBE_MANAGE_CONNECTIONS
    并指定工具包为
    youtube
  3. 如果连接状态未处于ACTIVE,请按照返回的授权链接完成Google OAuth验证
  4. 在运行任何工作流之前,确认连接状态显示为ACTIVE

Core Workflows

核心工作流

1. Upload and Manage Videos

1. 上传与管理视频

When to use: User wants to upload a video or update video metadata
Tool sequence:
  1. YOUTUBE_UPLOAD_VIDEO
    - Upload a new video [Required]
  2. YOUTUBE_UPDATE_VIDEO
    - Update title, description, tags, privacy [Optional]
  3. YOUTUBE_UPDATE_THUMBNAIL
    - Set a custom thumbnail [Optional]
Key parameters:
  • title
    : Video title (max 100 characters)
  • description
    : Video description (max 5000 bytes)
  • tags
    : Array of keyword tags
  • categoryId
    : YouTube category ID (e.g., '22' for People & Blogs)
  • privacyStatus
    : 'public', 'private', or 'unlisted'
  • videoFilePath
    : Object with
    {name, mimetype, s3key}
    for the video file
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)
适用场景:用户需要上传视频或更新视频元数据
工具执行顺序:
  1. YOUTUBE_UPLOAD_VIDEO
    - 上传新视频 [必填]
  2. YOUTUBE_UPDATE_VIDEO
    - 更新标题、描述、标签、隐私设置 [可选]
  3. 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. Search YouTube Content

2. 搜索YouTube内容

When to use: User wants to find videos, channels, or playlists
Tool sequence:
  1. YOUTUBE_SEARCH_YOU_TUBE
    - Search for content [Required]
  2. YOUTUBE_VIDEO_DETAILS
    - Get full details for a specific video [Optional]
  3. YOUTUBE_GET_VIDEO_DETAILS_BATCH
    - Get details for multiple videos [Optional]
Key parameters:
  • q
    : Search query (supports exact phrases, exclusions, channel handles)
  • type
    : 'video', 'channel', or 'playlist'
  • maxResults
    : Results per page (1-50)
  • pageToken
    : For pagination
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
适用场景:用户需要查找视频、频道或播放列表
工具执行顺序:
  1. YOUTUBE_SEARCH_YOU_TUBE
    - 搜索内容 [必填]
  2. YOUTUBE_VIDEO_DETAILS
    - 获取特定视频的完整详情 [可选]
  3. YOUTUBE_GET_VIDEO_DETAILS_BATCH
    - 批量获取多个视频的详情 [可选]
关键参数:
  • q
    : 搜索查询词(支持精确短语、排除词、频道用户名)
  • type
    : 'video'(视频)、'channel'(频道)或'playlist'(播放列表)
  • maxResults
    : 每页结果数量(1-50)
  • 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:
  1. YOUTUBE_LIST_USER_PLAYLISTS
    - List user's existing playlists [Optional]
  2. YOUTUBE_CREATE_PLAYLIST
    - Create a new playlist [Optional]
  3. YOUTUBE_ADD_VIDEO_TO_PLAYLIST
    - Add a video to a playlist [Optional]
  4. YOUTUBE_LIST_PLAYLIST_ITEMS
    - List videos in a playlist [Optional]
Key parameters:
  • playlistId
    : Playlist ID ('PL...' for user-created, 'UU...' for uploads)
  • part
    : Resource parts to include (e.g., 'snippet,contentDetails')
  • maxResults
    : Items per page (1-50)
  • pageToken
    : Pagination token from previous response
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
适用场景:用户需要创建播放列表或管理播放列表内容
工具执行顺序:
  1. YOUTUBE_LIST_USER_PLAYLISTS
    - 列出用户现有的播放列表 [可选]
  2. YOUTUBE_CREATE_PLAYLIST
    - 创建新播放列表 [可选]
  3. YOUTUBE_ADD_VIDEO_TO_PLAYLIST
    - 将视频添加到播放列表 [可选]
  4. YOUTUBE_LIST_PLAYLIST_ITEMS
    - 列出播放列表中的视频 [可选]
关键参数:
  • playlistId
    : 播放列表ID(用户创建的以'PL...'开头,上传列表以'UU...'开头)
  • part
    : 要包含的资源部分(例如,'snippet,contentDetails')
  • maxResults
    : 每页项目数量(1-50)
  • 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:
  1. YOUTUBE_GET_CHANNEL_ID_BY_HANDLE
    - Resolve a handle to channel ID [Prerequisite]
  2. YOUTUBE_GET_CHANNEL_STATISTICS
    - Get channel subscriber/view/video counts [Required]
  3. YOUTUBE_LIST_CHANNEL_VIDEOS
    - List all videos from a channel [Optional]
  4. YOUTUBE_GET_VIDEO_DETAILS_BATCH
    - Get per-video statistics [Optional]
  5. YOUTUBE_GET_CHANNEL_ACTIVITIES
    - Get recent channel activities [Optional]
Key parameters:
  • channelId
    : Channel ID ('UC...'), handle ('@handle'), or 'me'
  • forHandle
    : Channel handle (e.g., '@Google')
  • id
    : Comma-separated video IDs for batch details
  • parts
    : Resource parts to include (e.g., 'snippet,statistics')
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
    data
    or
    data_preview
    ; parse defensively
  • contentDetails.duration uses ISO 8601 format (e.g., 'PT4M13S')
适用场景:用户需要分析频道表现或视频指标
工具执行顺序:
  1. YOUTUBE_GET_CHANNEL_ID_BY_HANDLE
    - 将用户名解析为频道ID [前置步骤]
  2. YOUTUBE_GET_CHANNEL_STATISTICS
    - 获取频道订阅数/观看数/视频数 [必填]
  3. YOUTUBE_LIST_CHANNEL_VIDEOS
    - 列出频道的所有视频 [可选]
  4. YOUTUBE_GET_VIDEO_DETAILS_BATCH
    - 获取每个视频的统计数据 [可选]
  5. 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. Manage Subscriptions and Comments

5. 管理订阅与评论

When to use: User wants to subscribe to channels or view video comments
Tool sequence:
  1. YOUTUBE_SUBSCRIBE_CHANNEL
    - Subscribe to a channel [Optional]
  2. YOUTUBE_UNSUBSCRIBE_CHANNEL
    - Unsubscribe from a channel [Optional]
  3. YOUTUBE_LIST_USER_SUBSCRIPTIONS
    - List subscriptions [Optional]
  4. YOUTUBE_LIST_COMMENT_THREADS
    - List comments on a video [Optional]
Key parameters:
  • channelId
    : Channel to subscribe/unsubscribe
  • videoId
    : Video ID for comment threads
  • maxResults
    : Results per page
  • pageToken
    : Pagination token
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
适用场景:用户需要订阅频道或查看视频评论
工具执行顺序:
  1. YOUTUBE_SUBSCRIBE_CHANNEL
    - 订阅频道 [可选]
  2. YOUTUBE_UNSUBSCRIBE_CHANNEL
    - 取消订阅频道 [可选]
  3. YOUTUBE_LIST_USER_SUBSCRIPTIONS
    - 列出订阅列表 [可选]
  4. YOUTUBE_LIST_COMMENT_THREADS
    - 列出视频的评论 [可选]
关键参数:
  • channelId
    : 要订阅/取消订阅的频道ID
  • videoId
    : 用于获取评论线程的视频ID
  • 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 operations
Uploads 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
    maxResults
    (max 50 per page)
  • Check response for
    nextPageToken
  • Pass token as
    pageToken
    in next request
  • Continue until
    nextPageToken
    is absent
  • 设置
    maxResults
    (每页最多50条)
  • 检查响应中的
    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

快速参考

TaskTool SlugKey Params
Upload videoYOUTUBE_UPLOAD_VIDEOtitle, description, tags, categoryId, privacyStatus, videoFilePath
Update videoYOUTUBE_UPDATE_VIDEOvideo_id, title, description, tags
Set thumbnailYOUTUBE_UPDATE_THUMBNAILvideoId, thumbnailUrl
Search YouTubeYOUTUBE_SEARCH_YOU_TUBEq, type, maxResults
Video detailsYOUTUBE_VIDEO_DETAILSid, part
Batch video detailsYOUTUBE_GET_VIDEO_DETAILS_BATCHid, parts
List playlistsYOUTUBE_LIST_USER_PLAYLISTSmaxResults, pageToken
Create playlistYOUTUBE_CREATE_PLAYLIST(check schema)
Add to playlistYOUTUBE_ADD_VIDEO_TO_PLAYLIST(check schema)
List playlist itemsYOUTUBE_LIST_PLAYLIST_ITEMSplaylistId, maxResults
Channel statisticsYOUTUBE_GET_CHANNEL_STATISTICSid/forHandle/mine
List channel videosYOUTUBE_LIST_CHANNEL_VIDEOSchannelId, maxResults
Channel ID by handleYOUTUBE_GET_CHANNEL_ID_BY_HANDLEchannel_handle
SubscribeYOUTUBE_SUBSCRIBE_CHANNELchannelId
List subscriptionsYOUTUBE_LIST_USER_SUBSCRIPTIONS(check schema)
List commentsYOUTUBE_LIST_COMMENT_THREADSvideoId
Channel activitiesYOUTUBE_GET_CHANNEL_ACTIVITIES(check schema)
任务工具标识关键参数
上传视频YOUTUBE_UPLOAD_VIDEOtitle, description, tags, categoryId, privacyStatus, videoFilePath
更新视频YOUTUBE_UPDATE_VIDEOvideo_id, title, description, tags
设置缩略图YOUTUBE_UPDATE_THUMBNAILvideoId, thumbnailUrl
搜索YouTubeYOUTUBE_SEARCH_YOU_TUBEq, type, maxResults
视频详情YOUTUBE_VIDEO_DETAILSid, part
批量视频详情YOUTUBE_GET_VIDEO_DETAILS_BATCHid, parts
列出播放列表YOUTUBE_LIST_USER_PLAYLISTSmaxResults, pageToken
创建播放列表YOUTUBE_CREATE_PLAYLIST(请查看schema)
添加至播放列表YOUTUBE_ADD_VIDEO_TO_PLAYLIST(请查看schema)
列出播放列表项目YOUTUBE_LIST_PLAYLIST_ITEMSplaylistId, maxResults
频道统计数据YOUTUBE_GET_CHANNEL_STATISTICSid/forHandle/mine
列出频道视频YOUTUBE_LIST_CHANNEL_VIDEOSchannelId, maxResults
用户名转频道IDYOUTUBE_GET_CHANNEL_ID_BY_HANDLEchannel_handle
订阅频道YOUTUBE_SUBSCRIBE_CHANNELchannelId
列出订阅列表YOUTUBE_LIST_USER_SUBSCRIPTIONS(请查看schema)
列出评论YOUTUBE_LIST_COMMENT_THREADSvideoId
频道活动YOUTUBE_GET_CHANNEL_ACTIVITIES(请查看schema)