Speech to text API pour vos fichiers audio et vidéo

La speech to text API transforme vos fichiers audio et vidéo en texte horodaté, avec une langue par segment et l’identification des locuteurs en option. Envoyez jusqu’à 95 Mo en une requête. Pour les fichiers jusqu’à 2 Go, envoyez les parties séparément et reprenez l’import s’il s’interrompt.

  • Jusqu’à 95 Mo en une requête
  • Jusqu’à 2 Go, avec reprise de l’import
  • Fichier supprimé 24 heures après la fin du traitement

Choisissez l’envoi adapté à votre fichier

Audio ou vidéo, sans conversion préalable
L’API accepte MP3, WAV, M4A, FLAC, OGG, OPUS, MP4, MOV, WebM et MKV. Le fichier doit contenir une piste audio.
Un seul appel jusqu’à 95 Mo
Envoyez un multipart/form-data à POST /v1/transcriptions. Pour un petit fichier déjà présent sur votre serveur, c’est le chemin le plus simple.
Un import que vous pouvez reprendre
Réservez l’import, envoyez les parties d’environ 8 Mio, puis confirmez la fin de l’envoi. Si la connexion coupe, reprenez les parties manquantes, jusqu’à 2 Go au total.
Jusqu’à 5 heures par enregistrement
La limite de durée s’applique à la transcription par IA. Un enregistrement plus long renvoie media_too_long, sans facturation, même si son fichier est petit.
Le texte reste, pas le fichier source
Nous supprimons le fichier importé 24 heures après que la transcription atteint un état final. La transcription reste disponible jusqu’à ce que vous la supprimiez.

Transcrire un fichier audio par API en une requête

Placez le fichier dans la partie file du formulaire multipart. Ajoutez au besoin language, diarize, source ou webhook_url. Consultez l’exemple multipart complet et utilisez un webhook pour recevoir l’état final.

Envoyez les octets du fichier, pas son chemin local dans un objet JSON. Laissez votre client HTTP définir la délimitation multipart. Un fichier vide ou une extension non prise en charge demande de corriger l’entrée, pas de relancer le même appel.

Vérifiez séparément le poids et la durée. Un enregistrement très compressé peut peser moins de 95 Mo tout en dépassant 5 heures. À l’inverse, une courte vidéo haute résolution peut nécessiter un import en plusieurs parties. Le nombre d’octets détermine le protocole d’envoi, pas la durée autorisée.

cURL
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -F [email protected] \
  -F language=auto

Préparer l’envoi d’un fichier volumineux

Réservez l’import avec le nom et la taille du fichier. L’API renvoie le découpage à suivre et un X-Upload-Token propre à cet import. Le guide d’import en plusieurs parties décrit chaque appel.

Suivez le découpage renvoyé par l’API : chaque partie possède un index, une position dans le fichier et une taille. Lisez exactement cette plage d’octets. La dernière partie peut être plus courte. Le token autorise les PUT binaires pendant 1 heure ; il ne remplace pas votre clé API pour les autres appels.

Gardez la même Idempotency-Key pour une réservation que vous pourriez devoir retenter. Si le token expire, reprenez la réservation avec cette clé et les mêmes paramètres : vous obtenez un nouveau token pour l’import existant. Ne créez pas une réservation à chaque coupure.

Réserver l’import
curl -X POST "https://api.transcript1.com/v1/transcriptions" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Idempotency-Key: interview-2026-10-13" \
  -H "Content-Type: application/json" \
  -d '{"upload":{"filename":"interview.m4a","size":48210334,"mime_type":"audio/mp4"}}'

Envoyez les parties, puis lancez la transcription

Envoyez chaque partie par PUT à son URL avec le token, puis confirmez la fin de l’import. transcript1 vérifie leur présence avant de lancer la transcription. La référence des endpoints d’import détaille le suivi et la confirmation.

Pour reprendre, consultez GET /v1/transcriptions/:id/upload et comparez received_chunks au découpage initial. Envoyez seulement ce qui manque. Renvoyer une partie remplace la précédente ; sa taille doit toujours correspondre à celle prévue. Un code 401 peut simplement signaler un token expiré.

Si la confirmation renvoie 409 upload_incomplete, envoyez les parties manquantes, puis confirmez à nouveau la fin de l’import. Une fois le traitement lancé, consultez la transcription ou attendez le webhook. Dans votre interface, distinguez la progression de l’envoi de celle de la transcription.

Envoyer une partie et confirmer la fin de l’import
curl -X PUT "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/chunks/0" \
  -H "X-Upload-Token: t1u_..." \
  -H "Content-Type: application/octet-stream" \
  --data-binary @chunk-0.bin

curl -X POST "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/complete" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"

Un fichier envoyé n’est pas encore un fichier transcrit

À l’état awaiting_upload, l’API attend encore votre fichier. Le traitement ne démarre qu’après confirmation réussie : envoi des octets, vérification de l’import, puis transcription. Si la connexion coupe après la confirmation, consultez l’ID avant de renvoyer quoi que ce soit.

Une équipe peut avoir jusqu’à 20 réservations ouvertes. Après 24 heures sans import terminé, la réservation est annulée et les parties sont supprimées. Quand la transcription atteint un état final, le fichier source est supprimé 24 heures plus tard. Gardez votre propre copie si votre application doit permettre une réécoute.

Pour aider vos utilisateurs à préparer puis relire leur enregistrement, consultez le guide audio en texte. Pour des entretiens, le parcours de recherche explique comment relier participants, citations et passages audio.

Essayez avec 60 minutes gratuites

Créez un compte et confirmez votre e-mail pour recevoir 60 minutes gratuites, offertes une seule fois. Sans carte bancaire.

Obtenir une clé API

Questions fréquentes

Une autre question ? Écrivez-nous

Quels formats puis-je envoyer ?

MP3, WAV, M4A, FLAC, OGG, OPUS, MP4, MOV, WebM et MKV, avec une piste audio. Une autre extension renvoie 422 unsupported_media.

Quelle taille maximale pour un fichier ?

95 Mo en une requête multipart, ou 2 Go en plusieurs parties. Votre offre peut imposer une limite inférieure. Un fichier trop volumineux renvoie 413 media_too_large.

Combien de temps gardez-vous mes fichiers ?

Le fichier est supprimé 24 heures après l’état final de la transcription. Un import inachevé est annulé après 24 heures et ses parties sont supprimées. Le texte reste disponible jusqu’à ce que vous le supprimiez.

Puis-je distinguer les personnes qui parlent ?

Oui. Ajoutez diarize=true pour obtenir Speaker 1, Speaker 2, etc. Les fichiers importés passent toujours par la transcription audio par IA.