DocumentationPremière transcription avec l'API

Première transcription avec l'API

Créez votre clé API, envoyez un lien vidéo ou un fichier, puis récupérez la transcription avec cURL, Python ou Node.js.

Pour appeler l'API, utilisez l'adresse https://api.transcript1.com et transmettez votre clé dans l'en-tête Authorization. Créez votre clé, envoyez un lien vidéo ou un fichier, puis récupérez le texte avec les exemples ci-dessous.

1. Préparer votre clé API

Commencez par créer un compte avec votre adresse e-mail, Google ou Microsoft. Vous disposez de 60 minutes gratuites pour tester l'API, sans carte bancaire. Vous les recevez une seule fois par compte, après avoir vérifié votre adresse e-mail. Si vous vous inscrivez avec Google ou Microsoft, les minutes sont disponibles immédiatement.

Dans le tableau de bord, ouvrez la page « API keys », à l'adresse /dashboard/account/tokens, et créez une clé. Elle commence par t1_. Copiez-la dès qu'elle s'affiche : vous ne pourrez pas l'afficher une seconde fois. Définissez ensuite la variable TRANSCRIPT1_API_KEY :

export TRANSCRIPT1_API_KEY="t1_..."

Vous pouvez envoyer un lien YouTube, X, TikTok, Instagram, Facebook, Bluesky, Twitch, Dailymotion, Pinterest, LinkedIn ou Snapchat. La page Sources et options précise quels enregistrements publics sont acceptés et avec quelles limites. Inutile de renseigner platform : l'API reconnaît la plateforme dans l'URL. L'exemple ci-dessous utilise YouTube.

Appelez POST /v1/transcriptions avec l'URL de la vidéo. Ajoutez wait=60 à l'URL de l'API pour attendre jusqu'à 60 secondes avant de recevoir la réponse.

La réponse à cet appel ne contient pas le texte. Dans l'exemple Python, un second appel à GET /v1/transcriptions/:id?wait=60 permet de le récupérer. Avec le SDK Node.js, vous n'avez pas à gérer cette attente : le SDK s'en charge et lit votre clé dans TRANSCRIPT1_API_KEY.

cURL

curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'

Python

import os
import requests
 
headers = {"Authorization": f"Bearer {os.environ['TRANSCRIPT1_API_KEY']}"}
response = requests.post(
    "https://api.transcript1.com/v1/transcriptions?wait=60",
    headers=headers,
    json={"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"},
)
response.raise_for_status()
transcription = response.json()
while True:
    transcription = requests.get(
        f"https://api.transcript1.com/v1/transcriptions/{transcription['id']}?wait=60",
        headers=headers,
    ).json()
    if transcription["status"] in ("completed", "failed", "canceled"):
        break
 
if transcription["status"] == "completed":
    print(transcription["transcript"]["text"])
else:
    print(transcription["status"], transcription["error"])

Node.js

Enregistrez le code dans index.mjs, puis exécutez node index.mjs. Si vous préférez un fichier .js, ajoutez "type": "module" à votre package.json.

// npm i @transcript1/sdk
import { Transcript1 } from '@transcript1/sdk';
 
const t1 = new Transcript1();
const transcription = await t1.transcribe('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
console.log(transcription.transcript.text);

Par défaut, transcript1 cherche d'abord des sous-titres utilisables dans la langue d'origine sur YouTube, X, TikTok, Bluesky, Dailymotion et LinkedIn. S'il n'en trouve pas, l'IA transcrit l'audio. Le traitement des sous-titres YouTube et X reste inchangé. En dehors de YouTube, les sous-titres fournissent seulement les temps des segments, sans horodatage par mot. Leur disponibilité dépend de la vidéo.

Pour transcrire directement l'audio, choisissez source=stt ou activez l'identification des locuteurs. À l'inverse, le mode captions (sous-titres uniquement) ne télécharge jamais l'audio et ne lance pas de STT. La page Sources et options détaille ces réglages.

3. Récupérer la transcription

Le statut HTTP vous indique s'il faut encore attendre :

  • 200 : la transcription a atteint un état final pendant l'attente. Vérifiez lequel : completed, failed ou canceled.
  • 202 : le traitement continue. Appelez GET /v1/transcriptions/:id?wait=60 pour attendre à nouveau jusqu'à 60 secondes. Répétez cet appel tant que status n'a pas atteint un état final.

Voici un exemple abrégé de transcription terminée :

{
  "id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
  "object": "transcription",
  "status": "completed",
  "transcript_source": "youtube_captions",
  "language": "en",
  "billed_minutes": 4,
  "transcript": {
    "text": "Welcome back to the channel. Today we are looking at how transcripts are made.",
    "speakers": [],
    "segments": [
      { "start": 0, "end": 4.2, "speaker": null, "language": "en", "text": "Welcome back to the channel." },
      { "start": 4.2, "end": 9.8, "speaker": null, "language": "en", "text": "Today we are looking at how transcripts are made." }
    ]
  }
}

Récupérez le texte complet dans transcript.text. Pour retrouver chaque passage dans l'enregistrement, utilisez transcript.segments : chaque segment indique son début dans start et sa fin dans end, en secondes.

Vous pouvez aussi demander du texte brut avec text, ou un fichier de sous-titres avec srt ou vtt :

curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?format=srt" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"

Cet appel utilise GET /v1/transcriptions/:id?format=srt. Le fichier demandé n'est disponible qu'au statut completed. Avant cela, l'API renvoie l'objet JSON avec le statut du traitement.

4. Envoyer un fichier audio ou vidéo

Si le fichier se trouve sur votre machine et ne dépasse pas 95 Mo, envoyez-le directement dans une requête multipart/form-data :

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

Au-delà de cette taille, envoyez le fichier en plusieurs blocs, jusqu'à 2 Go. Vous pourrez reprendre l'envoi s'il s'interrompt. La page Imports de fichiers décrit la marche à suivre.

Pour aller plus loin

  • Sources et options : choisissez entre sous-titres et IA, identifiez les locuteurs et réglez la langue.
  • Imports de fichiers : envoyez un fichier en une fois ou en plusieurs blocs.
  • Webhooks : recevez une requête signée à la fin d'une transcription.
  • Serveur MCP : lancez vos transcriptions depuis Claude, ChatGPT, Cursor, VS Code ou Claude Code.
  • Référence de l'API : retrouvez tous les endpoints et leurs paramètres.

Dernière mise à jour 14 octobre 2026