Comment traduire des sous-titres YouTube dans plusieurs langues

Comment traduire des sous-titres YouTube dans plusieurs langues

7 septembre 2026

YouTube exige un fichier de sous-titres par langue: une vidéo en huit langues représente donc huit fichiers. La traduction est la partie facile. C’est la répétition de l’opération huit fois qui décourage souvent les utilisateurs dès la troisième langue.

Ce guide présente les deux méthodes: le faire manuellement, ce qui convient pour une ou deux langues, ou confier l’ensemble à un agent IA qui utilise notre outil en ligne de commande. La seconde option demande autant de travail pour huit langues que pour deux.

Ce que YouTube vous fournit et ce qu’il attend en retour

Ouvrez YouTube Studio, accédez aux sous-titres de la vidéo et téléchargez la piste existante. Plusieurs formats sont proposés: choisissez le .srt, car c’est le format de sous-titres lu par AI Glot.

Ce que YouTube attend en retour est identique, mais une fois par langue: un fichier .srt importé pour chaque langue ajoutée à la vidéo. Aucun champ ne permet d’importer huit langues simultanément.

Si votre seule piste provient des sous-titres automatiques de YouTube, corrigez-les avant de traduire. La transcription automatique fait des erreurs sur les noms de produits, les noms propres et les paroles rapides. Traduire ces erreurs revient à multiplier un mot incorrect en anglais par huit langues, et vous devrez le corriger huit fois au lieu d’une seule.

L’élément du fichier de sous-titres qui détermine tout le processus

Un fichier SRT est une liste numérotée de séquences. Chaque séquence comprend un numéro, un code temporel de début et de fin, et le texte à afficher à l’écran.

Un repère avant et après traduction. Seule la ligne de texte change, le fichier se synchronise donc parfaitement avec la vidéo.

Le numéro et le code temporel constituent la structure. Ils sont copiés tels quels: une séquence en entrée donne une séquence en sortie, sans fusion ni division. Ainsi, le fichier traduit se superpose parfaitement à la vidéo et reste synchronisé.

Voici la contrainte qui dicte tout le reste: le fichier ne contient qu’une seule piste textuelle. Il n’y a pas de deuxième colonne pour l’espagnol, ni d’endroit pour en ajouter une. Traduire un SRT consiste à remplacer le texte de chaque séquence, c’est précisément pour cela que les lecteurs et YouTube utilisent un fichier par langue.

Ainsi, huit langues ne représentent pas une seule tâche avec huit résultats, mais huit tâches distinctes.

Un fichier de sous-titres contient une seule langue. Huit langues correspondent donc à huit traductions distinctes des mêmes repères.

Deux axes, dont les langues ne sont qu’un seul

La plupart des utilisateurs font face aux deux situations simultanément: plusieurs vidéos et plusieurs langues. Ces deux facteurs se gèrent différemment, et savoir les distinguer permet d’éviter bien des clics.

Ce que vous avez Structure du travail Comment l’exécuter
Une vidéo, huit langues Huit fichiers, huit tâches Une tâche par langue, en boucle
Douze épisodes, une langue Douze fichiers, une tâche Regroupez-les dans un seul ZIP
Douze épisodes, huit langues Huit ZIP, huit tâches Un ZIP par langue, en boucle

C’est l’utilisation du ZIP que les gens oublient. Une série entière dans une seule langue peut être traitée via une seule archive: jusqu’à 200 fichiers, 20 Mo pour l’archive et 4 Mo par fichier, traduits en une seule passe avec une seule instruction et un seul glossaire appliqué à chaque épisode. Les fichiers de sous-titres n’ayant pas de schéma commun à respecter, des épisodes de longueurs différentes cohabitent sans problème dans la même archive.

Les langues ne se regroupent jamais ainsi. Quelle que soit la méthode choisie, le nombre de tâches correspond au nombre de langues.

La méthode via le navigateur: quand l’utiliser

Téléchargez le fichier sur la page du traducteur SRT ou dans l’application, décrivez vos attentes en une phrase, consultez le plan, validez-le et téléchargez le résultat. Répétez ensuite l’opération pour la langue suivante.

Pour une ou deux langues, c’est vraiment la méthode la plus rapide, et il n’y a aucune raison d’ouvrir un terminal. À partir de huit, cela devient huit téléchargements, huit instructions, huit plans, huit approbations et huit téléchargements, et les erreurs deviennent administratives: le fichier allemand écrase le français, une langue manque discrètement.

La voie de l’agent: un seul prompt, tout le set

Si vous travaillez déjà avec Claude, ChatGPT, Cursor ou tout autre agent IA capable d’exécuter des commandes sur votre machine, vous n’avez pas besoin d’utiliser un navigateur. Notre outil en ligne de commande se connecte une seule fois et prend un fichier directement, sehingga un agent peut traiter l’ensemble et vous laisser un dossier avec un fichier de sous-titres par langue.

Ces huit langues sont traitées soit une par une, soit envoyées à un agent via un prompt unique.

Installez-le et connectez-vous une seule fois:

npm install --global @ai-glot/cli
aiglot auth login

Cela ouvre un navigateur pour autoriser la machine. Sur un serveur sans navigateur, aiglot auth login --device active le flux de code d’appareil, et aiglot auth login --key <key> fonctionne en CI.

Le prompt à donner à votre agent

Copiez ce texte, en modifiant le chemin et la liste des langues. Il est conçu pour être confié à un agent, et non pour être exécuté par vous-même.

My English subtitles are at ~/Videos/episode-04.srt, exported from YouTube.

Translate them into Spanish, Portuguese, French, German, Italian, Japanese,
Hindi and Indonesian using the aiglot CLI. Read `aiglot batches create --help`
and `aiglot batches approve --help` first so you use the real flags, and run
`aiglot languages` to confirm each language tag before you start.

An SRT holds one language, so create ONE batch per target language, eight in
total. The source language is English: say so explicitly in every instruction
rather than letting it be inferred.

Use the lite quality tier. Add "keep every subtitle line under 42 characters
and never merge or split cues" as the string-level instruction at approval.

Show me all eight plans and the total word count and cost BEFORE you approve
anything. Then wait for me to confirm.

After I confirm, approve them, poll until each one reaches a terminal status,
and download the results into ~/Videos/subtitles/ as episode-04.<lang>.srt
using the two-letter code for each language. Tell me if any batch failed.

Quatre éléments de ce prompt effectuent le travail réel, et ce sont les parties qu’il vaut la peine de copier dans les vôtres.

Il demande à l’agent de lire l’aide d’abord. Un agent qui devine le nom des drapeaux échoue dès le premier appel et invente ensuite une raison plausible. Lire la véritable aide, ou aiglot help --json pour tout l’arbre de commandes d’un coup, élimine totalement ce problème.

Il précise explicitement un batch par langue. Un agent qui suppose qu’une seule tâche peut gérer huit cibles rédigera une instruction que le format ne peut pas honorer, et un fichier de sous-titres censé être en japonais reviendra dans une autre langue.

Il nomme la langue source. Sans cela, le moteur déduit la source du contenu, et cette déduction est la moins fiable là où elle coûte le plus cher: lignes courtes, fichiers contenant déjà une phrase traduite isolée, et textes pleins de noms propres.

Il marque un arrêt avant la dépense. aiglot batches approve est la seule commande qui consomme des crédits. Tout ce qui précède est gratuit et répétable, donc demander de voir huit plans d’abord ne coûte rien et évite les malentendus coûteux.

Ce que l’agent exécute réellement, par langue

Quatre étapes répétées pour chaque langue. Seule la validation consomme des crédits, la lecture reste donc gratuite pour tous les plans.

Quatre commandes, répétées par langue. Sous forme de boucle shell, cela ressemble à ceci, ce qui est globalement ce que votre agent finira par faire:

# "code:Language" pairs, so the filename gets the code and the instruction
# gets the language name.
for pair in es:Spanish pt:Portuguese fr:French de:German \
            it:Italian ja:Japanese hi:Hindi id:Indonesian; do
  code=${pair%%:*}
  lang=${pair#*:}

  id=$(aiglot batches create ~/Videos/episode-04.srt \
        --instruction "The source language is English. Translate the text of every cue into ${lang}. Leave cue numbers and timecodes exactly as they are." \
        --json | jq -r '.data.id')

  # Read the plan for free, and only then commit.
  aiglot batches get "$id" --json | jq '.data.plan'

  aiglot batches approve "$id" --quality lite \
    --instructions "Keep every subtitle line under 42 characters. Never merge or split cues."

  # Wait for a TERMINAL status, not for a specific one.
  until status=$(aiglot batches get "$id" --json | jq -r '.data.status'); \
    [ "$status" = "completed" ] || [ "$status" = "failed" ] || [ "$status" = "cancelled" ]; do
    sleep 5
  done

  [ "$status" = "completed" ] && \
    aiglot batches download "$id" --output ~/Videos/subtitles/episode-04.${code}.srt
done

Un détail ici vaut la peine d’être retenu, même si vous ne traduisez jamais de sous-titres. La boucle attend n’importe quel statut du terminal plutôt que de guetter completed. Un script qui attend uniquement le statut espéré attendra indéfiniment en cas d’échec, car une comparaison avec une valeur qui n’arrive jamais n’est pas une erreur. C’est juste toujours faux.

Il existe également un serveur MCP, aiglot mcp, si votre agent préfère les outils au shell. Le CLI est le meilleur point de départ: il fonctionne dans un script, il fonctionne en CI, et vous pouvez lire exactement ce qui a été exécuté.

Les deux instructions que l’on confond

Cette distinction est la seule chose dans tout ce flux de travail qui échoue silencieusement, elle mérite donc trente secondes d’attention.

L’instruction du plan décide de ce qui est traduit. Elle est lue une seule fois, selon la structure du fichier, et c’est là que la langue cible doit être spécifiée. “Traduisez le texte de chaque cue en allemand.”

Les instructions au niveau des chaînes sont appliquées pendant l’écriture de chaque ligne. Le moteur voit une ligne de sous-titres à la fois, elles ne peuvent donc décrire que des éléments visibles à l’intérieur d’une ligne. La longueur de la ligne, le ton, un nom qui ne doit pas être touché.

Une règle de longueur de ligne ajoutée au plan ne sert à rien, et une instruction telle que “traduisez uniquement la seconde moitié du fichier” insérée au niveau des chaînes est totalement inutile, car aucun fichier n’est visible à ce stade. Aucune erreur n’est générée. Vous obtenez simplement un résultat qui ignore vos consignes.

Maintenir l’uniformité des noms sur toute une série

Huit langues multipliées par douze épisodes, cela fait quatre-vingt-seize fichiers. Le problème n’est pas la grammaire, mais le fait que votre produit s’appelle d’une façon dans l’épisode deux et d’une autre dans l’épisode neuf.

Un glossaire fixe les termes qui ne doivent pas varier et applique la même décision à chaque fichier.

Intégrez une seule fois les termes qui ne doivent pas varier dans un glossaire : noms de produits, noms de personnages, ou la traduction officielle d’une phrase que vous répétez dans chaque introduction. Cela s’appliquera alors à chaque fichier et chaque langue, y compris pour l’épisode que vous publierez le mois prochain.

C’est là qu’un traducteur automatique classique échoue, pour une raison mécanique. Son glossaire remplace un terme dès qu’il correspond, sans reconsidérer la phrase autour de la substitution. Ici, le glossaire est intégré au sens pendant la rédaction de la ligne, sehingga le terme s’accorde naturellement avec la phrase au lieu d’être simplement parachuté au milieu.

Téléchargement des fichiers sur YouTube

Dans Studio, ajoutez une langue à la vidéo, puis téléchargez le fichier correspondant. Faites-le pour la première, regardez trente secondes de vidéo avec cette piste, et vérifiez deux points : qu’une ligne longue n’est pas devenue un bloc de texte compact, et que le timing reste cohérent malgré l’allongement du texte. Le texte traduit est généralement 15 à 30% plus long que l’anglais, et c’est précisément ce que la consigne de longueur de ligne permet d’éviter.

Téléchargez ensuite le reste.

Ce que cela vous apporte concrètement

Deux éléments distincts, qu’il convient de séparer, car les preuves pour chacun sont différentes.

La découvrabilité, raison d’être de la traduction

Celle-ci provient directement de YouTube. “En moyenne, plus des deux tiers du temps de visionnage de l’audience d’un créateur proviennent de l’extérieur de sa région d’origine.” C’est le chiffre officiel de YouTube, publié sur sa propre page d’outils de traduction, et c’est la donnée la plus utile de cet article : la majeure partie de votre audience se trouve déjà ailleurs.

Le mécanisme est expliqué sur la même page. Les titres et descriptions traduits peuvent apparaître dans les résultats de recherche YouTube pour les utilisateurs parlant ces langues, et un utilisateur effectuant une recherche dans sa propre langue peut trouver et regarder toute vidéo disposant de sous-titres lisibles. Une vidéo avec une seule piste anglaise est découvrable dans une seule langue. Une vidéo avec neuf pistes l’est dans neuf langues.

Traduisez donc également le titre et la description, pas seulement les sous-titres. Ce sont eux qui constituent le résultat de recherche, et ils ne représentent que trois lignes de texte face à une heure de parole.

L’accessibilité, raison d’être du sous-titrage

Les sous-titres ne sont pas un simple bonus pour un grand nombre de personnes. L’Organisation mondiale de la santé rapporte que plus de 1,5 milliard de personnes vivent avec un certain degré de perte auditive, dont 430 millions avec une perte suffisamment importante pour nécessiter une rééducation, et prévoit 2,5 milliards d’ici 2050, soit une personne sur quatre.

Il y a ensuite tous ceux qui entendent parfaitement bien mais préfèrent lire. Dans un sondage YouGov réalisé en juillet 2023 auprès de 1 000 adultes américains, 63% des moins de 30 ans ont déclaré préférer les sous-titres lorsqu’ils regardent un contenu dans une langue qu’ils maîtrisent déjà. Cette préférence augmente à mesure que l’âge diminue, et c’est le groupe le plus jeune qui les demande le plus.

Enfin, beaucoup regardent les vidéos sans le son. Dans une étude menée par Verizon Media et Publicis Media en avril 2019 auprès de 5 616 adultes américains, 80% ont affirmé être plus enclins à regarder une vidéo en entier lorsque des sous-titres sont disponibles, et la moitié a précisé que les sous-titres sont essentiels car ils regardent généralement sans le son.

Soyez précis sur ce que prouvent ces deux derniers chiffres, car il est facile de les extrapoler. Ils mesurent l’usage des sous-titres dans une langue que le spectateur parle déjà, ils justifient donc la présence d’une piste de sous-titres en général, mais ne prouvent pas qu’une piste japonaise vous apporte des spectateurs japonais. C’est le chiffre de YouTube cité plus haut qui concerne la traduction. Ensemble, ils démontrent simplement qu’une piste textuelle capte l’attention, et qu’une piste dans la langue maternelle de quelqu’un capte l’attention sur un marché où vous n’apparaissez pas actuellement.

Deux autres chiffres à garder en tête, issus de recherches sur l’achat plutôt que sur le visionnage : CSA Research a révélé que 76% des acheteurs en ligne préfèrent acheter des produits dont les informations sont dans leur propre langue, et 40% refusent tout simplement d’acheter sur des sites dans d’autres langues. Si vos vidéos vendent un produit, c’est le même argument appliqué au passage en caisse.

Et la traduction automatique de YouTube ?

YouTube peut traduire automatiquement une piste de sous-titres pour le spectateur, directement dans le lecteur. C’est gratuit et c’est une solution de repli acceptable pour toutes les langues secondaires que vous ne publierez jamais correctement.

Ce n’est pas non plus votre contenu. Vous ne choisissez pas la formulation, vous ne pouvez pas corriger un terme erroné, le résultat varie selon le spectateur et le fichier n’existe nulle part pour être réutilisé. Une piste importée fonctionne à l’inverse : elle apparaît dans le menu des sous-titres de votre vidéo, elle affiche exactement ce que vous avez décidé et le même fichier fonctionne sur toutes les autres plateformes où vous publiez votre vidéo.

Utilisez la traduction automatique pour les langues dans lesquelles vous n’investissez pas. Importez de vraies pistes pour celles que vous privilégiez.

La portée réelle de l’outil

Pour une seule vidéo courte dans une seule langue, une personne parlant cette langue fera un meilleur travail que n’importe quel outil, et c’est elle que vous devriez solliciter.

Pour huit langues sur l’ensemble d’un catalogue, la gestion des fichiers représente la majeure partie de la charge, et ce n’est pas du travail linguistique. Passez le gros du volume par AI Glot, puis concentrez la révision là où elle apporte une réelle valeur : les langues les plus importantes pour votre audience et les vidéos qui vendent réellement. De nombreuses équipes l’utilisent pour un premier passage avant qu’un locuteur natif ne relise le résultat, ce qui est une excellente utilisation d’un expert et une bien meilleure option que de passer un après-midi à renommer des fichiers.

Si vous voulez l’essayer sur un seul épisode avant de vous lancer dans une série, le traducteur de sous-titres accepte un fichier sans compte. Ensuite, créez un compte gratuit quand vous serez prêt à traiter l’ensemble.


Les limites citées ici sont celles en vigueur lors de la rédaction : 4 MB par fichier SRT, et pour une archive de fichiers de sous-titres, 200 fichiers et 20 MB. Le nombre de mots, le nombre de séquences et les coûts dépendent toujours du plan choisi pour votre propre fichier, lequel est gratuit à produire et à corriger.

10 000 mots gratuits à l'inscription

Prêt à traduire vos fichiers volumineux ?