Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate YouTube tasks via Rube MCP (Composio): upload videos, manage playlists, search content, get analytics, and handle comments. Always search tools first for current schemas.
.claude/skills/lingxling-youtube-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 215% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 63% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 164% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 182% | 0% |
Automate YouTube operations through Composio's YouTube toolkit via Rube MCP.
RUBE_MANAGE_CONNECTIONS with toolkit youtubeRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit youtubeWhen to use: User wants to upload a video or update video metadata
Tool sequence:
YOUTUBE_UPLOAD_VIDEO - Upload a new video Required]YOUTUBE_UPDATE_VIDEO - Update title, description, tags, privacy Optional]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 tagscategoryId: YouTube category ID (e.g., '22' for People & Blogs)privacyStatus: 'public', 'private', or 'unlisted'videoFilePath: Object with {name, mimetype, s3key} for the video filePitfalls:
< > in tags are automatically strippedWhen to use: User wants to find videos, channels, or playlists
Tool sequence:
YOUTUBE_SEARCH_YOU_TUBE - Search for content Required]YOUTUBE_VIDEO_DETAILS - Get full details for a specific video Optional]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 paginationPitfalls:
When to use: User wants to create playlists or manage playlist contents
Tool sequence:
YOUTUBE_LIST_USER_PLAYLISTS - List user's existing playlists Optional]YOUTUBE_CREATE_PLAYLIST - Create a new playlist Optional]YOUTUBE_ADD_VIDEO_TO_PLAYLIST - Add a video to a playlist Optional]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 responsePitfalls:
When to use: User wants to analyze channel performance or video metrics
Tool sequence:
YOUTUBE_GET_CHANNEL_ID_BY_HANDLE - Resolve a handle to channel ID Prerequisite]YOUTUBE_GET_CHANNEL_STATISTICS - Get channel subscriber/view/video counts Required]YOUTUBE_LIST_CHANNEL_VIDEOS - List all videos from a channel Optional]YOUTUBE_GET_VIDEO_DETAILS_BATCH - Get per-video statistics Optional]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 detailsparts: Resource parts to include (e.g., 'snippet,statistics')Pitfalls:
data or data_preview; parse defensivelyWhen to use: User wants to subscribe to channels or view video comments
Tool sequence:
YOUTUBE_SUBSCRIBE_CHANNEL - Subscribe to a channel Optional]YOUTUBE_UNSUBSCRIBE_CHANNEL - Unsubscribe from a channel Optional]YOUTUBE_LIST_USER_SUBSCRIPTIONS - List subscriptions Optional]YOUTUBE_LIST_COMMENT_THREADS - List comments on a video Optional]Key parameters:
channelId: Channel to subscribe/unsubscribevideoId: Video ID for comment threadsmaxResults: Results per pagepageToken: Pagination tokenPitfalls:
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 videosmaxResults (max 50 per page)nextPageTokenpageToken in next requestnextPageToken is absentQuota Management:
ID Formats:
Thumbnails:
Response Parsing:
| 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) |
This skill is applicable to execute the workflow or actions described in the overview.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | fail→pass | 5,895 | 6,907 | +17% | 1 | 1 | 0% | 1,072 | 3,381 | +215% | 0 | 0 | — |
case-01 | fail→fail | 5,138 | 6,378 | +24% | 1 | 1 | 0% | 838 | 2,664 | +218% | 0 | 0 | — |
case-02 | fail→fail | 12,499 | 5,852 | -53% | 1 | 1 | 0% | 1,917 | 2,927 | +53% | 0 | 0 | — |
case-03 | fail→fail | 9,694 | 6,961 | -28% | 1 | 1 | 0% | 533 | 2,823 | +430% | 0 | 0 | — |
case-04 | fail→pass | 11,579 | 12,080 | +4% | 1 | 1 | 0% | 2,039 | 3,322 | +63% | 0 | 0 | — |
case-05 | pass→pass | 6,088 | 4,498 | -26% | 1 | 1 | 0% | 1,135 | 3,149 | +177% | 0 | 0 | — |
case-06 | pass→pass | 10,252 | 4,867 | -53% | 1 | 1 | 0% | 1,548 | 3,112 | +101% | 0 | 0 | — |
case-07 | pass→pass | 5,133 | 3,897 | -24% | 1 | 1 | 0% | 967 | 3,149 | +226% | 0 | 0 | — |
case-09 | pass→pass | 11,371 | 9,763 | -14% | 1 | 1 | 0% | 1,888 | 3,661 | +94% | 0 | 0 | — |
case-10 | fail→pass | 9,174 | 8,790 | -4% | 1 | 1 | 0% | 1,528 | 4,032 | +164% | 0 | 0 | — |
case-11 | pass→pass | 8,998 | 7,124 | -21% | 1 | 1 | 0% | 1,650 | 3,230 | +96% | 0 | 0 | — |
case-12 | pass→pass | 10,163 | 8,206 | -19% | 1 | 1 | 0% | 1,855 | 3,637 | +96% | 0 | 0 | — |
case-17 | fail→pass | 12,823 | 5,394 | -58% | 1 | 1 | 0% | 2,225 | 3,344 | +50% | 0 | 0 | — |
case-13 | pass→pass | 10,741 | 9,542 | -11% | 1 | 1 | 0% | 2,111 | 4,185 | +98% | 0 | 0 | — |
case-14 | pass→pass | 7,827 | 5,697 | -27% | 1 | 1 | 0% | 1,056 | 3,292 | +212% | 0 | 0 | — |
case-15 | pass→pass | 8,167 | 5,045 | -38% | 1 | 1 | 0% | 1,113 | 3,366 | +202% | 0 | 0 | — |
case-16 | pass→pass | 16,316 | 10,273 | -37% | 1 | 1 | 0% | 2,416 | 4,510 | +87% | 0 | 0 | — |
case-18 | pass→pass | 7,009 | 4,120 | -41% | 1 | 1 | 0% | 1,432 | 3,124 | +118% | 0 | 0 | — |
case-19 | pass→pass | 10,522 | 6,605 | -37% | 1 | 1 | 0% | 1,406 | 3,297 | +134% | 0 | 0 | — |
case-20 | fail→fail | 10,931 | 7,326 | -33% | 1 | 1 | 0% | 1,906 | 2,816 | +48% | 0 | 0 | — |
case-21 | fail→fail | 15,071 | 18,135 | +20% | 1 | 1 | 0% | 2,325 | 5,071 | +118% | 0 | 0 | — |
case-22 | fail→pass | 8,359 | 7,649 | -8% | 1 | 1 | 0% | 1,354 | 3,823 | +182% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +23 percentage points is the difference between those two pass rates over the 18 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.