Présentation
Transformez vos fichiers audio et vidéo en transcriptions et sous-titres grâce à une API REST simple.
Envoyez une URL de média, suivez la transcription et récupérez du JSON structuré ou un fichier de sous-titres prêt à l’emploi.
Votre première transcription
La transcription s’effectue en arrière-plan. La création d’une tâche renvoie une réponse immédiate ; consultez son état jusqu’à ce que le résultat soit prêt.
Créer une tâche
Envoyez
POST /transcriptsavec une URL de média directe et publique. Conservez l’idrenvoyé.Suivre la progression
Interrogez
GET /transcripts/{id}toutes les 15 à 30 secondes jusqu’à ce questatussoitcompleteouerror.Utiliser votre transcription
Lisez le JSON dans
dataou téléchargez le fichier viaexport_urlsi vous demandez du SRT ou du VTT.
État de la tâche
initializingEn file d’attente, en attente de démarrage. Continuez les requêtes de suivi.
transcribingVotre média est en cours de transcription. Continuez les requêtes de suivi.
completePrêt. Lisez le résultat ou téléchargez le fichier.
errorLa tâche a échoué. Lisez message et arrêtez les requêtes de suivi.
Considérez tout autre état comme « en cours ». De nouveaux états intermédiaires peuvent être ajoutés.
Authentification
Envoyez votre clé API dans l’en-tête Authorization de chaque requête, exactement telle qu’elle s’est affichée lors de sa création.
Authorization: <your api key>N’ajoutez pas le préfixe Bearer.
Les nouvelles clés commencent par tp_live_. La clé complète n’est affichée qu’une seule fois, lors de sa création. Si vous la perdez, révoquez-la et créez-en une nouvelle ; une clé révoquée cesse immédiatement de fonctionner.
Un abonnement actif et une clé API avec les autorisations requises sont nécessaires.
Conservez votre clé sur votre serveur. Elle donne accès aux transcriptions et à l’utilisation de votre compte. Ne l’exposez jamais dans le code du navigateur ni dans un dépôt public.
Créer une transcription
/transcriptsLancez une tâche de transcription pour un fichier média accessible via une URL publique. La réponse est renvoyée dès sa mise en file d’attente, avec status: "initializing".
Taption télécharge le fichier directement. Les liens vers des pages de partage, comme un aperçu Google Drive ou Dropbox, ne fonctionnent pas.
Corps de la requête
application/jsonmedia_urlstringobligatoireLien de téléchargement direct de votre fichier média.
2048 caractères maximumextensionstringobligatoireLe format du fichier média.
mp3wavm4aaacflacwmaopusmp4languagestringobligatoireLangue parlée dans le média, sous forme de balise de langue. Consultez la référence des langues.
Voir les balises de languenamestringNom affiché pour la transcription. Par défaut, le nom de fichier dans `media_url` est utilisé. Les noms plus longs sont tronqués à 200 caractères.
200 caractères maximumexport_typestringFormat de sortie. La valeur par défaut est json, qui renvoie le contenu de la transcription analysé dans data. srt et vtt renvoient un lien de fichier dans export_url.
Par défaut : jsonjsonsrtvttmax_charintegerNombre maximal de caractères par segment de sous-titre. La valeur par défaut est `16` pour le chinois, le japonais, le coréen et le cantonais, et `65` pour les autres langues. Les valeurs hors de 1–200 sont ignorées au profit de la valeur par défaut.
1–200
Réponses
200La tâche a été créée et mise en file d’attente. Conservez l’`id` pour consulter son état.
400Le corps de la requête n’est pas valide. Corrigez la requête avant de réessayer. Seul le premier problème trouvé est signalé.
401La clé API est absente, non valide ou non configurée pour l’accès à l’API.
403Un abonnement actif et une clé API avec les autorisations requises sont nécessaires.
429Limite du compte atteinte ; aucune tâche créée. Par défaut : Premium 10 soumissions/minute et 2 tâches inachevées ; Corp 30/minute et 10 tâches inachevées, pour toutes les clés. Les limites peuvent changer. Les consultations de statut sont exclues.
500Erreur serveur inattendue. Réessayez en augmentant le délai de façon exponentielle.
503Les limites de soumission sont temporairement indisponibles (`api_limits_unavailable` ; aucune transcription n’a été créée), ou la mise en file a échoué ou n’a pas pu être confirmée. Respectez Retry-After s’il est présent. Si un `id` est retourné, vérifiez son statut avant de réessayer : il peut être `error` ou la tâche peut être déjà en cours de traitement. Une nouvelle tentative crée une nouvelle transcription.
Récupérer une transcription
/transcripts/{id}Récupérez l’état actuel et le résultat d’une transcription. Interrogez toutes les 15 à 30 secondes tant que la tâche est en cours.
Avec json ou sans type d’export spécifié, le résultat final apparaît dans data. Avec srt ou vtt, téléchargez le fichier via export_url.
Paramètre de chemin
idstringobligatoire- L’ID de transcription renvoyé par
POST /transcripts.256 caractères maximum
Une transcription échouée renvoie également HTTP 200 avec status: "error". Vérifiez l’état de la tâche en plus du code HTTP.
Réponses
200L’état actuel de la transcription. Cela ne signifie pas que la tâche a réussi ; lisez `status`.
401La clé API est absente, non valide ou non configurée pour l’accès à l’API.
403Un abonnement actif et une clé API avec les autorisations requises sont nécessaires.
404Aucune transcription avec cet ID n’existe dans votre compte. Une transcription appartenant à un autre compte renvoie la même réponse.
500Erreur serveur inattendue. Réessayez en augmentant le délai de façon exponentielle.
L’objet transcription
Les requêtes de création et de consultation de l’état renvoient un objet JSON. Ses champs décrivent la tâche et, lorsqu’il est prêt, son résultat.
idstring- L’ID de transcription. Utilisez-le avec `GET /transcripts/{id}`.
statusstring- État de la tâche : `initializing`, `transcribing`, `complete` ou `error`. Considérez toute autre valeur comme « en cours ».
dataJSON- Export JSON analysé une fois prêt pour json ou si export_type est omis ; sinon, une chaîne vide.
export_urlstring- Lien de téléchargement d’un export srt ou vtt. Vide tant que le résultat n’est pas prêt. Absent des réponses d’état pour json ou si export_type est omis.
messagestring- Détails supplémentaires sur l’état actuel. Pendant `transcribing`, il peut s’agir d’une étape comme `ANALYZING` ou `FINALIZING`. Lorsque `status` est `error`, ce champ décrit l’échec. Destiné à être lu par des personnes ; ne l’analysez pas par programme.
error_codestring- Code facultatif lisible par machine indiquant une limite de soumission.
limitinteger- Limite applicable au compte, incluse dans les réponses HTTP 429.
Erreurs et nouvelles tentatives
Utilisez le code d’état HTTP pour décider de la suite. Le champ message est destiné à être lu par des personnes ; sa formulation peut changer.
Les réponses de l’API contiennent un en-tête X-Request-Id. Indiquez-le lorsque vous contactez le support au sujet d’une requête.
Codes d’erreur HTTP9 codes
| HTTP | Ce qui s’est passé | Étape suivante |
|---|---|---|
400 | Corps de requête non valide. | Corrigez d’abord la requête. |
401 | Clé API absente, non valide ou révoquée. | Vérifiez votre clé API. |
403 | Un abonnement actif et une clé API avec les autorisations requises sont nécessaires. | Vérifiez votre abonnement et les autorisations de la clé API. |
404 | Transcription introuvable dans votre compte. | Vérifiez l’ID de transcription. |
405 | Méthode HTTP incorrecte. | Utilisez la méthode documentée. |
429 | Limite de soumissions ou de tâches inachevées atteinte. | Respectez Retry-After et attendez qu’une place se libère. |
500 | Erreur serveur inattendue. | Augmentez le délai de façon exponentielle. |
503 | Limites de soumission indisponibles, ou mise en file échouée ou non confirmée. | Vérifiez tout ID de tâche retourné avant de réessayer ; respectez Retry-After. |
504 | Le délai de la requête a expiré. | Augmentez le délai ; évitez les tâches en double. |
Les erreurs de limite API renvoient HTTP 429 avec du JSON et Retry-After en secondes. L’hébergement peut aussi renvoyer 429, 504 ou 400 sans JSON. Vérifiez le statut HTTP avant de lire le corps.
Les requêtes de création ne sont pas idempotentes. Réessayer un POST /transcripts ayant expiré peut créer une autre transcription. Si une réponse 503 contient un ID de tâche, vérifiez cette tâche avant de la soumettre à nouveau : elle peut avoir échoué ou être déjà en cours de traitement.
Langues
Définissez language sur la langue parlée dans votre média. Utilisez la balise exacte ci-dessous, y compris tout suffixe de région ou de système d’écriture de sortie.
Langues prises en charge74 langues
| Langue | Balise |
|---|---|
| Afrikaans (South Africa) | af-ZA |
| Arabic (Egypt) | ar-EG |
| Armenian (Armenia) | hy-AM |
| Assamese (India) | as-IN |
| Azerbaijani (Azerbaijan) | az-AZ |
| Bengali (India) | bn-IN |
| Bosnian (Bosnia and Herzegovina) | bs-BA |
| Bulgarian (Bulgaria) | bg-BG |
| Burmese (Myanmar) | my-MM |
| Cantonese, Simplified Chinese output (Hong Kong) | yue-Hant-HK-zh |
| Cantonese, Traditional Chinese output (Hong Kong) | yue-Hant-HK-TW-zh |
| Cantonese, Simplified Cantonese output (Hong Kong) | yue-Hant-HK |
| Cantonese, Traditional Cantonese output (Hong Kong) | yue-Hant-HK-TW |
| Catalan (Spain) | ca-ES |
| Chinese (China) | zh |
| Chinese (Taiwan) | zh-TW |
| Chinese & English (Simplified) | zh-EN |
| Chinese & English (Traditional) | zh-EN-TW |
| Croatian (Croatia) | hr-HR |
| Czech (Czech Republic) | cs-CZ |
| Danish (Denmark) | da-DK |
| Dutch (Belgium) | nl-BE |
| English (Australia) | en-AU |
| English (United Kingdom) | en-GB |
| English (United States) | en-US |
| Estonian (Estonia) | et-EE |
| Filipino (Philippines) | tl-PH |
| Finnish (Finland) | fi-FI |
| French (France) | fr-FR |
| Galician (Spain) | gl-ES |
| German (Germany) | de-DE |
| Greek (Greece) | el-GR |
| Gujarati (India) | gu-IN |
| Hebrew (Israel) | iw-IL |
| Hindi (India) | hi-IN |
| Hungarian (Hungary) | hu-HU |
| Icelandic (Iceland) | is-IS |
| Indonesian (Indonesia) | id-ID |
| Italian (Italy) | it-IT |
| Japanese (Japan) | ja-JP |
| Kannada (India) | kn-IN |
| Kazakh (Kazakhstan) | kk-KZ |
| Khmer (Cambodia) | km-KH |
| Korean (South Korea) | ko-KR |
| Latvian (Latvia) | lv-LV |
| Lithuanian (Lithuania) | lt-LT |
| Macedonian (North Macedonia) | mk-MK |
| Malay (Malaysia) | ms-MY |
| Malayalam (India) | ml-IN |
| Marathi (India) | mr-IN |
| Nepali (Nepal) | ne-NP |
| Norwegian (Norway) | no-NO |
| Odia (India) | or-IN |
| Persian (Iran) | fa-IR |
| Polish (Poland) | pl-PL |
| Portuguese (Portugal, Brazil) | pt-PT_pt-BR |
| Punjabi, Gurmukhi (India) | pa-IN |
| Romanian (Romania) | ro-RO |
| Russian (Russia) | ru-RU |
| Serbian (Serbia) | sr-SR |
| Slovak (Slovakia) | sk-SK |
| Slovenian (Slovenia) | sl-SI |
| Spanish (Spain) | es-ES |
| Swahili (Kenya) | sw-KE |
| Swedish (Sweden) | sv-SE |
| Tamil (India) | ta-IN |
| Telugu (India) | te-IN |
| Thai (Thailand) | th-TH |
| Turkish (Turkey) | tr-TR |
| Ukrainian (Ukraine) | uk-UA |
| Urdu (Pakistan) | ur-PK |
| Uzbek (Uzbekistan) | uz-UZ |
| Vietnamese (Vietnam) | vi-VN |
| Zulu (South Africa) | zu-ZA |
Cette liste suit les paramètres linguistiques de Taption et peut évoluer. Le sélecteur de langue de Taption fait référence.