{
  "info": {
    "name": "YouTube Transcript — mcp.ai",
    "description": "REST API for the YouTube Transcript MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/youtube_transcript",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "youtube_transcript_get_stored_transcript",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/stored/transcript",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "stored",
            "transcript"
          ]
        },
        "description": "Read a transcript already stored in the connected account without submitting new transcription work or consuming retrieval credits.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"source\": \"\",\n  \"language\": \"\",\n  \"video_id\": \"\",\n  \"transcript_id\": \"\",\n  \"include_timestamps\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "youtube_transcript_get_video_transcript",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/video/transcript",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "video",
            "transcript"
          ]
        },
        "description": "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": {
          "mode": "raw",
          "raw": "{\n  \"video\": \"\",\n  \"source\": \"\",\n  \"language\": \"\",\n  \"include_words\": false,\n  \"include_paragraphs\": false,\n  \"include_timestamps\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "youtube_transcript_get_video_transcript_job_status",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/video/transcript/job/status",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "video",
            "transcript",
            "job",
            "status"
          ]
        },
        "description": "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": {
          "mode": "raw",
          "raw": "{\n  \"job_id\": \"\",\n  \"include_words\": false,\n  \"include_segments\": false,\n  \"include_paragraphs\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "youtube_transcript_get_video_transcripts_batch",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/video/transcripts/batch",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "video",
            "transcripts",
            "batch"
          ]
        },
        "description": "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": {
          "mode": "raw",
          "raw": "{\n  \"source\": \"\",\n  \"language\": \"\",\n  \"video_ids\": \"\",\n  \"include_words\": false,\n  \"include_paragraphs\": false,\n  \"include_timestamps\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "youtube_transcript_get_video_transcripts_batch_status",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/video/transcripts/batch/status",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "video",
            "transcripts",
            "batch",
            "status"
          ]
        },
        "description": "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": {
          "mode": "raw",
          "raw": "{\n  \"batch_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "youtube_transcript_list_stored_transcripts",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/stored/transcripts",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "stored",
            "transcripts"
          ]
        },
        "description": "List and search transcripts already stored in the connected account, one bounded page at a time.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"search\": \"\",\n  \"status\": \"\",\n  \"date_to\": \"\",\n  \"language\": \"\",\n  \"date_from\": \"\",\n  \"next_cursor\": \"\",\n  \"include_segments\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "youtube_transcript_list_transcript_languages",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/transcript/languages",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "transcript",
            "languages"
          ]
        },
        "description": "List stored languages and YouTube translation target languages for one owned video transcript.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"video_id\": \"\",\n  \"include_youtube_default\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "youtube_transcript_resolve_channel_videos",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/resolve/channel/videos",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "resolve",
            "channel",
            "videos"
          ]
        },
        "description": "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": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"handle\": \"\",\n  \"channel_id\": \"\",\n  \"channel_url\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "youtube_transcript_resolve_playlist_videos",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/resolve/playlist/videos",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "resolve",
            "playlist",
            "videos"
          ]
        },
        "description": "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": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"playlist_id\": \"\",\n  \"playlist_url\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}