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
- Soumettez une tâche de transcription depuis une URL de vidéo
- 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ètre | Type | Obligatoire | Défaut | Description |
|---|---|---|---|---|
video_url | string | Oui | — | L'URL de la vidéo/audio source ou l'identifiant du fichier téléversé |
source_lang | string | Non | null | Langue source de la vidéo (voir Langues prises en charge). Si null, le système détecte automatiquement la langue d'origine. |
target_lang | string | Non | null | Langue 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"
}
}
| Champ | Type | Description |
|---|---|---|
id | string | Identifiant de la tâche (utilisé pour récupérer les résultats) |
name | string | Nom de la tâche |
status | string | CREATED, 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ètre | Type | Obligatoire | Description |
|---|---|---|---|
id | string | Oui | L'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
| Champ | Type | Description |
|---|---|---|
status | string | CREATED, QUEUED, ONGOING, SUCCEEDED, FAILED |
error_message | string | Raison de l'erreur (présent uniquement quand status est FAILED) |
cost_usage | number | Crédits API consommés pour cette requête |
transcript | array | Liste des segments de transcription (voir ci-dessous) |
Segment de Transcription
| Champ | Type | Description |
|---|---|---|
text | string | Texte transcrit |
language | string | null | Code de langue détecté, ou null si non détecté |
start | integer | Temps de début en millisecondes |
end | integer | Temps de fin en millisecondes |
speaker | string | É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.