DocumentaciónTranscribe desde la terminal con la CLI

Transcribe desde la terminal con la CLI

Instala la CLI para transcribir enlaces, archivos o carpetas. Guarda texto y subtítulos, o recibe JSON para tus scripts y agentes.

La CLI te permite transcribir sin salir de la terminal. Ejecuta transcript1 con un archivo de audio o video de tu computadora, o con un enlace de YouTube, X, TikTok, Instagram, Facebook o Bluesky. No necesitas Node.js para usarla. Más abajo se indican los requisitos de versión para otras plataformas; en Fuentes y opciones puedes consultar los enlaces admitidos y sus restricciones.

Para los enlaces de redes sociales necesitas la CLI 1.2.0 o posterior. La versión 1.1.0 y las anteriores solo aceptan YouTube: rechazan los demás enlaces antes de enviarlos a la API. Actualiza con transcript1 update.

Ese mínimo corresponde a las seis plataformas originales. Para Twitch, Dailymotion, Pinterest, LinkedIn y Snapchat, usa una versión que ya incluya su compatibilidad. Una CLI antigua puede rechazar esos enlaces sin llegar a llamar a la API.

Elige una publicación pública. Si tiene varios videos, solo se transcribe el primero. Revisa los enlaces cortos que funcionan y los límites en Fuentes y opciones.

Instala la CLI

En macOS y Linux, tanto x64 como ARM64, ejecuta:

curl -fsSL https://transcript1.com/install.sh | sh

El ejecutable se instala en ~/.local/bin. Si necesitas ajustar PATH, el instalador te indica cómo hacerlo. Para elegir otra carpeta, configura TRANSCRIPT1_INSTALL_DIR.

También puedes usar el alias corto t1 en lugar de transcript1. En zsh, el instalador añade alias transcript1='noglob transcript1' a ~/.zshrc, para que ? en los enlaces funcione sin comillas. Si no quieres que modifique ese archivo, configura TRANSCRIPT1_NO_MODIFY_SHELL=1.

Para Windows x64, ejecuta esto en PowerShell:

irm https://transcript1.com/install.ps1 | iex

El instalador usa %LOCALAPPDATA%\Programs\transcript1, crea el alias t1.cmd y añade la carpeta al PATH de tu usuario. Abre otra terminal para que el cambio tenga efecto.

Conecta tu cuenta

Inicia sesión con:

transcript1 login

Se abrirá transcript1.com en el navegador. Si estás por SSH o no hay pantalla, verás el enlace en la terminal. Comprueba que el código de la página coincida con el de la terminal y haz clic en “Approve”. La CLI espera tu aprobación y guarda una clave con el nombre transcript1 CLI (<computer name>). Puedes verla en “API keys”.

Si prefieres abrir el enlace por tu cuenta, usa transcript1 login --no-browser.

Si ya tienes una clave, ejecuta transcript1 login --with-key y pégala. También puedes leerla desde stdin con transcript1 login < key.txt.

En CI o con agentes, configura TRANSCRIPT1_API_KEY. Esta variable tiene prioridad sobre la clave guardada. Si el agente no tiene terminal o no tiene clave, puede ejecutar transcript1 login < /dev/null y pasarte el enlace para que apruebes el acceso.

Para desconectar la CLI, ejecuta transcript1 logout: revoca su clave y borra la copia de tu computadora. Si no consigue revocarla, borra la copia local y te pide hacerlo en “API keys”. Las claves que hayas pegado debes revocarlas desde esa página.

transcript1 'https://youtu.be/dQw4w9WgXcQ'

El texto aparece en stdout cuando termina la transcripción; los avisos de progreso van a stderr. Primero se buscan subtítulos en el idioma original en YouTube, X, TikTok, Bluesky, Dailymotion y LinkedIn. Si no se pueden usar, se transcribe el audio con IA.

En zsh, conviene poner los enlaces entre comillas. Sin ellas, & divide el comando y ? se interpreta como comodín, salvo que uses el alias añadido por el instalador.

Transcribe un archivo

transcript1 interview.mp3
transcript1 -f srt -o interview.srt interview.mp3

Puedes enviar archivos de hasta 2 GB (2,000,000,000 bytes) con extensión mp3, wav, m4a, flac, ogg, opus, mp4, mov, webm o mkv. La CLI se encarga de subirlos y esperar hasta tener el texto.

Procesa varios archivos o enlaces

Indica varios archivos o enlaces en el comando, o dale una carpeta:

transcript1 interview.mp3 lecture.mp4
transcript1 -o transcripts/ ./recordings
transcript1 --jobs 4 -o transcripts/ interview.mp3 'https://youtu.be/dQw4w9WgXcQ'

También puedes usar patrones como recordings/*.mp3, incluso en Windows. Al indicar una carpeta, se toman sus archivos de audio y video del primer nivel, ordenados por nombre. Si envías varios elementos, cada transcripción se guarda por defecto en un archivo dentro de ./transcripts. Con --jobs eliges cuántos procesar a la vez: de 1 a 20; por defecto son 2.

Para leer desde stdin, usa - e indica un enlace o ruta de archivo por línea. En macOS o Linux puedes hacerlo así:

transcript1 -o transcripts/ - < inputs.txt

La CLI ignora las líneas vacías y las que empiezan con #. Si repites exactamente el mismo elemento, lo procesa una sola vez.

Con un solo elemento, -o permite elegir el nombre del archivo. Si la ruta ya es una carpeta o termina en /, se usa como carpeta. Con varios elementos, -o siempre indica una carpeta. Si la carpeta de destino no existe, la CLI la crea.

Para enlaces de YouTube y archivos locales, la CLI no repite una transcripción si el archivo de destino ya existe. Si quieres volver a generarlo, agrega --overwrite:

transcript1 --overwrite -o transcripts/ ./recordings

Formatos y opciones

OpciónPara qué sirve
-f, --formatElige text (por defecto), srt, vtt o json. Con JSON recibes el objeto de transcripción de la API.
--speakersAñade la identificación de hablantes con etiquetas Speaker 1, Speaker 2, etc.
--timestampsAñade [hh:mm:ss] al inicio de cada línea. Funciona solo en formato text.
--languageIndica un código ISO 639-1 o deja auto, el valor por defecto.
--sourceElige auto (por defecto) o stt. En YouTube, X, TikTok, Bluesky, Dailymotion y LinkedIn también puedes pedir captions si hay una pista válida. El modo captions (solo subtítulos) nunca descarga audio ni pasa a STT.
--freshFuerza una nueva transcripción del enlace en lugar de reutilizar una de las últimas 24 horas.

Combina estas opciones para identificar hablantes y mostrar marcas de tiempo:

transcript1 --speakers --timestamps --language en interview.mp3

No combines --speakers con --source captions. Si dejas auto y activas la identificación de hablantes, se transcribe el audio sin usar subtítulos. YouTube y X mantienen su compatibilidad con subtítulos; también puedes usar las pistas disponibles de TikTok, Bluesky, Dailymotion y LinkedIn. Fuera de YouTube solo incluyen marcas de tiempo por segmento (words: null), incluso en las pistas automáticas. Consulta las opciones de cada plataforma y las reglas de idioma en Fuentes y opciones.

Integra la CLI en scripts y agentes

Si tu agente tiene acceso a una shell, puede instalar la CLI, configurar TRANSCRIPT1_API_KEY y ejecutar transcript1 <link> o transcript1 <file>. Si se conecta por MCP, sigue la guía del servidor MCP.

Con --json, stdout recibe una línea JSON por cada elemento que termina de procesarse. No se muestran avisos de progreso, resúmenes ni notificaciones de actualización:

transcript1 --json 'https://youtu.be/dQw4w9WgXcQ'

Cada línea de una transcripción terminada contiene el objeto de la API junto con input y reused. Si el texto se guardó en un archivo, la línea lleva file en lugar de transcript. Si hubo un error antes de crear un ID, recibirás input y un objeto error con code y message.

Para los elementos que no se procesaron, recibirás input, skipped con el valor exists o out_of_minutes, y file cuando corresponda. Solo los enlaces de YouTube y los archivos locales pueden omitirse por exists.

Si envías un solo elemento sin -o, --json incluye el texto en el objeto e ignora -f. Con varios elementos y sin -o, los archivos se guardan en ./transcripts y cada línea JSON lleva file en lugar de transcript. Cuando se guarda un archivo, su formato lo define -f. Si solo quieres ocultar el progreso y los resúmenes sin perder el texto ni los errores, usa -q o --quiet.

Puedes iniciar la transcripción y consultarla más tarde:

transcript1 --no-wait interview.mp3
transcript1 get <id>

El primer comando muestra el ID y el estado; si añades --json, muestra el objeto. Usa ese ID en lugar de <id> en el segundo comando. get espera mientras la transcripción sigue en curso y acepta -f, -o, --timestamps, --no-wait, --json y -q.

Actualiza la CLI

transcript1 update

Si stderr está conectado a una terminal, la CLI revisa como máximo una vez cada 24 horas si hay una versión nueva y te avisa. Para desactivar esa revisión, configura TRANSCRIPT1_NO_UPDATE_CHECK=1. Tampoco se hace al usar --json o -q.

Códigos de salida

CódigoQué indica
0Todo terminó bien, o se omitieron enlaces de YouTube y archivos locales porque ya existía el archivo de destino.
1Algún elemento falló o no se procesó por falta de minutos.
2Hay un problema con el comando o con el inicio de sesión.
130Se interrumpió la ejecución.

Consulta todos los comandos y opciones con transcript1 --help, o ejecuta transcript1 sin argumentos.

Última actualización 18 de octubre de 2026