
Descargar transcripciones de YouTube
Prosey es una herramienta CLI para descargar y mostrar transcripciones de videos de YouTube, de modo que puedas obtener la información que buscas sin perder horas.
Los casos de uso principales son:
Ambos usos necesitan un asistente de IA en tu sistema (predeterminado: opencode, usa prosey config para configurar el tuyo propio).
Si detectamos un resaltador de sintaxis en tu sistema, obtendrás una salida con colores agradables.
Prosey también puede generar o almacenar el formato JSON nativo textualmente.
| Característica | Descripción |
|---|---|
| 💡 Resumir | Obtener y resumir la transcripción de un video |
| 📖 Leer | Obtener y mostrar la transcripción formateada en Markdown |
| 📋 Descargar transcripción | Obtener transcripciones de YouTube como texto plano o JSON textual |
| 🤖 Resumen con IA | Enviar transcripciones a cualquier agente de IA (opencode, Claude, Copilot, Codex) |
| 🎨 Paginador inteligente | Resaltado de sintaxis automático si bat, glow o mdcat están instalados (o configura tu propio paginador) |
| 🛠️ Personalización | Usa prosey config para acceder y editar tu configuración / personalizar las indicaciones |
| 💾 Caché en disco | Las transcripciones y los resúmenes se almacenan en caché en disco para una relectura instantánea |
| 📄 Formatos soportados | Texto plano y JSON |
Pruébalo de inmediato con npx:
npx @tacone/prosey 771PQEDeRmw
npx @tacone/prosey https://youtu.be/771PQEDeRmw --lang es -o transcript.txt
Instálalo globalmente con tu gestor de paquetes favorito:
npm install -g @tacone/prosey
# o
yarn global add @tacone/prosey
# o
pnpm add -g @tacone/prosey
# o
bun install -g @tacone/prosey
Luego úsalo en cualquier lugar:
prosey 771PQEDeRmw
Usa Bun para el desarrollo: scripts, gestión de paquetes y ejecución directa del código fuente TypeScript.
git clone https://github.com/tacone/prosey.git
cd prosey
bun install
bun run start -- 771PQEDeRmw
prosey [options] <video controls-url-or-id>
prosey read [options] <video controls-url-or-id>
prosey info [options] <video controls-url-or-id>
prosey summarize [options] <video controls-url-or-id>
prosey config
prosey help
summarize es el comando predeterminado, por lo que prosey <id> ejecuta el resumidor de IA.
Usa prosey read <id> para descargar e imprimir una transcripción con formato enriquecido.
El comando summarize obtiene una transcripción, antepone la indicación de la sección
[summarize] de la configuración, y envía el resultado al comando de IA configurado.
El comando read descarga la transcripción y la imprime en la salida estándar (texto plano,
Markdown o JSON). Esto es útil cuando no necesitas procesamiento con IA.
El comando info muestra los metadatos del video (título, canal, duración, vistas).
El comando config abre tu archivo de configuración en $EDITOR para editarlo. Si
$EDITOR no está definido, se imprime la ruta del archivo de configuración.
El comando help muestra el mensaje de ayuda, igual que --help.
# Resumir (resumen con IA + formato + resaltado de sintaxis)
prosey 771PQEDeRmw
# Resumir (igual que arriba)
prosey summarize 771PQEDeRmw
# Transcribir (resumen con IA + formato + resaltado de sintaxis)
prosey read 771PQEDeRmw
# Mostrar metadatos del video
prosey info 771PQEDeRmw
# Editar configuración en $EDITOR
prosey config
# Listar idiomas disponibles
prosey read https://youtu.be/771PQEDeRmw --list
# Especificar idioma
prosey read https://youtu.be/771PQEDeRmw --lang es
# Mostrar JSON (sin transcripción con IA)
prosey read 771PQEDeRmw
# Mostrar texto plano (sin transcripción con IA)
prosey read 771PQEDeRmw
# Guardar transcripción en un archivo
prosey read 771PQEDeRmw -o transcript.txt
Cuando se usa --json, la salida es un arreglo de objetos:
[
{
"text": "♪ We're no strangers to love ♪",
"offset": 18.64,
"duration": 3.24,
"timestamp": "00:18"
}
]
timestamp siempre está presente en el modo JSON. Los detalles del video se suprimen
(silenciosamente) ya que JSON es datos estructurados.
Este proyecto usa Bun para el desarrollo.
bun run typecheck # Verificación de TypeScript
bun run start # Ejecutar la CLI desde el código fuente
bun run test # Ejecutar pruebas unitarias
bun run build # Compilar el paquete Node en bin/prosey
Antes de publicar en npm, bun run build se ejecuta automáticamente mediante el hook
prepack, produciendo un paquete JS compatible con Node en bin/prosey.
Prosey lee la configuración de un archivo TOML. La ubicación sigue la
Especificación del Directorio Base XDG
(~/.config/prosey/config.toml), o puedes definir la variable de entorno
PROSEY_CONFIG_PATH para usar una ruta personalizada.
El archivo de configuración se crea automáticamente en la primera ejecución con valores
predeterminados. Usa --reset-config para restaurar los valores predeterminados en cualquier momento.
pagerComando del paginador para la salida de transcripciones y resúmenes. Su valor predeterminado es "auto", que
detecta el primero disponible de: bat -lmd --style plain → glow -p → mdcat -l -p → less.
Establécelo en un comando personalizado (ej. "less -R") para anularlo. La variable de entorno
PROSEY_PAGER tiene prioridad sobre esta configuración.
[summarize]La sección [summarize] configura el comando summarize:
| Clave | Descripción |
|---|---|
prompt | Instrucción que se antepone a la transcripción |
command | Comando de shell que recibe la indicación por stdin |
PROSEY_PAGERVariable de entorno para definir el comando del paginador. Tiene prioridad sobre el valor
de configuración pager. Establécelo en "auto" o déjalo vacío para usar la detección automática.
Las transcripciones y los resúmenes se almacenan en caché en /tmp/prosey/. Las invocaciones repetidas
para el mismo video y opciones son instantáneas y funcionan sin conexión. Usa --no-cache
para omitir la lectura de caché y forzar una descarga nueva.
Al ejecutar prosey summarize, el comando se ejecuta dentro del directorio de caché
de ese video. Esto evita que el agente de IA recoja archivos específicos del proyecto
como AGENTS.md o CLAUDE.md de la carpeta actual y limita su capacidad de modificar
archivos fuera de ese directorio.
| Código | Significado |
|---|---|
0 | Éxito |
65 | URL o ID de video inválido |
prosey utiliza la API Innertube de YouTube a través de la biblioteca youtube-transcript-plus. No se requieren claves de API ni automatización del navegador.
La herramienta funciona tanto con subtítulos creados manualmente como con transcripciones generadas automáticamente (voz a texto de YouTube). La detección automática recorre los idiomas en el orden proporcionado por la respuesta del reproductor de YouTube.
| Banderas | Descripción |
|---|
--lang <code> | Código de idioma (ej. en, fr). Se detecta automáticamente si se omite. |
-t, --timestamps | Anteponer [MM:SS] a cada línea en la salida de texto. |
--list | Listar los idiomas de transcripción disponibles para el video y luego salir. |
-o, --output <path> | Escribir la salida en un archivo en lugar de la salida estándar. |
--json | Generar la transcripción como un arreglo JSON. Cada elemento incluye text, offset (segundos), duration y timestamp. |
--text | Generar como texto plano (predeterminado para prosey read). |
--details | Anteponer los detalles del video (título, canal, duración, vistas, descripción) a la transcripción (predeterminado). |
--no-details | Suprimir los detalles del video, solo la transcripción. |
--no-decode-entities | Conservar las entidades HTML originales (ej. '). Se decodifican por defecto en modo texto. |
--no-cache | Omitir la lectura de caché y forzar una descarga nueva. |
--no-format | Omitir el formateo Markdown más bonito en la salida de resumen. |
-q, --quiet | Suprimir toda la información de stderr. |
-v, --verbose | Imprimir información de depuración en stderr. |
--no-pager | Deshabilitar el paginador para la salida estándar (se detecta automáticamente por defecto). |
--pager | Usar paginador para la salida estándar (predeterminado). |
--reset-config | Restablecer el archivo de configuración a los valores predeterminados y salir. |
--help | Mostrar el mensaje de ayuda y salir. |
--version | Mostrar el número de versión y salir. |