Pular para o conteúdo

Referência da API

Endpoints publicos da API para uploads, tarefas de transcricao, modos de transcricao e respostas.

Base URL:

https://api.videototext.dev

Respostas bem-sucedidas usam:

{
"data": {},
"meta": {}
}

Erros usam Problem Details:

{
"type": "VALIDATION_ERROR",
"title": "Validation failed",
"status": 400,
"detail": "Invalid request",
"errorCode": "VALIDATION_ERROR"
}
ModoCreditosObservacoes
balanced1 credito por minutoModo padrao
precision2 creditos por minutoOpcao de maior precisao
StatusSignificado
QUEUEDA tarefa esta aguardando capacidade de processamento.
PROCESSINGA tarefa esta sendo transcrita.
SUCCEEDEDA transcricao esta pronta.
FAILEDA tarefa falhou e pode incluir showError.
CANCELEDA tarefa foi cancelada.

Crie uma URL de upload assinada.

Requisição:

{
"filename": "meeting.mp4",
"mimetype": "video/mp4"
}

Resposta:

{
"data": {
"uploadUrl": "https://storage.example.com/signed-upload-url",
"fileKey": "uploads/example.mp4",
"fileUrl": "https://static.example.com/uploads/example.mp4",
"uploadId": "00000000-0000-0000-0000-000000000000",
"expiresAt": "2026-06-06T10:00:00.000Z"
},
"meta": {}
}

Valide o objeto enviado, leia a duracao da midia e crie um asset.

Parametros de caminho:

NomeTipoDescricao
uploadIdUUIDID da sessao de upload retornado por POST /v1/uploads.

Requisição:

{
"fileKey": "uploads/example.mp4",
"fileUrl": "https://static.example.com/uploads/example.mp4",
"filename": "meeting.mp4",
"mimetype": "video/mp4",
"fileSize": 10485760
}

Resposta:

{
"data": {
"assetId": "00000000-0000-0000-0000-000000000000"
},
"meta": {}
}

Erros comuns incluem UPLOAD_SESSION_NOT_FOUND, UPLOAD_SESSION_EXPIRED, UPLOAD_SIZE_MISMATCH, UPLOAD_MIMETYPE_MISMATCH e UPLOAD_DURATION_UNREADABLE.

Crie uma tarefa de transcricao a partir de um asset enviado.

Para criacao de tarefas segura para repeticao, veja Idempotencia.

Requisição:

{
"assetId": "00000000-0000-0000-0000-000000000000",
"language": "Auto",
"timestampMode": "CHUNK",
"transcriptionMode": "balanced"
}

Campos:

CampoTipoObrigatorioObservacoes
assetIdUUIDSimAsset retornado pela conclusao do upload.
languagestringNaoO padrao e Auto. Idiomas suportados usam nomes em minusculas, como english, spanish ou chinese.
timestampModestringNaoCHUNK ou WORD. O padrao e CHUNK.
transcriptionModestringNaoChave publica do modo: balanced ou precision. O padrao e balanced.

Resposta:

{
"data": {
"task": {
"transcriptId": "00000000-0000-0000-0000-000000000000",
"status": "QUEUED",
"language": "Auto",
"timestampMode": "CHUNK",
"transcriptionMode": "balanced",
"billedCredits": "1.500000000000"
}
},
"meta": {
"pollAfterMs": 1500
}
}

As respostas de criação e detalhe da tarefa sempre incluem transcriptionMode com a chave pública de modo usada para cobrança e processamento do resultado.

Retorne o status atual da tarefa e os campos de resultado da transcricao necessarios para clientes.

Parametros de caminho:

NomeTipoDescricao
taskIdUUIDdata.task.transcriptId retornado por POST /v1/tasks.

Resposta:

{
"data": {
"task": {
"transcriptId": "00000000-0000-0000-0000-000000000000",
"status": "SUCCEEDED",
"showError": null,
"fullText": "Welcome to the meeting.",
"chunks": [
{
"seq": 0,
"startMs": 0,
"endMs": 2200,
"text": "Welcome to the meeting.",
"speakerKey": null,
"speakerName": null,
"wordStartIndex": 0,
"wordEndIndex": 1
}
],
"words": [
{
"text": "Welcome",
"startMs": 0,
"endMs": 600
}
],
"sourceDurationMs": 90400,
"language": "Auto",
"resultLanguage": "english",
"timestampMode": "CHUNK",
"transcriptionMode": "balanced",
"billedCredits": "1.500000000000",
"createdAt": "2026-06-06T09:00:00.000Z"
}
},
"meta": {}
}