# 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.

Canonical: https://transcript1.com/es/docs/getting-started
Language: es
Last updated: 2026-10-14

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](https://transcript1.com/signup) 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”](https://transcript1.com/dashboard/account/tokens) 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`:

```bash
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](https://transcript1.com/es/docs/sources-and-options) 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

```bash
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

```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`.

```javascript
// 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](https://transcript1.com/es/docs/sources-and-options) 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`, `failed` o `canceled`.
- `202`: todavía está en proceso. Consulta `GET /v1/transcriptions/:id?wait=60` y repite hasta que `status` tenga un estado final. Cada consulta espera hasta 60 segundos.

Este es un ejemplo abreviado de una transcripción lista:

```json
{
  "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`:

```bash
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`:

```bash
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -F file=@interview.m4a
```

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](https://transcript1.com/es/docs/uploads).

## Continúa con tu integración

- [Fuentes y opciones](https://transcript1.com/es/docs/sources-and-options): elige subtítulos o IA y configura el idioma y la identificación de hablantes.
- [Cómo subir archivos](https://transcript1.com/es/docs/uploads): envía el archivo completo o divídelo en partes.
- [Webhooks](https://transcript1.com/es/docs/webhooks): recibe un request firmado al terminar la transcripción.
- [Servidor MCP](https://transcript1.com/es/docs/mcp): conecta Claude, ChatGPT, Cursor, VS Code o Claude Code a transcript1.
- [Referencia de la API](https://transcript1.com/es/docs/api-reference): consulta los endpoints y sus parámetros.
