Cut.ProDocs

Transcreva áudio e vídeo

Suba um áudio ou vídeo, transcreva com tempo por frase e, se quiser, quem está falando. Baixe em JSON, SRT, VTT ou texto.

A transcrição é independente da clipagem: serve para podcast, aula, entrevista ou qualquer arquivo de áudio ou vídeo. O resultado vem em frases com início e fim em segundos.

Peça a URL de upload

curl -X POST https://api.cut.pro/api/v1/transcriptions/upload \
  -H "X-Api-Key: $CUTPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "file_name": "entrevista.mp3", "file_size": 48210000, "content_type": "audio/mpeg" }'
200 OK
{ "media_id": "7412950033118822", "kind": "audio", "upload_url": "https://...", "expires_in": 3600 }

A extensão de file_name decide se é áudio ou vídeo. O teto é o menor entre o limite de upload do plano e o espaço livre no storage.

Envie o arquivo

curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: audio/mpeg" \
  --upload-file entrevista.mp3

O Content-Type precisa ser o mesmo do passo anterior.

Transcreva

curl -X POST https://api.cut.pro/api/v1/transcriptions \
  -H "X-Api-Key: $CUTPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "media_id": "7412950033118822",
    "file_name": "entrevista.mp3",
    "file_size": 48210000,
    "source_language": "pt",
    "speaker_labels": true
  }'
202 Accepted
{ "id": "7412950040021177", "status": "processing", "credits_charged": 42 }
CampoDescrição
media_idO do upload, ou um que já está na sua biblioteca.
file_name, file_sizeObrigatórios para um arquivo recém-enviado.
source_languageIdioma falado, como pt. Sem ele, a detecção é automática. Fixe em áudios curtos: a detecção confunde português com espanhol.
speaker_labelsIdentifica quem fala em cada frase. Custa mais.

Espere ficar pronta

curl https://api.cut.pro/api/v1/transcriptions/7412950040021177 \
  -H "X-Api-Key: $CUTPRO_API_KEY"

Consulte a cada 5 a 10 segundos enquanto status for processing. Termina em ready, no_speech (o áudio não tem fala) ou failed. A resposta traz language, duration_seconds e, com speaker_labels, speaker_count.

Pegue o texto

Em JSON, para indexar ou desenhar sua própria interface:

curl https://api.cut.pro/api/v1/transcriptions/7412950040021177/transcript \
  -H "X-Api-Key: $CUTPRO_API_KEY"
200 OK
{
  "language": "pt",
  "speaker_labels": true,
  "cues": [
    { "start": 0.48, "end": 3.12, "text": "Bem-vindo de volta ao programa.", "speaker": "A" },
    { "start": 3.40, "end": 5.95, "text": "Obrigado pelo convite.", "speaker": "B" }
  ]
}

Como arquivo de legenda:

curl -o entrevista.srt "https://api.cut.pro/api/v1/transcriptions/7412950040021177/download?format=srt" \
  -H "X-Api-Key: $CUTPRO_API_KEY"

format aceita srt (padrão), vtt e txt. O corpo é o arquivo, não JSON. Numa transcrição com speaker_labels, os nomes dos falantes entram no arquivo; speakers=false tira.

As duas rotas respondem 409 TRANSCRIPTION_NOT_READY enquanto a transcrição processa.

Custo

SituaçãoCobrança
Transcrição novaPor minuto de áudio medido (duration_seconds), debitada ao começar.
Com speaker_labelsAcréscimo por minuto.
O mesmo arquivo de novoGrátis: responde 200 ready na hora, com credits_charged: 0.
Áudio sem falaGrátis: 200 no_speech.

Para acrescentar falantes a uma transcrição que foi feita sem eles, peça de novo com o mesmo media_id e speaker_labels: true. O áudio é processado outra vez e cobrado.

DELETE /transcriptions/{id} tira a transcrição das listas, mas o arquivo fica na biblioteca. Transcrever o mesmo media_id depois sai de graça.

Erros

CodeQuando
INVALID_FILE_TYPEExtensão de arquivo não aceita. extra.allowed_extensions traz as aceitas.
FILE_TOO_LARGEPassa do teto efetivo, em extra.max_size.
STORAGE_LIMIT_EXCEEDEDO storage do plano está cheio.
MEDIA_METADATA_REQUIREDFaltou file_name ou file_size para um arquivo recém-enviado.
MEDIA_TOO_LONGDuração acima do permitido. extra.duration e extra.max_duration dizem quanto.
MEDIA_NOT_FOUNDO media_id não existe neste workspace.
MEDIA_UNREADABLEO arquivo enviado não é um áudio ou vídeo legível.
INSUFFICIENT_CREDITSSaldo insuficiente. extra.credits_needed diz quanto falta.

Nesta página