← All guides

How to Use YouTube Transcripts in ChatGPT (Custom GPT + API)

Updated 2026-06-03

ChatGPT can't run a local MCP server the way Claude, Cursor, and Windsurf do — it runs in OpenAI's cloud, not on your machine. But you can still give it YouTube transcripts by wiring Scribefy's REST API into a Custom GPT Action. Here's how.

MCP vs. Custom GPT Actions (the honest version)

The Scribefy MCP server (scribefy-mcp) is a local npx program — ideal for desktop assistants that speak stdio MCP. ChatGPT's extension point is different: a Custom GPT calls Actions, which are plain HTTPS endpoints described by an OpenAPI schema. Scribefy's MCP server and its REST API are the same engine underneath, so you get the same transcripts — just over HTTP instead of stdio.

(On Claude, Cursor, or Windsurf, the MCP route is simpler — see the overview for all assistants.)

What you'll need

  • A Scribefy API key from the dashboard (the API + MCP plan).
  • ChatGPT on a plan that lets you create Custom GPTs.

Step 1 — Create a Custom GPT

In ChatGPT, go to Explore GPTs → Create, give it a name ("YouTube Researcher"), and in Instructions describe its job, e.g.:

When the user gives a YouTube URL, call the extractTranscript action and answer from the returned transcript, citing timestamps. If the user asks you to find videos, call searchVideos first.

Step 2 — Add the Action

Open Configure → Actions → Create new action. Set Authentication to API Key, type Bearer, and paste your sk_live_… key. Then paste this OpenAPI schema (keep only the endpoints you want):

openapi: 3.1.0
info:
  title: Scribefy
  version: "1.0.0"
servers:
  - url: https://api.scribefy.app
paths:
  /api/extract:
    post:
      operationId: extractTranscript
      summary: Extract a YouTube transcript with timestamps
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [url]
              properties:
                url:
                  type: string
                  description: Full YouTube URL
                lang:
                  type: string
                  description: BCP-47 language code (e.g. en, es)
      responses:
        "200":
          description: Transcript
  /api/search:
    post:
      operationId: searchVideos
      summary: Search YouTube videos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [query]
              properties:
                query:
                  type: string
                limit:
                  type: integer
      responses:
        "200":
          description: Results

ChatGPT attaches the Authorization: Bearer … header automatically once you've set the API-key auth, so your key lives in the GPT's settings — not in the prompt.

Step 3 — Test it

Save, then ask your GPT: "Summarize this video with timestamps: youtu.be/…" It calls extractTranscript, gets the transcript, and answers. Add the /api/info (metadata) and /api/related (related videos) endpoints to the schema if you want those too.

Things to keep in mind

  • Your key is in the GPT. Actions store the key server-side in the GPT's config. Don't paste it into the chat, and don't share the GPT's raw configuration.
  • Sharing means sharing your credits. If you publish the GPT, anyone who uses it calls your Action with your key — and your credits. Keep it private or link-only unless you mean to foot the bill. (Every endpoint is auth-gated, so without the key it does nothing — but the GPT carries your key.)
  • Cost. Only extractTranscript spends credits; cached videos are free. See pricing.

Frequently asked questions

Can ChatGPT use the MCP server directly?

Not the local stdio one. ChatGPT's integration model is Custom GPT Actions over HTTP. Desktop assistants like Claude, Cursor, and Windsurf use the MCP server.

Do I really need the OpenAPI schema?

Yes — Actions are defined by it. The snippet above is enough to start; it's the same REST API covered in the developer guide.

What about videos with no captions?

Scribefy reads existing captions (human or auto). For the caption-less case, see transcripts without captions.


Want the full API surface? See the developer guide, grab a key from the dashboard, and give your Custom GPT YouTube as a source.