# YouTube Transcript — how to use (mcp.ai)

Connect your YouTube Transcript account and use 9 tools for transcription straight from your AI agent. Connect with your own API key. Retrieve and store captions for one video or a bounded batch, read job and batch status, access stored transcripts and languages, and resolve playlist or channel video metadata through the YouTube Transcript REST API.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_youtube_transcript?ms=1787295780000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `youtube_transcript_get_stored_transcript`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/youtube_transcript`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/youtube_transcript/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/youtube_transcript/get/stored/transcript` — Read a transcript already stored in the connected account without submitting new transcription work or consuming retrieval credits.
  - body: { source?: string, language?: string, video_id: string, transcript_id?: string, include_timestamps?: boolean }
- `POST https://api.mcp.ai/api/youtube_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
  - body: { video: string, source?: string, language?: string, include_words?: boolean, include_paragraphs?: boolean, include_timestamps?: boolean }
- `POST https://api.mcp.ai/api/youtube_transcript/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, passin
  - body: { job_id: string, include_words?: boolean, include_segments?: boolean, include_paragraphs?: boolean }
- `POST https://api.mcp.ai/api/youtube_transcript/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 se
  - body: { source?: string, language?: string, video_ids: string[], include_words?: boolean, include_paragraphs?: boolean, include_timestamps?: boolean }
- `POST https://api.mcp.ai/api/youtube_transcript/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 p
  - body: { batch_id: string }
- `POST https://api.mcp.ai/api/youtube_transcript/list/stored/transcripts` — List and search transcripts already stored in the connected account, one bounded page at a time.
  - body: { limit?: integer, search?: string, status?: string, date_to?: string, language?: string, date_from?: string, next_cursor?: string, include_segments?: boolean }
- `POST https://api.mcp.ai/api/youtube_transcript/list/transcript/languages` — List stored languages and YouTube translation target languages for one owned video transcript.
  - body: { video_id: string, include_youtube_default?: boolean }
- `POST https://api.mcp.ai/api/youtube_transcript/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.
  - body: { limit?: integer, handle?: string, channel_id?: string, channel_url?: string }
- `POST https://api.mcp.ai/api/youtube_transcript/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.
  - body: { limit?: integer, playlist_id?: string, playlist_url?: string }

## Example prompts
- "What can I do in YouTube Transcript?"
- "Show me a summary of my YouTube Transcript account"

## More
- Page: https://mcp.ai/youtube_transcript
- Agent spec (llms.txt): https://mcp.ai/youtube_transcript/llms.txt
- Postman collection: https://mcp.ai/youtube_transcript/postman.json
