MCP avec l'API Responses d'OpenAI : des transcriptions YouTube pour GPT-5

L'API Responses d'OpenAI peut appeler directement des serveurs MCP distants — vous déclarez le serveur dans tools, et le modèle découvre et appelle ses outils tout seul. Branchez le serveur MCP de youtube2text.org et GPT-5 peut récupérer n'importe quelle transcription YouTube en pleine conversation sans que vous écriviez le moindre appel de récupération. J'ai testé exactement cette configuration avec gpt-5 aujourd'hui ; la config ci-dessous est prête à copier-coller.
Le bloc tool
Voici l'intégralité de l'intégration :
{
"type": "mcp",
"server_label": "youtube2text",
"server_url": "https://youtube2text.org/mcp",
"headers": {"x-api-key": "YOUR_KEY"},
"require_approval": "never"
}
Le champ headers transmet votre clé API youtube2text au serveur à chaque appel. require_approval: "never" évite l'aller-retour d'approbation humaine — raisonnable ici, puisque le seul outil est une récupération de transcription en lecture seule. Obtenez une clé via une connexion Google sur youtube2text.org/app/keys, ou récupérez la clé de démonstration partagée via GET https://youtube2text.org/api/demo-key (5 vidéos/mois par IP).
Exemple Python complet
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)
C'est tout. Aucun code de récupération de transcription, aucun parsing, aucun assemblage de prompt. Le modèle décide qu'il a besoin de la transcription, appelle l'outil, lit le résultat et rédige le résumé.
Ce qui se passe sous le capot
Parcourez resp.output et vous verrez la mécanique :
- Un élément
mcp_list_toolsapparaît en premier. L'API Responses s'est connectée àhttps://youtube2text.org/mcpet a récupéré le manifeste des outils — dans notre cas un seul outil,transcribe_video(url, maxChars?), qui renvoie{title, content, contentSize, videoId, pubDate, truncated}. Cet import a lieu une fois par conversation et est mis en cache pour les tours suivants. - Quand le modèle décide de l'appeler, un élément
mcp_callapparaît avec les arguments qu'il a choisis ({"url": "https://www.youtube.com/watch?v=..."}) et, une fois que le serveur répond, la sortie complète de l'outil. - Enfin, un élément
messageclassique avec la réponse du modèle, qui est ce que vous donneoutput_text.
Le serveur est en HTTP streamable et sans état, donc il n'y a aucune poignée de main de session à gérer — chaque appel est autonome. Si une vidéo n'a pas de sous-titres, l'outil renvoie une erreur TRANSCRIPT_UNAVAILABLE, que le modèle relaie en langage clair au lieu de faire planter votre exécution.
Une particularité à connaître
GPT-5 résume, analyse et cite volontiers de courts fragments de transcriptions. Demandez-lui en revanche de reproduire de longs passages mot pour mot, et il peut refuser — les garde-fous d'OpenAI sur le droit d'auteur se déclenchent sur la reproduction textuelle prolongée de contenu tiers. Dans mes tests d'aujourd'hui, les résumés, l'extraction de sujets et les questions-réponses ont fonctionné sans friction ; « rends-moi la transcription complète », non. Si vous avez besoin du texte brut, court-circuitez le modèle et appelez l'endpoint REST avec curl — sinon vous payez des tokens pour blanchir votre propre réponse d'API.
Note sur les coûts
Les transcriptions sont volumineuses. Une heure de parole représente environ 8 000 à 10 000 mots, qui atterrissent tous dans le contexte de GPT-5 en tant que sortie d'outil et sont facturés comme tokens d'entrée. Si vous résumez en volume, passez maxChars dans votre instruction de prompt (le modèle le transmet comme argument d'outil) ou prétraitez avec quelque chose de moins cher.
Même serveur, autres clients
Le même endpoint MCP fonctionne avec Claude — via le bloc mcp_servers de l'API Messages ou comme connecteur claude.ai et dans Claude Code — donc une seule clé youtube2text couvre tout votre zoo d'agents.
Les clés et les formules (de 5/mois gratuit jusqu'à illimité à 19,99 $) se trouvent sur youtube2text.org/app/keys.