Youtube CLI for AI Agents

Framework Integration Gradient
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 850+ 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 850+ 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
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.
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.
List channel videosLists videos from a specified youtube channel, ensuring results are of `type: 'video'`.
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.
Download YouTube caption trackDownloads a specific youtube caption track, which must be owned by the authenticated user, and returns its content as text.
Search YouTubeSearches youtube for videos, channels, or playlists using a query term, returning the raw api response.
Subscribe to channelSubscribes the authenticated user to a specified youtube channel, identified by its unique `channelid` which must be valid and existing.
Update thumbnailSets the custom thumbnail for a youtube video using an image from thumbnailurl; the authenticated user must have permission to edit the video.
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.
Video detailsRetrieves specified information parts (e.

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 850+ 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.