API Video Transcription

March 16, 2026

API Video Transcription

Soumettez une vidéo ou un fichier audio et recevez une transcription mot à mot avec diarisation des locuteurs (chaque segment étiqueté avec le locuteur détecté). L'API prend en charge les vidéos des principales plateformes et les fichiers vidéo/audio téléversés localement, avec des paramètres de langue.

Sources Vidéo Prises en Charge

L'API accepte les URLs des plateformes suivantes : YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble et plus encore.

Vous pouvez également transcrire des fichiers audio ou vidéo locaux que vous téléversez — le téléversement local nécessite un abonnement Standard ou supérieur.

Flux de Travail

  1. Soumettez une tâche de transcription depuis une URL de vidéo
  2. Interrogez les résultats jusqu'à ce que le statut soit SUCCEEDED

Soumettre une Tâche de Transcription

Soumettez une nouvelle tâche de transcription depuis une URL de vidéo ou audio.

POST https://wayinvideo-api.wayin.ai/api/v2/transcripts

Corps de la Requête

ParamètreTypeObligatoireDéfautDescription
video_urlstringOuiL'URL de la vidéo/audio source ou l'identifiant du fichier téléversé
source_langstringNonnullLangue source de la vidéo (voir Langues prises en charge). Si null, le système détecte automatiquement la langue d'origine.
target_langstringNonnullLangue cible pour la transcription (voir Langues prises en charge). Si null, aucune traduction n'est appliquée. Si target_lang diffère de la langue d'origine de la vidéo, la transcription sera automatiquement traduite dans la langue cible.

Exemple de Requête

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=example",
    "target_lang": "en"
  }'
import requests

requests.post(
    "https://wayinvideo-api.wayin.ai/api/v2/transcripts",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
    json={
        "video_url": "https://www.youtube.com/watch?v=example",
        "target_lang": "en",
    },
)
await fetch("https://wayinvideo-api.wayin.ai/api/v2/transcripts", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "x-wayinvideo-api-version": "v2",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    video_url: "https://www.youtube.com/watch?v=example",
    target_lang: "en",
  }),
});

Réponse

{
  "data": {
    "id": "trans_proj_001",
    "name": "sample project name",
    "status": "CREATED"
  }
}
ChampTypeDescription
idstringIdentifiant de la tâche (utilisé pour récupérer les résultats)
namestringNom de la tâche
statusstringCREATED, QUEUED, ONGOING, SUCCEEDED, FAILED

Exemples

Scénarios courants de transcription. Remplacez YOUR_API_KEY par une clé issue du Tableau de bord API.

Transcrire une vidéo YouTube

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'

Transcrire un podcast avec plusieurs intervenants

Passez n'importe quelle URL audio de podcast (ou un identifiant de fichier téléversé) — la diarisation des locuteurs est automatique ; chaque segment de la réponse porte une étiquette speaker.

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'

Traduire une transcription non anglaise vers l'anglais

Définissez target_lang pour traduire à la volée. Combinez avec source_lang si vous connaissez déjà la langue source.

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=EXAMPLE",
    "source_lang": "ja",
    "target_lang": "en"
  }'

Récupérer les Résultats de Transcription

Récupérez la transcription avec les horodatages mot à mot et les étiquettes de locuteur. Interrogez jusqu'à ce que status soit SUCCEEDED.

GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/{id}

Paramètres de Chemin

ParamètreTypeObligatoireDescription
idstringOuiL'ID de tâche retourné par l'endpoint de soumission

Exemple de Requête

curl -X GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/trans_proj_001 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2"

Réponse

{
  "data": {
    "status": "SUCCEEDED",
    "cost_usage": 27.0,
    "transcript": [
      {
        "text": "Welcome to today's presentation",
        "language": null,
        "start": 200,
        "end": 4500,
        "speaker": "Speaker 1"
      },
      {
        "text": "Thanks for coming",
        "language": null,
        "start": 5000,
        "end": 8200,
        "speaker": "Speaker 2"
      }
    ]
  }
}

Champs de la Réponse

ChampTypeDescription
statusstringCREATED, QUEUED, ONGOING, SUCCEEDED, FAILED
error_messagestringRaison de l'erreur (présent uniquement quand status est FAILED)
cost_usagenumberCrédits API consommés pour cette requête
transcriptarrayListe des segments de transcription (voir ci-dessous)

Segment de Transcription

ChampTypeDescription
textstringTexte transcrit
languagestring | nullCode de langue détecté, ou null si non détecté
startintegerTemps de début en millisecondes
endintegerTemps de fin en millisecondes
speakerstringÉtiquette du locuteur (ex. "Speaker 1")

FAQ

Quelle est la durée maximale d'une vidéo ?

Il n'y a pas de limite stricte. L'API prend en charge les clips courts comme les contenus vidéo ou audio longs sur les plateformes sources compatibles.

L'API retourne-t-elle des horodatages mot à mot ?

Oui. Chaque segment de transcription inclut des horodatages start et end en millisecondes, le text transcrit, le language détecté et l'étiquette speaker assignée par la diarisation des locuteurs.

Comment fonctionne la diarisation des locuteurs ?

Les locuteurs sont détectés automatiquement et étiquetés (Speaker 1, Speaker 2, …) par segment. Aucune configuration n'est nécessaire — la diarisation s'exécute sur chaque tâche de transcription.

Quels formats audio et vidéo sont pris en charge ?

Les URLs sources sont prises en charge depuis YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble et plus encore. Pour les téléversements locaux, envoyez mp4, mov, webm ou avi (les fichiers audio seuls peuvent être muxés dans l'un de ces conteneurs).

Puis-je traduire la transcription dans une autre langue ?

Oui — passez le paramètre target_lang. La transcription est traduite lorsque target_lang diffère de la langue source. Voir Langues prises en charge pour la liste complète des codes de langue.