DocumentaciónFuentes y opciones de transcripción
Fuentes y opciones de transcripción
Revisa qué enlaces puedes enviar y cómo elegir subtítulos o IA, identificar hablantes y configurar el idioma.
Puedes enviar un enlace de YouTube, X, TikTok, Instagram, Facebook o Bluesky, o subir tu propio archivo. Más abajo encontrarás las demás plataformas y los enlaces que acepta cada una. Para elegir entre subtítulos e IA, identificar hablantes o indicar el idioma, agrega source, diarize y language al cuerpo de POST /v1/transcriptions. Los tres campos son opcionales.
¿De qué plataformas puedes enviar enlaces?
Pon el enlace en url. No necesitas enviar platform: la API reconoce la plataforma. Si incluyes ese campo, su valor debe corresponder al enlace.
| Plataforma | Enlaces aceptados |
|---|---|
YouTube (youtube) | Consulta los formatos de URL de video en la siguiente sección. |
X (x) | Enlaces a publicaciones con video de x.com o twitter.com, por ejemplo https://x.com/user/status/1234567890. |
TikTok (tiktok) | Enlaces a videos de tiktok.com. También funcionan los enlaces cortos de vm.tiktok.com, vt.tiktok.com y www.tiktok.com/t/. |
Instagram (instagram) | Videos y reels de instagram.com con las rutas /reel/, /reels/, /p/ o /tv/. El enlace también puede llevar el nombre de usuario antes de la ruta del reel o de la publicación. |
Facebook (facebook) | Videos y reels de facebook.com, incluidos los enlaces de watch. También acepta enlaces cortos de fb.watch, /share/v/ y /share/r/. |
Bluesky (bluesky) | Enlaces a publicaciones con video de bsky.app, por ejemplo https://bsky.app/profile/user.example/post/3l3w4b5c6d7e2. |
Twitch (twitch) | Grabaciones de transmisiones ya terminadas: twitch.tv/videos/<id> o /<channel>/v/<id> (también admite video). Para clips: clips.twitch.tv/<slug>, twitch.tv/<channel>/clip/<slug> y /clip/<slug>. Acepta los hosts twitch.tv, www, m, go y clips.twitch.tv. |
Dailymotion (dailymotion) | Videos con las rutas dailymotion.com/video/<id>, con _title opcional, /embed/video/<id> o dai.ly/<id>. Acepta también www.dailymotion.com y touch.dailymotion.com. |
Pinterest (pinterest) | Pines cuyo video está alojado en Pinterest: pinterest.com o www.pinterest.com, con /pin/<id>/ o /pin/<slug>--<id>/. Toma el primer bloque de video nativo. No acepta videos insertados desde otro sitio, imágenes, tableros, pin.it ni dominios regionales. |
LinkedIn (linkedin) | Videos de publicaciones públicas en linkedin.com o www.linkedin.com, con /posts/<slug>-<activity-id>-<four-character-suffix> o /feed/update/urn:li:activity:<id>/. No acepta perfiles, LinkedIn Learning, eventos ni enlaces lnkd.in. |
Snapchat Spotlight (snapchat) | Enlaces de Spotlight en snapchat.com o www.snapchat.com con la ruta /spotlight/<id>. Las historias y los perfiles no funcionan. |
Para Twitch, Dailymotion, Pinterest, LinkedIn y Snapchat Spotlight, usa HTTPS, sin credenciales en la URL ni puertos personalizados. El enlace debe apuntar a una grabación individual y pública. No funcionan las publicaciones privadas o que exigen iniciar sesión, las transmisiones en vivo o aún en procesamiento, los perfiles, los feeds ni las colecciones. transcript1 no envía cookies de cuentas. Los parámetros de tiempo del enlace no recortan la grabación. En clips de Twitch y videos de Snapchat Spotlight, conserva media_id tal como lo recibes: puede ser una cadena opaca que no se deduce de la URL.
En X, TikTok, Instagram, Facebook y Bluesky, elige una publicación pública con video. Si contiene varios videos, solo se transcribe el primero. No envíes perfiles, historias, páginas de transmisiones en vivo ni publicaciones de fotos de TikTok. Si hace falta iniciar sesión para ver la publicación, recibirás login_required. Si el video no tiene pista de audio, recibirás no_audio. En ambos casos, no pagas nada.
En YouTube, X, TikTok, Bluesky, Dailymotion y LinkedIn puedes obtener subtítulos si el video tiene una pista que se pueda usar en su idioma original. Instagram, Facebook, Twitch, Pinterest y Snapchat siempre transcriben el audio con IA: aceptan auto o stt, pero rechazan captions. El precio por minuto es el mismo en todas las plataformas y para los archivos subidos; se calcula con la duración medida.
Solo funcionan los enlaces cortos indicados en la tabla. Si al enviar un enlace para compartir todavía no se conoce el ID de la publicación, no se puede buscar una transcripción anterior de ese video. Usa el enlace completo cuando quieras reutilizarla.
| Plataforma | Subtítulos y marcas de tiempo |
|---|---|
| YouTube y X | Usa las pistas disponibles. Las marcas de tiempo por palabra solo existen en los subtítulos que YouTube genera automáticamente. |
| TikTok | Lee los subtítulos nativos VTT o SRT disponibles, con marcas de tiempo por segmento. |
| Bluesky | Lee las pistas nativas del video en el PDS de confianza compatible, no en cualquier host federado ni en videos citados o externos. Incluye marcas de tiempo por segmento. |
| Dailymotion | Lee archivos SRT directos, no playlists de subtítulos. Incluye marcas de tiempo por segmento. Las pistas identificadas como en-auto/fr-auto indican auto_generated. |
| Lee las pistas VTT disponibles de videos nativos en publicaciones públicas, no de LinkedIn Learning. Incluye marcas de tiempo por segmento. |
Enlaces de YouTube que puedes usar
Envía la URL del video en url y deja fuera platform, o usa youtube. Estos formatos funcionan con o sin www.:
| Tipo de enlace | Ejemplo |
|---|---|
| Página de reproducción | https://www.youtube.com/watch?v=dQw4w9WgXcQ |
| Enlace corto | https://youtu.be/dQw4w9WgXcQ |
| Shorts | https://www.youtube.com/shorts/dQw4w9WgXcQ |
| Video insertado | https://www.youtube.com/embed/dQw4w9WgXcQ |
| Ruta de transmisión | https://www.youtube.com/live/dQw4w9WgXcQ |
| YouTube para celular y YouTube Music | https://m.youtube.com/watch?v=dQw4w9WgXcQ, https://music.youtube.com/watch?v=dQw4w9WgXcQ |
No necesitas limpiar parámetros como t, list o si: la API los ignora y reconoce el mismo video en todos sus formatos de enlace. Sí necesitas enviar la URL completa; el ID de 11 caracteres por sí solo no basta. Los enlaces a canales, a playlists sin video o a direcciones no admitidas devuelven 422 invalid_url. Si envías un valor desconocido en platform, recibirás 422 unsupported_platform y la lista supported_platforms.
El video puede ser público o no listado. Si es privado, tiene restricción de edad o sigue en vivo, la transcripción falla con media_private, age_restricted o live_stream, respectivamente. Si tienes el archivo, puedes subirlo directamente.
source
Con source eliges si quieres usar los subtítulos de la plataforma o transcribir el audio.
| Valor | Qué hace |
|---|---|
auto (por defecto) | Busca primero subtítulos en el idioma original en YouTube, X, TikTok, Bluesky, Dailymotion y LinkedIn. Si no puede usarlos, transcribe el audio con IA. |
captions | Modo captions (solo subtítulos), disponible únicamente en las plataformas que los admiten. Nunca descarga audio ni usa STT. Si no hay una pista válida, falla con no_captions sin cobrar minutos. Si falla la descarga de los subtítulos, devuelve fetch_failed. Las demás plataformas rechazan esta opción con 422 invalid_request. |
stt | Transcribe siempre el audio con IA, aunque haya subtítulos. |
Para archivos subidos siempre se usa voz a texto. Puedes indicar auto o stt en source; si envías captions, recibirás 422 invalid_request.
La pista debe estar en el idioma que pediste. Con language en auto, debe coincidir con el idioma original del video. En YouTube se usan subtítulos subidos por el creador o generados por YouTube en ese idioma, nunca traducciones automáticas. Se da prioridad a las pistas del creador, después a las de origen desconocido y por último a las generadas automáticamente. No atribuyas al creador una pista cuyo origen se desconoce.
X usa las pistas VTT disponibles. Sus marcas de tiempo son por segmento, incluso en subtítulos automáticos; no hay marcas por palabra. En modo auto, la API puede pasar a STT si no consigue los subtítulos o no puede interpretar su contenido. No lo hace por errores de rutas, almacenamiento o programación. Con stt, va directamente al audio.
diarize
Activa diarize para identificar quién habla en cada fragmento. Su valor por defecto es false.
- La identificación de hablantes necesita voz a texto. Si usas
sourceenautoydiarize: true, se omiten los subtítulos y se transcribe el audio. - No combines
source: "captions"condiarize: true: la API devuelve422 invalid_request. - Recibirás etiquetas como
Speaker 1ySpeaker 2entranscript.speakersy en el campospeakerde cada segmento. Entextysrtse añade el prefijoSpeaker 1:; envtt, la etiqueta de voz<v Speaker 1>.
{ "platform": "youtube", "url": "https://youtu.be/dQw4w9WgXcQ", "source": "stt", "diarize": true }language
Deja language en auto, su valor por defecto, o indica un código ISO 639-1 de dos letras: por ejemplo, en, de o es.
- Si usas subtítulos, este campo elige el idioma de la pista. Con
auto, se usa el idioma original del video. - Si transcribes el audio, el proveedor recibe el idioma como una pista para reconocer el habla. Con
auto, lo detecta automáticamente y cada segmento incluye su propiolanguage.
En el objeto de transcripción, language indica el idioma predominante.
De dónde viene el texto y qué incluye
Revisa transcript_source para saber de dónde salió el texto: youtube_captions, x_captions, tiktok_captions, bluesky_captions, dailymotion_captions, linkedin_captions o speech_to_text. Cuando viene de subtítulos, caption_kind indica manual, auto_generated o null. El valor null significa que se desconoce el origen; no significa que el creador los haya subido.
youtube_captions, caption_kind manual | youtube_captions, caption_kind auto_generated | speech_to_text | |
|---|---|---|---|
| Segmentos | Un segmento por cada bloque de subtítulos | Un segmento por cada bloque de subtítulos | Se separan al cambiar de hablante o idioma, al terminar una oración o al llegar a 15 segundos |
Marcas de tiempo por palabra con include=words | No incluye (words es null) | Inicio de cada palabra; el final coincide con el inicio de la siguiente | Inicio y fin de cada palabra, con confidence |
| Identificación de hablantes | No disponible | No disponible | Disponible con diarize en true |
| Idioma | El de la pista de subtítulos | El de la pista de subtítulos | El de cada segmento |
El texto de YouTube conserva lo que publicó la plataforma, incluidas etiquetas como [Music]. Para transcribir audio con IA, la grabación puede durar hasta 5 horas. Si dura más, recibirás media_too_long.
Los subtítulos de X (x_captions), TikTok, Bluesky, Dailymotion y LinkedIn no incluyen identificación de hablantes ni marcas por palabra. Aunque pidas include=words, cada segmento devuelve words: null, también en pistas generadas automáticamente. Para obtener marcas de tiempo por palabra, elige source: "stt". Para identificar hablantes, activa diarize: true con auto o stt.
Cuánto cuesta
Elige por el tipo de transcripción que necesitas, no por el precio: subtítulos y voz a texto cuestan lo mismo. Consumes un crédito por cada minuto de grabación, redondeando hacia arriba. Consulta Facturación y límites.
Última actualización 20 de octubre de 2026