Usa video-to-text-js para subir medios, crear tareas de transcripción y consultar resultados.
El cliente Node.js envuelve las API públicas de carga y tareas con ayudas tipadas.
Instalación
Sección titulada «Instalación»pnpm add video-to-text-jsInicialización
Sección titulada «Inicialización»import { VideoToTextClient } from 'video-to-text-js'
const client = new VideoToTextClient({ apiKey: process.env.VTT_API_KEY!,})Transcribir un archivo
Sección titulada «Transcribir un archivo»import { readFile } from 'node:fs/promises'
const file = await readFile('meeting.mp4')
const task = await client.transcriptions.transcribeFile(file, { filename: 'meeting.mp4', mimetype: 'video/mp4', language: 'Auto', timestampMode: 'CHUNK', transcriptionMode: 'balanced', timeoutMs: 10 * 60 * 1000,})
console.log(task.fullText)Usa precision cuando la precisión sea más importante que el coste en créditos.
Carga y creación manual
Sección titulada «Carga y creación manual»const upload = await client.uploads.create({ filename: 'meeting.mp4', mimetype: 'video/mp4',})
await client.uploads.put(upload.uploadUrl, file, { mimetype: 'video/mp4',})
const asset = await client.uploads.complete(upload.uploadId, { fileKey: upload.fileKey, fileUrl: upload.fileUrl, filename: 'meeting.mp4', mimetype: 'video/mp4', fileSize: file.byteLength,})
const created = await client.tasks.create({ assetId: asset.assetId, language: 'Auto', timestampMode: 'CHUNK', transcriptionMode: 'balanced',})
const result = await client.tasks.wait(created.transcriptId)console.log(result.fullText)Resultados de la tarea
Sección titulada «Resultados de la tarea»tasks.wait() devuelve el resultado cuando la tarea llega a SUCCEEDED. Si la tarea llega a FAILED o CANCELED, el cliente lanza APIError y usa showError como detalle cuando está disponible.
Los detalles de la tarea incluyen fullText, chunks, words, sourceDurationMs, resultLanguage, transcriptionMode y billedCredits.
Errores
Sección titulada «Errores»import { APIError, RateLimitError, UploadError } from 'video-to-text-js'
try { await client.transcriptions.transcribeFile(file, { filename: 'meeting.mp4', mimetype: 'video/mp4', })} catch (error) { if (error instanceof RateLimitError) { console.error('Please retry later.') } else if (error instanceof UploadError) { console.error('The media upload did not complete.') } else if (error instanceof APIError) { console.error(error.errorCode, error.detail) }}Recursos
Sección titulada «Recursos»Para código fuente, issues y contribuciones, visita el repositorio GitHub de video-to-text-js. Instala la versión más reciente del paquete video-to-text-js desde npm.