HomeBlog

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

Basic API Call
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)

Success Response
{
  "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 Response
{
  "error": {
    "code": "ERROR_CODE",
    "message": "Error description",
    "status": 400,
    "retryAfterSeconds": 3600,
    "details": "Additional error details"
  }
}

Códigos de respuesta

Códigos de error

Integración MCP

YouTube2Text soporta el Protocolo de Contexto de Modelo (MCP) para integración perfecta con varios modelos de IA.

Anthropic Claude

Claude MCP Integration
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

OpenAI MCP Integration
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

Gemini Integration
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.