API de transcription audio et vidéo
Article traduit depuis la version anglaise.
Transcrivez les médias locaux, privés ou envoyés par vos utilisateurs grâce au processus d’import direct de Fast Transcriber. Votre application prépare une cible d’import, envoie les octets directement dans le stockage d’objets, puis met en file d’attente la référence de l’objet renvoyée afin de lancer la transcription.
Pourquoi les fichiers sont-ils envoyés directement dans le stockage d’objets ?
Les fichiers multimédias volumineux ne doivent pas transiter dans le corps d’une requête du framework. Fast Transcriber renvoie une cible d’import pré-signée, en une seule partie ou en plusieurs parties, afin que votre service dorsal puisse transférer directement les octets. Il suffit ensuite d’envoyer une petite référence JSON au point de terminaison de transcription.
Étape 1 : préparer la cible d’import
Envoyez le nom de fichier, le type de contenu et la taille exacte en octets. La réponse indique le fournisseur de stockage, la clé de l’objet et les instructions d’import propres au compte authentifié.
curl --request POST https://fast-transcriber.com/api/v1/uploads \
--header "Authorization: Bearer $FAST_TRANSCRIBER_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"filename": "entretien.mp3",
"content_type": "audio/mpeg",
"size": 1234567
}'
Pour un import en une seule partie, la réponse contient l’URL pré-signée data.upload.url, les en-têtes de requête requis, ainsi que les valeurs data.storage et data.key nécessaires à l’étape 3.
{
"data": {
"content_type": "audio/mpeg",
"key": "transcriptions/account-id/upload-id/entretien.mp3",
"storage": "r2",
"upload": {
"headers": { "Content-Type": "audio/mpeg" },
"method": "PUT",
"type": "single",
"url": "https://stockage-presigne.example/..."
}
}
}
Étape 2 : envoyer les octets du média
Pour une cible single, envoyez les octets du fichier à l’URL renvoyée avec les en-têtes fournis. L’URL ci-dessous remplace data.upload.url à titre d’exemple. N’envoyez pas votre clé Bearer Fast Transcriber à l’URL de stockage.
UPLOAD_URL="COLLER_DATA_UPLOAD_URL"
curl --request PUT "$UPLOAD_URL" \
--header "Content-Type: audio/mpeg" \
--upload-file "./entretien.mp3"
Pour une cible multipart, envoyez chaque plage d’octets à l’URL data.upload.parts[].url correspondante, relevez chaque ETag de réponse, puis terminez l’import avant de le mettre en file d’attente :
curl --request POST https://fast-transcriber.com/api/v1/uploads/multipart \
--header "Authorization: Bearer $FAST_TRANSCRIBER_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"storage": "RETURNED_STORAGE_PROVIDER",
"key": "RETURNED_STORAGE_KEY",
"upload_id": "RETURNED_UPLOAD_ID",
"parts": [
{ "part_number": 1, "etag": "RETURNED_ETAG" }
]
}'
Conservez sans les modifier les valeurs storage et key renvoyées. Si le transfert d’une partie échoue, relancez cette partie ou abandonnez l’import multipart au lieu de mettre en file d’attente un objet incomplet.
Étape 3 : mettre l’objet importé en file d’attente
Remplacez les valeurs en majuscules ci-dessous par data.storage et data.key provenant de la réponse d’import, au lieu d’inscrire un fournisseur en dur. Le nom de fichier, le type de contenu et la taille doivent décrire l’objet stocké.
curl --request POST https://fast-transcriber.com/api/v1/transcriptions \
--header "Authorization: Bearer $FAST_TRANSCRIBER_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"upload": {
"storage": "RETURNED_STORAGE_PROVIDER",
"key": "RETURNED_STORAGE_KEY",
"filename": "entretien.mp3",
"content_type": "audio/mpeg",
"size": 1234567
},
"speaker_diarization": false
}'
Une mise en file d’attente réussie renvoie 202 Accepted et un en-tête Location. Affectez ce chemin à LOCATION_PATH, puis interrogez-le avec n’importe quelle clé Bearer active du même compte jusqu’à la réussite ou l’échec de la tâche.
LOCATION_PATH="/api/v1/transcriptions/95c3fdd8-..."
curl --request GET "https://fast-transcriber.com$LOCATION_PATH" \
--header "Authorization: Bearer $FAST_TRANSCRIBER_API_TOKEN"
Prêt à envoyer cette requête ? Créez une clé d’API ou consultez tous les points de terminaison dans la documentation de l’API.
Propriété et validation du média
Avant la mise en file d’attente, le serveur vérifie que l’objet appartient au compte authentifié, ainsi que sa taille stockée et son type de média. Une clé d’import émise pour un autre compte est refusée. Les références d’import restent ainsi limitées au compte qui les a créées.
Imports en une seule partie ou en plusieurs parties
Les fichiers plus petits peuvent utiliser la cible d’import unique renvoyée. Les fichiers plus volumineux peuvent recevoir des instructions multipart afin qu’un transfert interrompu puisse reprendre partie par partie. Terminez toutes les parties requises et conservez les ETags renvoyés avant d’appeler le point de terminaison d’achèvement multipart.
Exploiter la transcription terminée
Les tâches terminées contiennent le texte de la transcription, sa durée et les segments horodatés disponibles selon les limites de l’offre du compte. Utilisez le résultat pour des archives consultables, des processus de sous-titrage, l’analyse d’entretiens, des comptes rendus de réunion ou un traitement d’IA en aval autorisé.
{
"data": {
"id": "95c3fdd8-...",
"filename": "video-source.mp4",
"status": "completed",
"duration_seconds": 84,
"text": "Texte intégral de la transcription...",
"segments": [
{ "start": 0, "end": 3.8, "text": "Premier segment..." }
]
}
}
Quand importer un fichier plutôt qu’envoyer une URL ?
- Le média est local, envoyé par un utilisateur ou généré dans votre application.
- La source est privée, mais votre application est autorisée à la récupérer et à la traiter.
- Vous préférez un transfert d’objet stable à la dépendance envers un lien public tiers.
- L’URL d’origine nécessite une session, un cookie ou un jeton d’accès qui ne doit jamais être envoyé à Fast Transcriber.
Questions fréquentes
Le média transite-t-il dans le corps d’une requête Next.js ?
Non. L’import est envoyé directement au stockage d’objets à l’aide de la cible renvoyée par le point de terminaison des imports.
Que valide le serveur avant la mise en file d’attente ?
Il valide la propriété de l’objet, sa taille stockée et son type de média. Les références appartenant à un autre compte sont refusées.
Les enregistrements importés peuvent-ils utiliser la diarisation des intervenants ?
Oui. Définissez speaker_diarization sur true. La diarisation nécessite l’offre Pro.
Quelles limites s’appliquent aux imports par API ?
Les tâches de l’API utilisent les limites normales de l’offre du compte authentifié, notamment celles relatives à la taille des fichiers et à l’utilisation quotidienne.
Articles connexes sur l’API
Autres articles
Outils gratuits
- Transcrire un audio en texte en ligne — outil IA gratuit
- MP3 en texte — convertir un fichier MP3 en ligne
- MP4 en texte — convertir une vidéo en ligne
- WAV en texte — convertir un fichier WAV en ligne
- Parole en texte — reconnaissance vocale par IA
- Convertir une vidéo en texte gratuitement en ligne
- Transcrire une vidéo YouTube en texte
- Générateur de sous-titres par IA
Prêt à transcrire ?
Essayez Fast Transcriber gratuitement, sans créer de compte.
Commencer à transcrire