MCP i OpenAI Responses API: YouTube-transkriptioner för GPT-5

OpenAI Responses API kan anropa fjärr-MCP-servrar direkt — du deklarerar servern i tools, och modellen upptäcker och anropar dess verktyg på egen hand. Koppla in youtube2text.org:s MCP-server så kan GPT-5 hämta vilken YouTube-transkription som helst mitt i konversationen utan att du skriver ett enda fetch-anrop. Jag testade exakt den här uppsättningen mot gpt-5 i dag; konfigurationen nedan är redo att kopieras rakt av.
Tool-blocket
Detta är hela integrationen:
{
"type": "mcp",
"server_label": "youtube2text",
"server_url": "https://youtube2text.org/mcp",
"headers": {"x-api-key": "YOUR_KEY"},
"require_approval": "never"
}
Fältet headers skickar med din youtube2text-API-nyckel till servern vid varje anrop. require_approval: "never" hoppar över rundturen med mänskligt godkännande — rimligt här, eftersom det enda verktyget är en skrivskyddad transkriptionshämtning. Skaffa en nyckel via Google-inloggning på youtube2text.org/app/keys, eller hämta den delade demonyckeln från GET https://youtube2text.org/api/demo-key (5 videor/månad per IP).
Komplett Python-exempel
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-5",
tools=[{
"type": "mcp",
"server_label": "youtube2text",
"server_url": "https://youtube2text.org/mcp",
"headers": {"x-api-key": "YOUR_KEY"},
"require_approval": "never",
}],
input="Summarize https://www.youtube.com/watch?v=dQw4w9WgXcQ "
"in five bullet points.",
)
print(resp.output_text)
Det är allt. Ingen kod för transkriptionshämtning, ingen parsning, ingen prompthopsättning. Modellen bestämmer sig för att den behöver transkriptionen, anropar verktyget, läser resultatet och skriver sammanfattningen.
Vad som händer under huven
Gå igenom resp.output så ser du maskineriet:
- Ett
mcp_list_tools-objekt dyker upp först. Responses API anslöt tillhttps://youtube2text.org/mcpoch hämtade verktygsmanifestet — i vårt fall ett enda verktyg,transcribe_video(url, maxChars?), som returnerar{title, content, contentSize, videoId, pubDate, truncated}. Den här importen sker en gång per konversation och cachas i efterföljande turer. - När modellen bestämmer sig för att anropa det dyker ett
mcp_call-objekt upp med argumenten den valde ({"url": "https://www.youtube.com/watch?v=..."}) och, när servern svarat, hela verktygsutdatan. - Slutligen ett vanligt
message-objekt med modellens svar, vilket är vadoutput_textger dig.
Servern är streamable HTTP och tillståndslös, så det finns ingen sessionshandskakning att hantera — varje anrop står för sig självt. Om en video saknar undertexter returnerar verktyget ett TRANSCRIPT_UNAVAILABLE-fel, som modellen vidarebefordrar på vanlig engelska i stället för att krascha din körning.
En egenhet värd att känna till
GPT-5 sammanfattar, analyserar och citerar gärna korta fragment ur transkriptioner. Be den däremot återge långa ordagranna passager, och den kan vägra — OpenAI:s upphovsrättsskydd slår till vid utdragen ord-för-ord-återgivning av tredjepartsinnehåll. I mina tester i dag fungerade sammanfattningar, ämnesextraktion och Q&A friktionsfritt; "give me the full transcript back" gjorde det inte. Behöver du råtexten, hoppa över modellen helt och anropa REST-endpointen med curl — annars betalar du tokens för att tvätta ditt eget API-svar.
Kostnadsnotering
Transkriptioner är stora. En timmes tal är ungefär 8 000–10 000 ord, som allihop landar i GPT-5:s kontext som verktygsutdata och debiteras som input-tokens. Om du sammanfattar i volym, skicka med maxChars i din promptinstruktion (modellen vidarebefordrar det som verktygsargument) eller förbehandla med något billigare.
Samma server, andra klienter
Den identiska MCP-endpointen fungerar med Claude — via mcp_servers-blocket i Messages API eller som en claude.ai-connector och i Claude Code — så en enda youtube2text-nyckel täcker hela din agentmenageri.
Nycklar och planer (gratis 5/mån upp till obegränsat för 19,99 USD) finns på youtube2text.org/app/keys.