Aller au contenu

Endpoints publics de l'API pour les uploads, les taches de transcription, les modes de transcription et les reponses.

Base URL:

https://api.videototext.dev

Les reponses reussies utilisent :

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

Les erreurs utilisent Problem Details :

{
"type": "VALIDATION_ERROR",
"title": "Validation failed",
"status": 400,
"detail": "Invalid request",
"errorCode": "VALIDATION_ERROR"
}
ModeCreditsNotes
balanced1 credit par minuteMode par defaut
precision2 credits par minuteOption de precision superieure
EtatSignification
QUEUEDLa tache attend de la capacite de traitement.
PROCESSINGLa tache est en cours de transcription.
SUCCEEDEDLa transcription est prete.
FAILEDLa tache a echoue et peut inclure showError.
CANCELEDLa tache a ete annulee.

Creez une URL d’upload signee.

Requête :

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

Réponse :

{
"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": {}
}

Validez l’objet uploade, lisez la duree du media et creez un asset.

Parametres de chemin :

NomTypeDescription
uploadIdUUIDID de session d’upload retourne par POST /v1/uploads.

Requête :

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

Réponse :

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

Les erreurs courantes incluent UPLOAD_SESSION_NOT_FOUND, UPLOAD_SESSION_EXPIRED, UPLOAD_SIZE_MISMATCH, UPLOAD_MIMETYPE_MISMATCH et UPLOAD_DURATION_UNREADABLE.

Creez une tache de transcription a partir d’un asset uploade.

Pour une création de tâche sûre en cas de nouvelle tentative, consultez Idempotence.

Requête :

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

Champs :

ChampTypeObligatoireNotes
assetIdUUIDOuiAsset retourne a la fin de l’upload.
languagestringNonPar defaut, Auto. Les langues prises en charge utilisent des noms en minuscules, comme english, spanish ou chinese.
timestampModestringNonCHUNK ou WORD. Par defaut, CHUNK.
transcriptionModestringNonCle publique du mode : balanced ou precision. Par defaut, balanced.

Réponse :

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

Les réponses de création et de détail de tâche incluent toujours transcriptionMode avec la clé publique du mode utilisée pour la facturation et le traitement du résultat.

Retourne l’etat actuel de la tache et les champs de resultat de transcription necessaires aux clients.

Parametres de chemin :

NomTypeDescription
taskIdUUIDdata.task.transcriptId retourne par POST /v1/tasks.

Réponse :

{
"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": {}
}