# 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.

Canonical: https://transcript1.com/fr/docs/sources-and-options
Language: fr
Last updated: 2026-10-20

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.

| Plateforme | Liens 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](https://transcript1.com/fr/features/transcrire-vod-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](https://transcript1.com/fr/features/transcrire-video-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](https://transcript1.com/fr/features/transcrire-video-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](https://transcript1.com/fr/features/transcrire-video-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](https://transcript1.com/fr/features/transcription-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.

| Plateforme | Sous-titres et horodatages disponibles |
|---|---|
| YouTube et X | Pistes de sous-titres déjà présentes. Pour l'horodatage par mot, seuls les sous-titres YouTube générés automatiquement le permettent. |
| TikTok | Sous-titres VTT ou SRT fournis par TikTok, avec les temps des segments uniquement. |
| Bluesky | Sous-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. |
| Dailymotion | Fichiers 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. |
| LinkedIn | Vidé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 lien | Exemple |
|---|---|
| Vidéo classique | `https://www.youtube.com/watch?v=dQw4w9WgXcQ` |
| Lien court | `https://youtu.be/dQw4w9WgXcQ` |
| Shorts | `https://www.youtube.com/shorts/dQw4w9WgXcQ` |
| Intégration | `https://www.youtube.com/embed/dQw4w9WgXcQ` |
| Direct | `https://www.youtube.com/live/dQw4w9WgXcQ` |
| Version mobile et YouTube Music | `https://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](https://transcript1.com/fr/docs/uploads).

## Choisir entre sous-titres et IA

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

| Valeur | Ce 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`. |
| `stt` | Transcrit 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>`.

```json
{ "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` `manual` | `youtube_captions`, `caption_kind` `auto_generated` | `speech_to_text` |
|---|---|---|---|
| Segments | Un segment par sous-titre | Un segment par sous-titre | Un 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=words` | Aucun (`words` vaut `null`) | Début de chaque mot ; sa fin correspond au début du suivant | Début et fin de chaque mot, avec `confidence` |
| Identification des locuteurs | Non | Non | Oui, lorsque `diarize` vaut `true` |
| Langue | Celle de la piste | Celle de la piste | Propre à 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](https://transcript1.com/fr/docs/billing-and-limits) pour le détail.
