DocumentationSources et réglages de transcription

Sources et réglages de transcription

Vérifiez les liens vidéo acceptés et choisissez les sous-titres ou l'IA, l'identification des locuteurs et la langue.

Pour lancer une transcription, envoyez un lien YouTube, X, TikTok, Instagram, Facebook ou Bluesky, ou importez votre fichier. Le tableau ci-dessous détaille les liens acceptés, y compris sur les autres plateformes d'enregistrements publics.

Vous pouvez régler l'origine du texte avec source, l'identification des locuteurs avec diarize et la langue avec language. Ajoutez ces champs au corps de POST /v1/transcriptions si vous souhaitez modifier les réglages par défaut. Ils sont tous facultatifs.

Quels liens pouvez-vous envoyer ?

Placez le lien dans url. Vous pouvez laisser l'API reconnaître la plateforme ou la préciser dans platform. Si vous renseignez ce champ, sa valeur doit correspondre à la plateforme du lien.

PlateformeLiens acceptés
YouTube (youtube)Voir les formats d'URL dans la section suivante.
X (x)Liens vers des publications vidéo sur x.com ou twitter.com, par exemple https://x.com/user/status/1234567890.
TikTok (tiktok)Liens vers des vidéos sur tiktok.com. Les liens courts vm.tiktok.com, vt.tiktok.com et www.tiktok.com/t/ fonctionnent aussi.
Instagram (instagram)Reels et publications vidéo sur instagram.com, avec les chemins /reel/, /reels/, /p/ ou /tv/. Le lien peut aussi inclure le nom du compte avant le chemin du reel ou de la publication.
Facebook (facebook)Vidéos et reels sur facebook.com, dont les liens watch. Les liens courts fb.watch, /share/v/ et /share/r/ sont aussi acceptés.
Bluesky (bluesky)Liens vers des publications vidéo sur bsky.app, par exemple https://bsky.app/profile/user.example/post/3l3w4b5c6d7e2.
Twitch (twitch)Rediffusions de directs terminés : twitch.tv/videos/<id> ou /<channel>/v/<id> (video fonctionne aussi à la place de v). Clips : clips.twitch.tv/<slug>, twitch.tv/<channel>/clip/<slug> ou /clip/<slug>. Domaines acceptés : twitch.tv, ses sous-domaines www, m et go, ainsi que clips.twitch.tv.
Dailymotion (dailymotion)Liens dailymotion.com/video/<id>, avec ou sans suffixe _title, /embed/video/<id> et dai.ly/<id>. Les domaines www.dailymotion.com et touch.dailymotion.com fonctionnent aussi.
Pinterest (pinterest)Épingles contenant une vidéo hébergée sur Pinterest, sur pinterest.com ou www.pinterest.com : /pin/<id>/ ou /pin/<slug>--<id>/. Seul le premier bloc vidéo natif est retenu. Les vidéos intégrées depuis un autre site, images, tableaux, liens pin.it et domaines régionaux ne fonctionnent pas.
LinkedIn (linkedin)Publications vidéo publiques sur linkedin.com ou www.linkedin.com : /posts/<slug>-<activity-id>-<four-character-suffix> ou /feed/update/urn:li:activity:<id>/. Les profils, LinkedIn Learning, événements et liens lnkd.in ne fonctionnent pas.
Snapchat Spotlight (snapchat)Vidéos Spotlight sur snapchat.com ou www.snapchat.com, au chemin /spotlight/<id>. Les stories et les profils ne fonctionnent pas.

Sur Twitch, Dailymotion, Pinterest, LinkedIn et Snapchat Spotlight, utilisez un lien HTTPS vers un enregistrement public précis. L'URL ne doit contenir ni identifiants de connexion ni port personnalisé. Les contenus privés ou réservés aux comptes connectés, les directs et les vidéos encore en cours de traitement sont exclus. Il en va de même pour les profils, fils d'actualité et collections. L'API ne transmet aucun cookie de compte.

Un paramètre de temps dans l'URL ne raccourcit pas l'enregistrement : le média est traité en entier. Pour les clips Twitch et Snapchat Spotlight, media_id peut être une chaîne opaque. Conservez cette valeur sans la modifier ; ne cherchez pas à la reconstituer à partir de l'URL.

Sur X, TikTok, Instagram, Facebook et Bluesky, envoyez uniquement des publications publiques. Si la publication contient plusieurs vidéos, transcript1 transcrit la première. Les liens de profil, stories, pages de direct et publications photo TikTok ne conviennent pas. Si la plateforme demande de se connecter, la transcription échoue avec login_required. Si la vidéo n'a pas de piste audio, elle échoue avec no_audio. Dans les deux cas, vous ne payez rien.

YouTube, X, TikTok, Bluesky, Dailymotion et LinkedIn permettent de récupérer les sous-titres, à condition qu'une piste utilisable existe dans la langue d'origine. Ce n'est pas garanti pour toutes les vidéos. Sur Instagram, Facebook, Twitch, Pinterest et Snapchat, le texte vient toujours de la transcription par IA : choisissez auto ou stt, pas captions (sous-titres uniquement).

Le tarif par minute est le même pour toutes les plateformes et les fichiers importés. Le décompte repose sur la durée mesurée. Pour les liens courts, seules les formes du tableau sont acceptées. Si un lien de partage ne donne pas l'identifiant de la publication au moment de l'envoi, l'API ne peut pas le rattacher à une transcription précédente. Préférez donc le lien complet si vous souhaitez réutiliser une transcription existante.

PlateformeSous-titres et horodatages disponibles
YouTube et XPistes de sous-titres déjà présentes. Pour l'horodatage par mot, seuls les sous-titres YouTube générés automatiquement le permettent.
TikTokSous-titres VTT ou SRT fournis par TikTok, avec les temps des segments uniquement.
BlueskySous-titres des vidéos hébergées sur le PDS de confiance accepté par l'API. Les autres hôtes fédérés et les vidéos citées ou externes sont exclus. Temps des segments uniquement.
DailymotionFichiers SRT accessibles directement, pas de playlists de sous-titres. Temps des segments uniquement. Les pistes identifiées comme en-auto/fr-auto portent la valeur auto_generated.
LinkedInVidéos hébergées directement dans des publications publiques, hors LinkedIn Learning. Les pistes VTT disponibles donnent les temps des segments uniquement.

Quel lien YouTube utiliser ?

Renseignez l'adresse de la vidéo dans url. Vous pouvez omettre platform ou lui donner la valeur youtube. L'API accepte les formes suivantes, avec ou sans www. :

Type de lienExemple
Vidéo classiquehttps://www.youtube.com/watch?v=dQw4w9WgXcQ
Lien courthttps://youtu.be/dQw4w9WgXcQ
Shortshttps://www.youtube.com/shorts/dQw4w9WgXcQ
Intégrationhttps://www.youtube.com/embed/dQw4w9WgXcQ
Directhttps://www.youtube.com/live/dQw4w9WgXcQ
Version mobile et YouTube Musichttps://m.youtube.com/watch?v=dQw4w9WgXcQ, https://music.youtube.com/watch?v=dQw4w9WgXcQ

Les paramètres supplémentaires, comme t, list ou si, ne changent rien au traitement. L'API reconnaît la même vidéo quelle que soit la forme du lien. Envoyez toujours une URL complète, pas seulement l'identifiant de 11 caractères.

Une page de chaîne, un lien qui ne désigne qu'une playlist ou tout autre lien non accepté renvoie 422 invalid_url. Si la valeur de platform est inconnue, l'API répond 422 unsupported_platform et fournit les valeurs possibles dans supported_platforms.

La vidéo doit être publique ou non répertoriée. Une vidéo privée renvoie media_private, une restriction d'âge age_restricted, et un direct live_stream. Si vous possédez le fichier, vous pouvez l'importer directement.

Choisir entre sous-titres et IA

Avec source, vous choisissez de récupérer les sous-titres existants ou de faire transcrire l'audio.

ValeurCe que fait l'API
auto (par défaut)Cherche d'abord des sous-titres utilisables dans la langue d'origine sur YouTube, X, TikTok, Bluesky, Dailymotion et LinkedIn. À défaut, transcrit l'audio par IA.
captions (sous-titres uniquement)Récupère les sous-titres sur les plateformes compatibles, sans télécharger l'audio ni lancer de transcription par IA. Si aucune piste ne convient, la transcription échoue avec no_captions, sans frais. Si le téléchargement du contenu des sous-titres échoue, l'erreur est fetch_failed. Les autres plateformes refusent cette option avec 422 invalid_request.
sttTranscrit directement l'audio par IA, même si des sous-titres existent.

Les fichiers importés passent toujours par la transcription par IA. Vous pouvez leur associer auto ou stt ; avec captions, l'API répond 422 invalid_request.

Pour être retenue, une piste doit correspondre à la langue demandée, ou à la langue d'origine de la vidéo si language vaut auto. Sur YouTube, l'API utilise les sous-titres ajoutés par le créateur ou générés par YouTube dans cette langue. Elle n'utilise jamais les traductions automatiques.

Les pistes ajoutées par le créateur passent en premier, puis celles dont l'origine est inconnue, puis celles générées automatiquement. Une origine inconnue ne permet pas d'affirmer que le créateur a ajouté les sous-titres. Sur X, l'API récupère les pistes VTT disponibles : elles donnent les temps des segments, jamais ceux des mots, même pour des sous-titres générés automatiquement.

Le mode auto peut passer au STT si les sous-titres sont indisponibles ou impossibles à analyser. Il ne le fait pas pour masquer une erreur de routage, de stockage ou de programmation. Avec stt, l'API ignore toujours les sous-titres.

Identifier les locuteurs

Activez diarize pour distinguer les locuteurs dans le texte. Par défaut, cette option vaut false.

  • L'identification des locuteurs passe par la transcription de l'audio. Si source vaut auto, activer diarize: true suffit pour ignorer les sous-titres et lancer directement le STT.
  • Vous ne pouvez pas associer source: "captions" à diarize: true : l'API répond 422 invalid_request.
  • Des libellés comme Speaker 1 et Speaker 2 distinguent les locuteurs. Ils figurent dans transcript.speakers et dans le champ speaker de chaque segment. Dans les formats text et srt, chaque passage commence par un préfixe comme Speaker 1: . Le format vtt utilise une balise de voix comme <v Speaker 1>.
{ "platform": "youtube", "url": "https://youtu.be/dQw4w9WgXcQ", "source": "stt", "diarize": true }

Régler la langue

Laissez language à auto, sa valeur par défaut, ou indiquez un code ISO 639-1 à deux lettres, par exemple en, de ou es.

  • Si vous récupérez les sous-titres, ce réglage détermine la langue de la piste. Avec auto, transcript1 choisit la langue d'origine de la vidéo.
  • Pour la transcription par IA, le fournisseur reçoit cette valeur comme indication de langue. Avec auto, il détecte la langue et renseigne language pour chaque segment.

Au niveau de l'objet transcription, le champ language donne la langue dominante de l'enregistrement.

Savoir d'où vient le texte et quels horodatages attendre

Consultez transcript_source pour connaître l'origine du texte : youtube_captions, x_captions, tiktok_captions, bluesky_captions, dailymotion_captions, linkedin_captions ou speech_to_text. Pour les sous-titres, caption_kind précise leur provenance : manual, auto_generated ou null si elle est inconnue. Ne présentez pas cette dernière valeur comme la preuve d'un ajout par le créateur.

youtube_captions, caption_kind manualyoutube_captions, caption_kind auto_generatedspeech_to_text
SegmentsUn segment par sous-titreUn segment par sous-titreUn nouveau segment à chaque changement de locuteur ou de langue, en fin de phrase, ou après 15 secondes au maximum
Horodatage par mot avec include=wordsAucun (words vaut null)Début de chaque mot ; sa fin correspond au début du suivantDébut et fin de chaque mot, avec confidence
Identification des locuteursNonNonOui, lorsque diarize vaut true
LangueCelle de la pisteCelle de la pistePropre à chaque segment

Le texte des sous-titres YouTube reste tel que la plateforme l'a publié, avec ses balises comme [Music]. Pour la transcription par IA, l'enregistrement ne doit pas dépasser 5 heures. Au-delà, la transcription échoue avec media_too_long.

Les sous-titres X (x_captions), TikTok, Bluesky, Dailymotion et LinkedIn fournissent uniquement les temps des segments. Avec include=words, chaque segment contient words: null, même si la piste a été générée automatiquement. Ces sous-titres n'identifient pas les locuteurs.

Si vous avez besoin de l'horodatage par mot fourni par l'IA, choisissez source: "stt". Pour identifier les locuteurs, activez diarize: true avec auto ou stt.

Quel est le tarif ?

Vous payez le même prix avec les sous-titres ou l'IA : un crédit par minute de média, arrondie au supérieur. Le réglage de la source change l'origine du texte, pas le tarif. Consultez Facturation et limites pour le détail.

Dernière mise à jour 20 octobre 2026