DocumentaciónTu primera transcripción
Tu primera transcripción
Crea tu clave de API y prueba con un video o un archivo. Incluye ejemplos de cURL, Python y Node.js.
Para empezar necesitas una clave de API y un video o archivo que quieras transcribir. La API está en https://api.transcript1.com; envía tu clave en el header Authorization de cada request.
1. Regístrate y crea tu clave de API
Puedes registrarte con tu correo, Google o Microsoft. Al verificar tu correo recibes 60 minutos gratis, una sola vez por cuenta y sin tarjeta. Si eliges Google o Microsoft, los tienes desde el registro.
Abre “API keys” en el panel (/dashboard/account/tokens) y crea una clave. Empieza con t1_. Cópiala antes de cerrar la página: no podrás verla de nuevo. Guárdala en la variable TRANSCRIPT1_API_KEY:
export TRANSCRIPT1_API_KEY="t1_..."2. Prueba con un video
El ejemplo usa YouTube, pero también puedes enviar enlaces de X, TikTok, Instagram, Facebook, Bluesky, Twitch, Dailymotion, Pinterest, LinkedIn y Snapchat. En Fuentes y opciones encontrarás qué grabaciones públicas acepta cada plataforma. No hace falta indicar platform: la API reconoce la plataforma por el enlace.
Para crear la transcripción, envía la URL a POST /v1/transcriptions. Si agregas wait=60 a la URL del endpoint, el request puede esperar hasta 60 segundos. La respuesta de creación no trae el texto: se consulta por separado con GET /v1/transcriptions/:id?wait=60, como muestra el ejemplo de Python. El SDK de Node.js toma la clave de TRANSCRIPT1_API_KEY y se encarga de esperar y obtener el texto.
cURL
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'Python
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['TRANSCRIPT1_API_KEY']}"}
response = requests.post(
"https://api.transcript1.com/v1/transcriptions?wait=60",
headers=headers,
json={"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"},
)
response.raise_for_status()
transcription = response.json()
while True:
transcription = requests.get(
f"https://api.transcript1.com/v1/transcriptions/{transcription['id']}?wait=60",
headers=headers,
).json()
if transcription["status"] in ("completed", "failed", "canceled"):
break
if transcription["status"] == "completed":
print(transcription["transcript"]["text"])
else:
print(transcription["status"], transcription["error"])Node.js
Para ejecutar este ejemplo, guárdalo en index.mjs y corre node index.mjs. Si prefieres un archivo .js, configura "type": "module" en package.json.
// npm i @transcript1/sdk
import { Transcript1 } from '@transcript1/sdk';
const t1 = new Transcript1();
const transcription = await t1.transcribe('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
console.log(transcription.transcript.text);Sin cambiar las opciones, transcript1 busca primero subtítulos que pueda usar en el idioma original del video. Esto funciona en YouTube, X, TikTok, Bluesky, Dailymotion y LinkedIn. Si no los encuentra, transcribe el audio con IA. La compatibilidad de YouTube y X se mantiene; no todos los videos tienen una pista válida. Fuera de YouTube, los subtítulos incluyen marcas de tiempo por segmento, no por palabra.
Si eliges source=stt o activas la identificación de hablantes, se transcribe directamente el audio. El modo captions (solo subtítulos) nunca descarga audio ni usa STT. Revisa Fuentes y opciones antes de elegir.
3. Consulta la transcripción
El código HTTP indica si debes seguir esperando:
200: la transcripción llegó a un estado final durante la espera:completed,failedocanceled.202: todavía está en proceso. ConsultaGET /v1/transcriptions/:id?wait=60y repite hasta questatustenga un estado final. Cada consulta espera hasta 60 segundos.
Este es un ejemplo abreviado de una transcripción lista:
{
"id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
"object": "transcription",
"status": "completed",
"transcript_source": "youtube_captions",
"language": "en",
"billed_minutes": 4,
"transcript": {
"text": "Welcome back to the channel. Today we are looking at how transcripts are made.",
"speakers": [],
"segments": [
{ "start": 0, "end": 4.2, "speaker": null, "language": "en", "text": "Welcome back to the channel." },
{ "start": 4.2, "end": 9.8, "speaker": null, "language": "en", "text": "Today we are looking at how transcripts are made." }
]
}
}Lee el texto completo en transcript.text. En transcript.segments tienes cada fragmento con su inicio (start) y fin (end) en segundos.
También puedes descargar texto plano con text o subtítulos con srt o vtt:
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?format=srt" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY"El ejemplo llama a GET /v1/transcriptions/:id?format=srt. Solo recibirás el formato elegido cuando el estado sea completed. Mientras tanto, la API devuelve el objeto JSON con el estado actual.
4. Transcribe un archivo
Si tienes el audio o video en tu computadora y pesa hasta 95 MB, puedes subirlo en un solo request con multipart/form-data:
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected]Para archivos más grandes, de hasta 2 GB, usa la subida por partes. Si se interrumpe, puedes continuar donde se quedó. Consulta Cómo subir archivos.
Continúa con tu integración
- Fuentes y opciones: elige subtítulos o IA y configura el idioma y la identificación de hablantes.
- Cómo subir archivos: envía el archivo completo o divídelo en partes.
- Webhooks: recibe un request firmado al terminar la transcripción.
- Servidor MCP: conecta Claude, ChatGPT, Cursor, VS Code o Claude Code a transcript1.
- Referencia de la API: consulta los endpoints y sus parámetros.
Última actualización 14 de octubre de 2026