Youtube CLI for AI Agents

Trusted by
AWS
Glean
Zoom
Airtable

30 min · no commitment · see it on your stack

Youtube logo
CLI logo
divider

Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.

With Composio's Universal CLI, your coding agents can talk to over 1000+ SaaS applications. With Youtube, agents can list your most recent uploaded videos, get subscriber count for your channel, search youtube for trending tutorials, and more — all without worrying about authentication.

This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Youtube automation.

Also integrate Youtube with

What is Universal CLI and why use it?

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:

  • Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
  • Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
  • Tool discovery: Search, inspect, and execute 20,000+ tools across 1000+ apps from one interface.
  • Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
  • Type generation: Generate typed schemas for autocomplete and type safety in your projects.

Prerequisites

Install the Composio CLI, authenticate, and initialize your project:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login

During login you'll be redirected to sign in page, finish the complete flow and you're all set.

Composio CLI authentication flow

Connecting Youtube to Coding Agents via Universal CLI

Once it is installed, it's essentially done. Claude Code, Codex, OpenCode, OpenClaw, or any other agent will be able to access the CLI. A few steps to give agents access to your apps.

  1. Launch your Coding Agent — Claude Code, Codex, OpenCode, anything you prefer.
  2. Prompt it to "Authenticate with Youtube"
  3. Complete the authentication and authorization flow and your Youtube integration is all set.
  4. Start asking anything you want.

Supported Tools & Triggers

Tools
Triggers
Add Video to PlaylistTool to add a video to a playlist by inserting a playlist item.
Insert Channel SectionTool to create a new channel section for the authenticated user's YouTube channel.
Insert Comment ReplyTool to create a reply to an existing YouTube comment.
Create PlaylistTool to create a new YouTube playlist on the authenticated user's channel.
Delete Channel SectionTool to delete a YouTube channel section.
Delete CommentTool to delete a YouTube comment owned by the authenticated user or channel.
Delete PlaylistTool to delete a YouTube playlist owned by the authenticated user/channel.
Delete Playlist ItemTool to delete a playlist item (remove a video from a playlist).
Delete VideoTool to delete a YouTube video owned by the authenticated user/channel.
Get Channel ActivitiesGets recent activities from a YouTube channel including video uploads, playlist additions, likes, and other channel events.
Get channel ID by handleRetrieves the YouTube Channel ID for a specific YouTube channel handle.
Get Channel StatisticsGets detailed statistics for YouTube channels including subscriber counts, view counts, and video counts.
Video Details BatchRetrieves multiple YouTube video resource parts in a single batch call.
Get Video RatingRetrieves the ratings that the authorized user gave to a list of specified videos.
List captionsRetrieves a list of caption tracks for a YouTube video.
List Channel SectionsTool to retrieve channel sections from YouTube.
List channel videosLists videos from a specified YouTube channel.
List CommentsList individual comments from YouTube videos.
List Comment ThreadsTool to retrieve comment threads from YouTube videos or channels matching API request parameters.
List I18n LanguagesReturns a list of application languages that the YouTube website supports.
List I18n RegionsTool to retrieve a list of content regions that the YouTube website supports.
List Live Chat MessagesTool to list live chat messages for a specific chat.
List Playlist ImagesTool to retrieve playlist images associated with a specific playlist.
List Playlist ItemsTool to list videos in a playlist, with pagination support.
List Super Chat EventsLists Super Chat events for a channel, showing supporter purchases during live streams.
List user playlistsRetrieves playlists owned by the authenticated user, implicitly using mine=True.
List user subscriptionsRetrieves the authenticated user's YouTube channel subscriptions, allowing specification of response parts and pagination.
List Video Abuse Report ReasonsTool to retrieve a list of abuse report reasons that can be used to report abusive videos on YouTube.
List Video CategoriesTool to list YouTube video categories that can be associated with videos.
Download YouTube caption trackDownloads a specific YouTube caption track, which must be owned by the authenticated user, and returns its content as text.
Multipart upload videoUploads a video to YouTube using multipart upload in a single request.
Post Comment on VideoTool to post a new top-level comment on a YouTube video.
Rate VideoTool to add a like or dislike rating to a YouTube video, or remove an existing rating.
Report Video for AbuseTool to report a YouTube video for containing abusive content.
Search YouTubeSearches YouTube for videos, channels, or playlists using a query term, returning the raw API response.
Set Comment Moderation StatusTool to set the moderation status of one or more YouTube comments.
Subscribe to channelSubscribes the authenticated user to a specified YouTube channel, identified by its unique `channelId` which must be valid and existing.
Unsubscribe from channelTool to unsubscribe the authenticated user from a YouTube channel by deleting a subscription.
Update caption trackUpdates a YouTube caption track's metadata such as name, language, or draft status.
Update channelUpdates a channel's metadata including branding settings and localizations.
Update Channel SectionTool to update an existing YouTube channel section by ID.
Update CommentTool to modify the text of an existing YouTube comment.
Update PlaylistTool to modify an existing YouTube playlist's metadata (title, description, privacy status).
Update Playlist ItemTool to modify a playlist item's properties such as position or note.
Update thumbnailSets the custom thumbnail for a YouTube video using an image from a URL.
Update videoUpdates metadata for a YouTube video identified by videoId, which must exist; an empty list for tags removes all existing tags.
Upload videoUploads a video from a local file path to a YouTube channel; the video file must be in a YouTube-supported format.

Universal CLI Commands for Youtube

You can also manually execute CLI commands to interact with your Youtube.

Connect your Youtube account

Link your Youtube account and verify the connection:

bash
# Connect your Youtube account (opens OAuth flow)
composio connected-accounts link youtube

# Verify the connection
composio connected-accounts list --toolkits youtube

Discover Youtube tools

Search and inspect available Youtube tools:

bash
# List all available Youtube tools
composio tools list --toolkit youtube

# Search for Youtube tools by action
composio tools search "youtube"

# Inspect a tool's input schema
composio tools info YOUTUBE_GET_CHANNEL_ACTIVITIES

Common Youtube Actions

Get Channel ActivitiesGets recent activities from a youtube channel including video uploads, playlist additions, likes, and other channel events

bash
composio tools execute YOUTUBE_GET_CHANNEL_ACTIVITIES \
  --channelId "UCBJycsmduvYEL83R_U4JriQ"

Get channel ID by handleRetrieves the youtube channel id for a specific youtube channel handle

bash
composio tools execute YOUTUBE_GET_CHANNEL_ID_BY_HANDLE \
  --channel_handle "@Google"

Get Channel StatisticsGets detailed statistics for youtube channels including subscriber counts, view counts, and video counts

bash
composio tools execute YOUTUBE_GET_CHANNEL_STATISTICS \
  --id "UCddiUEpeqJcYeBxX1IVBKvQ"

List captionsRetrieves a list of caption tracks for a youtube video, returning an empty list if no captions exist or failing if the video id is invalid or not found

bash
composio tools execute YOUTUBE_LIST_CAPTION_TRACK \
  --videoId "dQw4w9WgXcQ"

Set up Youtube Triggers

Listen for events in real time using triggers:

New YouTube ActivityTriggers when a new activity is detected on a YouTube channel

bash
# Find your connected account ID
composio connected-accounts list --toolkits youtube

# Create a trigger
composio triggers create YOUTUBE_NEW_ACTIVITY_TRIGGER \
  --connected-account-id <your-connected-account-id> \
  --trigger-config '{
  "interval": 2,
  "channel_id": "<string>"
}'

# Listen for trigger events in real time
composio triggers listen --toolkits youtube --table

New Item in YouTube PlaylistTriggers when a new item is added to a YouTube playlist

bash
# Find your connected account ID
composio connected-accounts list --toolkits youtube

# Create a trigger
composio triggers create YOUTUBE_NEW_PLAYLIST_ITEM_TRIGGER \
  --connected-account-id <your-connected-account-id> \
  --trigger-config '{
  "interval": 2,
  "playlist_id": "<string>"
}'

# Listen for trigger events in real time
composio triggers listen --toolkits youtube --table

New Playlist in YouTube ChannelTriggers when a new playlist is added to a YouTube channel

bash
# Find your connected account ID
composio connected-accounts list --toolkits youtube

# Create a trigger
composio triggers create YOUTUBE_NEW_PLAYLIST_TRIGGER \
  --connected-account-id <your-connected-account-id> \
  --trigger-config '{
  "interval": 2,
  "channel_id": "<string>"
}'

# Listen for trigger events in real time
composio triggers listen --toolkits youtube --table

Generate Type Definitions

Generate typed schemas for Youtube tools to get autocomplete and type safety in your project:

bash
# Auto-detect language
composio generate --toolkits youtube

# TypeScript
composio ts generate --toolkits youtube

# Python
composio py generate --toolkits youtube

Tips & Tricks

  • Always inspect a tool's input schema before executing: composio tools info <TOOL_NAME>
  • Pipe output with jq for better readability: composio tools execute TOOL_NAME -d '{}' | jq
  • Set COMPOSIO_API_KEY as an environment variable for CI/CD pipelines
  • Use composio dev logs tools to inspect execution logs and debug issues

Next Steps

  • Try asking your coding agent to perform various Youtube operations
  • Explore cross-app workflows by connecting more toolkits
  • Set up triggers for real-time automation
  • Use composio generate for typed schemas in your projects

How to build Youtube MCP Agent with another framework

FAQ

What is the Composio Universal CLI?

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 1000+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

Which coding agents work with the Composio CLI?

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Youtube and other connected apps.

How is the CLI different from using an MCP server for Youtube?

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

How safe is my Youtube data when using the Composio CLI?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Youtube data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.