Guía de uso de la API YouTube2Text
YouTube2Text es una utilidad para extraer transcripciones de texto puro de videos de YouTube (sin códigos de tiempo de subtítulos y otros metadatos) para análisis, insights, resúmenes, generación de contenido y otras aplicaciones de procesamiento de texto.
Comenzando
Para comenzar rápidamente, puede obtener una clave de API de demostración visitando https://api.youtube2text.org. Sin embargo, las claves de demostración rotan con frecuencia y tienen cuotas de uso limitadas. Para uso en producción o uso regular, considere suscribirse a uno de los planes disponibles para una clave de API estable y dedicada con cuotas más altas.
Uso directo de la API
La API YouTube2Text está disponible en https://api.youtube2text.org. El endpoint principal para transcripción es /transcribe.
Solicitud CURL básica
curl -X POST https://api.youtube2text.org/transcribe \ -H "Content-Type: application/json" \ -H "x-api-key: YT2TEXT_API_KEY" \ -d '{ "url": "https://www.youtube.com/watch?v=VIDEO_ID" }'
Parámetros de entrada
url (requerido): La URL completa del video de YouTube; maxChars (opcional): Máximo de caracteres a devolver (por defecto 150,000)
Estructura de respuesta
Respuesta exitosa (200)
{ "result": { "videoId": "VIDEO_ID", "title": "Video Title", "pubDate": "2025-06-30T08:45:04-07:00", "content": "The full video transcription text without timestamps...", "contentSize": 12345, "truncated": false } }
Respuesta de error (400/401/404/429/500)
{ "error": { "code": "ERROR_CODE", "message": "Error description", "status": 400, "retryAfterSeconds": 3600, "details": "Additional error details" } }
Códigos de respuesta
- 200: Éxito - transcripción recuperada
- 400: Solicitud incorrecta - URL inválida o error de validación
- 401: No autorizado - clave de API faltante o inválida
- 404: No encontrado - video no encontrado o transcripción no disponible
- 429: Límite de velocidad - cuota excedida o demasiadas solicitudes
- 500: Error interno del servidor - problema del lado del servidor
Códigos de error
- VALIDATION_ERROR: URL inválida o parámetros faltantes
- UNAUTHORIZED: Clave de API inválida o expirada
- VIDEO_NOT_FOUND: Video de YouTube no encontrado
- TRANSCRIPT_UNAVAILABLE: No hay transcripción disponible para este video
- INVALID_URL: URL de YouTube mal formada
- RATE_LIMIT_EXCEEDED: Cuota mensual excedida o límite de velocidad
- INTERNAL_ERROR: Error del lado del servidor
Integración MCP
YouTube2Text soporta el Protocolo de Contexto de Modelo (MCP) para integración perfecta con varios modelos de IA.
Anthropic Claude
import anthropic from anthropic.types.beta import BetaRequestMCPServerURLDefinitionParam, BetaMessageParam default_key = "ANTHROPIC_API_KEY" client = anthropic.Anthropic(api_key=default_key) server = BetaRequestMCPServerURLDefinitionParam( name="youtube2text", type="url", url="https://api.youtube2text.org/mcp", authorization_token="YT2TEXT_API_KEY" ) prompt_message = BetaMessageParam(role="user", content="Please use the tools from the remote MCP server to help me. Provide the transcription of https://www.youtube.com/watch?v=DCv5p_eJTlU") response = client.beta.messages.create( model="claude-sonnet-4-20250514", max_tokens=10000, messages=[prompt_message], # Direct MCP server connection - no manual tool definition needed! mcp_servers=[server], # Required beta header for MCP connector extra_headers={ "anthropic-beta": "mcp-client-2025-04-04", } ) print(response.content)
OpenAI
from openai import OpenAI from openai.types.responses.tool_param import Mcp import os os.environ["OPENAI_API_KEY"] = "OPENAI_API_KEY" client = OpenAI() youtube_transcribe_mcp = Mcp( type="mcp", server_label="youtube2text", server_url="https://api.youtube2text.org/mcp", require_approval="never", headers={"Authorization": "Bearer YT2TEXT_API_KEY"} ) resp = client.responses.create( model="gpt-4.1", tools=[youtube_transcribe_mcp], input="Please use the tools from the remote MCP server to help me. Provide the transcription of https://www.youtube.com/watch?v=DCv5p_eJTlU", ) print(resp.output_text)
Google Gemini
import google.generativeai as genai import requests genai.configure(api_key="GEMINI_API_KEY") YOUTUBE_TRANSCRIPT_API_URL = "https://api.youtube2text.org/mcp" YOUTUBE_TRANSCRIPT_API_TOKEN = "YT2TEXT_API_KEY" # Define the External Tool (Function) def get_youtube_transcription(video_url: str): """ Retrieves the transcription of a YouTube video from a given URL. Args: video_url: The full URL of the YouTube video. """ headers = { "Content-Type": "application/json", "Authorization": f"Bearer {YOUTUBE_TRANSCRIPT_API_TOKEN}" } payload = {"url": video_url} try: response = requests.post(YOUTUBE_TRANSCRIPT_API_URL, headers=headers, json=payload) response.raise_for_status() return response.json() except requests.exceptions.RequestException as e: return {"error": str(e)} # Set up the Gemini Model with the Tool model = genai.GenerativeModel( model_name='gemini-2.5-flash', tools=[get_youtube_transcription] ) # Start a Chat Session and Send the Prompt chat = model.start_chat(enable_automatic_function_calling=True) prompt = "Please provide the transcription of https://www.youtube.com/watch?v=DCv5p_eJTlU" response = chat.send_message(prompt) print(response.text)
Integración de plataformas de automatización
Integración con Zapier
YouTube2Text puede integrarse con Zapier a través de conexiones MCP. La función AI Actions de Zapier soporta servidores MCP, permitiendo crear flujos de trabajo automatizados que activen transcripciones de video.
Integración con n8n
n8n soporta integración MCP a través de nodos personalizados y nodos de solicitud HTTP. Puede conectar el endpoint MCP de YouTube2Text a flujos de trabajo de n8n para pipelines automatizados de procesamiento de video.
Ejemplos adicionales
Para más ejemplos de implementación, patrones de uso avanzados y guías de integración, visite el repositorio del proyecto para documentación completa y ejemplos de código.