# YouTube Transcript

```json
{
  "name": "YouTube Transcript",
  "slug": "youtube_transcript",
  "url": "https://composio.dev/toolkits/youtube_transcript",
  "markdown_url": "https://composio.dev/toolkits/youtube_transcript.md",
  "logo_url": "https://logos.composio.dev/api/youtube_transcript",
  "categories": [
    "entertainment & media"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-04T15:13:27.887Z"
}
```

![YouTube Transcript logo](https://logos.composio.dev/api/youtube_transcript)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with YouTube Transcript MCP or direct API to retrieve captions, store transcripts, check job status, and resolve playlist or channel video metadata through natural language.

## Summary

YouTube Transcript is a REST API for retrieving, storing, and reading YouTube video captions and transcript metadata.
Use it to turn YouTube videos, playlists, and channels into searchable transcript data.

## Categories

- entertainment & media

## Toolkit Details

- Tools: 9

## Images

- Logo: https://logos.composio.dev/api/youtube_transcript

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for YouTube Transcript.
  - Setup:
    - Configure Api Key credentials for YouTube Transcript.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Summarize transcript for this YouTube video
- Fetch captions for playlist videos
- List stored transcript language options

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `YOUTUBE_TRANSCRIPT_GET_STORED_TRANSCRIPT` | Get Stored Transcript | Read a transcript already stored in the connected account without submitting new transcription work or consuming retrieval credits. |
| `YOUTUBE_TRANSCRIPT_GET_VIDEO_TRANSCRIPT` | Get Video Transcript | Fetch captions for one YouTube video and store the resulting transcript in the connected account. This consumes provider credits, but never starts ASR. The tool waits up to 20 seconds for asynchronous caption jobs; if one is still processing, use GET_VIDEO_TRANSCRIPT_JOB_STATUS with the job_id from the timeout. |
| `YOUTUBE_TRANSCRIPT_GET_VIDEO_TRANSCRIPT_JOB_STATUS` | Get Video Transcript Job Status | Read one transcript job's current processing, completed, failed, or requires-ASR-confirmation state without creating work or waiting. Use this one-shot read when GET_VIDEO_TRANSCRIPT times out, passing the same include flags to recover the requested transcript shape. |
| `YOUTUBE_TRANSCRIPT_GET_VIDEO_TRANSCRIPTS_BATCH` | Get Video Transcripts Batch | Fetch and store captions for 1-10 YouTube videos. Each uncached video can consume provider credits, so cost scales with the request size. ASR never starts. This creates one batch and waits up to 20 seconds for a terminal result; if it is still processing, use GET_VIDEO_TRANSCRIPTS_BATCH_STATUS with the batch_id from the timeout. |
| `YOUTUBE_TRANSCRIPT_GET_VIDEO_TRANSCRIPTS_BATCH_STATUS` | Get Video Transcripts Batch Status | Read the current state and available per-video results for a transcript batch without creating work or waiting. Use this one-shot read to recover when GET_VIDEO_TRANSCRIPTS_BATCH times out while the provider is still processing. |
| `YOUTUBE_TRANSCRIPT_LIST_STORED_TRANSCRIPTS` | List Stored Transcripts | List and search transcripts already stored in the connected account, one bounded page at a time. |
| `YOUTUBE_TRANSCRIPT_LIST_TRANSCRIPT_LANGUAGES` | List Transcript Languages | List stored languages and YouTube translation target languages for one owned video transcript. |
| `YOUTUBE_TRANSCRIPT_RESOLVE_CHANNEL_VIDEOS` | Resolve Channel Videos | Requires Basic or higher. Resolve a YouTube channel into bounded upload metadata without transcribing the videos. This may count against the account's monthly channel allowance. |
| `YOUTUBE_TRANSCRIPT_RESOLVE_PLAYLIST_VIDEOS` | Resolve Playlist Videos | Requires Basic or higher. Resolve a YouTube playlist into bounded video metadata without transcribing the videos. This may count against the account's monthly playlist allowance. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to YouTube Transcript
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["youtube_transcript"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["youtube_transcript"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run YouTube Transcript tools with your agent

Send a request, execute the YouTube Transcript tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "Retrieve and store the English transcript for YouTube video dQw4w9WgXcQ, then summarize the key points"}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "Retrieve and store the English transcript for YouTube video dQw4w9WgXcQ, then summarize the key points" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to YouTube Transcript and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["youtube_transcript"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["youtube_transcript"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a YouTube Transcript request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to YouTube Transcript tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("Retrieve and store the English transcript for YouTube video dQw4w9WgXcQ, then summarize the key points")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "Retrieve and store the English transcript for YouTube video dQw4w9WgXcQ, then summarize the key points",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native YouTube Transcript Integration

- Supports both YouTube Transcript MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable caption and transcript workflows
- Rich coverage for retrieving captions, storing transcripts, checking jobs, reading languages, and resolving playlist or channel video metadata

### 2. Managed Auth

- Secure API key handling without hard-coding YouTube Transcript credentials in your agent code
- Central place to manage, scope, and revoke YouTube Transcript access
- Per user and per environment credentials, so your dev, staging, and production agents stay cleanly separated

### 3. Agent Optimized Design

- Tools are designed so AI agents can clearly understand when to fetch captions, check batch status, or read stored transcripts
- Reliable schemas help reduce messy tool calls when agents work with video IDs, playlist IDs, channel metadata, and transcript languages
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access YouTube Transcript
- Scoped, least privilege access to transcript retrieval and stored caption data
- Full audit trail of agent actions to support review, compliance, and debugging

## Use YouTube Transcript with any AI Agent Framework

Choose a framework you want to connect YouTube Transcript with:

None listed.

## Related Toolkits

- [Youtube](https://composio.dev/toolkits/youtube) - YouTube is a leading video-sharing platform for uploading, streaming, and discovering content. It empowers creators and businesses to reach global audiences and monetize their work.
- [AllTrails MCP](https://composio.dev/toolkits/alltrails_mcp) - AllTrails MCP is a trail discovery service for hiking, biking, and running routes. Use it to find reviewed trails, photos, maps, difficulty info, and route details fast.
- [Amara](https://composio.dev/toolkits/amara) - Amara is a collaborative platform for creating and managing subtitles and captions for videos. It helps make content accessible and multilingual for global audiences.
- [Captions](https://composio.dev/toolkits/captions) - Captions provides the Mirage API for generating videos, speech, and styled captions. Use it to automate polished video creation, voiceovers, and captioning from one API.
- [Cats](https://composio.dev/toolkits/cats) - Cats is an API with a huge library of cat images, breed data, and cat facts. It makes finding adorable cat photos and trivia effortless for your apps and users.
- [Chatfai](https://composio.dev/toolkits/chatfai) - Chatfai is an AI platform that lets users talk to AI versions of fictional characters from books, movies, and games. It offers an engaging, interactive experience for fans to chat, roleplay, and explore creative dialogues.
- [Cincopa](https://composio.dev/toolkits/cincopa) - Cincopa is a multimedia platform for uploading, managing, and customizing videos, images, and audio. It helps you deliver engaging media experiences with robust APIs and flexible integrations.
- [Descript MCP](https://composio.dev/toolkits/descript_mcp) - Descript MCP is a media processing and project workflow service for creators and teams. It streamlines media import, automated processing, and job management.
- [Dungeon fighter online](https://composio.dev/toolkits/dungeon_fighter_online) - Dungeon Fighter Online (DFO) is an arcade-style, side-scrolling action RPG packed with dynamic combat and progression. Play solo or with friends to battle monsters, complete quests, and upgrade your characters.
- [Elevenlabs](https://composio.dev/toolkits/elevenlabs) - Elevenlabs is an advanced AI voice generation platform for lifelike, multilingual speech synthesis. Perfect for creating natural voices for videos, apps, and business content in seconds.
- [Elevenreader](https://composio.dev/toolkits/elevenreader) - Elevenreader is an AI-powered text-to-speech service by ElevenLabs that converts written content into lifelike audio. It enables fast, natural audio generation from any text.
- [Epic games](https://composio.dev/toolkits/epic_games) - Epic Games is a leading video game publisher and digital storefront, known for Fortnite and Unreal Engine. It lets gamers access, manage, and purchase games all in one place.
- [Eranol](https://composio.dev/toolkits/eranol) - Eranol is an API-driven media conversion service for video, audio, and FFmpeg workflows. It helps teams automate reliable transcoding, format conversion, and media processing at scale.
- [Fal.ai](https://composio.dev/toolkits/fal_ai) - Fal.ai is a generative media platform offering 600+ AI models for images, video, voice, and audio. Developers use Fal.ai for fast, scalable access to cutting-edge generative AI tools.
- [Giphy](https://composio.dev/toolkits/giphy) - Giphy is the largest online library for searching and sharing GIFs and stickers. Instantly add vibrant animated content to your apps, chats, and workflows.
- [Headout](https://composio.dev/toolkits/headout) - Headout is a global platform for booking travel experiences, tours, and entertainment. It helps users discover and secure activities at top destinations, all in one place.
- [Imagekit io](https://composio.dev/toolkits/imagekit_io) - ImageKit.io is a cloud-based media management platform for image and video delivery. Instantly optimize, transform, and deliver visuals globally via a lightning-fast CDN.
- [Listennotes](https://composio.dev/toolkits/listennotes) - Listennotes is a powerful podcast search engine with a massive global database. Discover, search, and curate podcasts from around the world in seconds.
- [News api](https://composio.dev/toolkits/news_api) - News api is a REST API for searching and retrieving live news articles from across the web. Instantly access headlines, coverage, and breaking stories from thousands of sources.
- [RAWG Video Games Database](https://composio.dev/toolkits/rawg_video_games_database) - RAWG Video Games Database is the largest video game discovery and info service. Instantly access comprehensive details, ratings, and release dates for thousands of games.

## Frequently Asked Questions

### Do I need my own developer credentials to use YouTube Transcript with Composio?

Yes, YouTube Transcript requires you to configure your own API key credentials. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
