Home › Blog › API de traduction gratuite vs payante, 7 200 pages

Nous traduisons 7 200 pages par mois pour 0 $ . Voici ce qu'une véritable API facturerait.

16 octobre 2026 · API de langue et de localisation · 6 min de lecture

Je gère ce site et son projet frère en sept langues. À l'heure actuelle, cela représente 7 206 fichiers HTML traduits en direct sur le disque entre les deux - pas un push unique, un pipeline continu qui traduit de nouvelles pages au fur et à mesure de leur écriture. Je n'ai jamais payé un centime pour une API de traduction pour le faire. Puis, une nuit d'août, la route gratuite sur laquelle je l'ai construite a fait interdire l'adresse IP de mon serveur par Google pendant 19 heures, et j'ai dû m'asseoir et fixer le prix de la version honnête de cela.

Ce que nous exécutons réellement

Les deux sites utilisent deep_translatorvers GoogleTranslator classe, qui n'appelle pas l'API de traduction Google Cloud payante et à clé - elle gratte translate.googleapis.com, le même point de terminaison que la page Web gratuite translate.google.com utilise. Pas de clé API, pas de tableau de bord des quotas, pas de SLA. C'est gratuit parce que Google n'a jamais accepté de vous le vendre à ce prix ; vous utilisez simplement le backend de la page client directement.

Cela a bien fonctionné pendant des mois. Puis le 24 août à 19h56, chaque appel a commencé à lancer TranslationNotFound. J'ai couru un direct curl contre le même point de terminaison et a récupéré un HTTP 429 : « Désolé... votre ordinateur ou votre réseau peut envoyer des requêtes automatisées. « Pas une panne de Google - un bloc anti-bot sur notre IP spécifique, presque certainement gagné par notre propre volume (travaux par lots horaires traduisant des centaines de pages dans 29 créneaux linguistiques que nous prenons en charge en interne, dont 7 sont en direct). Il a fallu environ 19 heures pour le dégager.

Le mode de défaillance silencieux qui importait plus que la panne

Voici la partie qui m'a réellement inquiété une fois que je l'ai trouvé. La fonction qui enveloppe l'appel du traducteur a été écrite pour réessayer trois fois, puis abandonner et renvoyer le chaîne originale anglaise -- alors que l'appelant a toujours enregistré la page traduite avec succès. Cela signifie que pendant 19 heures, toute nouvelle page construite pendant le bloc aurait silencieusement envoyé du texte anglais à l'intérieur d'une page allemande ou japonaise, avec un signal d'erreur zéro n'importe où. Une panne que vous pouvez voir est un inconvénient. Une panne qui rapporte le succès tout en mentant sur le résultat est celle qui nuit réellement à la crédibilité d'un site multilingue, et elle aurait continué à le faire indéfiniment si je n'avais pas cherché.

Le correctif ajoutait MyMemoryTranslator -- également gratuit, également de deep_translator -- comme repli à l'intérieur de la même fonction. Lorsque le grattoir de Google épuise ses tentatives, MyMemory est essayé avant d'abandonner. Il a besoin de codes au format local (de-DEnon de), ce qui est une chose facile à manquer et à obtenir silencieusement aucun résultat si vous ne le mappez pas par langue.

Ce que la version payante aurait coûté

J'ai mesuré notre empreinte réelle pour y répondre correctement, plutôt que de deviner : 7 206 pages traduites dans les sept langues vivantes des deux sites (espagnol, allemand, français, portugais, russe, japonais, italien), dépourvues de balisage, représentent environ 39 millions de caractères de texte visible réel. Tarif au taux par caractère publié actuel de chaque fournisseur pour un passage unique sur cet instantané exact :

FournisseurTauxCoût pour nos chars 39M
Azure Translator10 $ / million de chars$390
Modèle Amazon15 $ / million de chars$585
Google Cloud Translation (payant, officiel)20 $ / million de chars780 USD
API DeepL, plan de croissance27,50 $ / million + 26 $ / mois de base≈ 1 073 $ +

Aucun de ces chiffres n'est important pour une entreprise. Ils ne sont pas non plus rien pour un projet parallèle, et plus important encore, ils se reproduiraient chaque fois que le site ajoute suffisamment de nouveau contenu pour avoir besoin d'un autre laissez-passer de traduction - qui, puisque nous publions quotidiennement, est plus proche d'une facture mensuelle qu'une facture unique. À notre taux de publication réel qui est réaliste de 50 à 150 $ / mois selon le fournisseur, pour toujours, pour quelque chose que le grattoir gratuit fait à 0 $ tant qu'il reste sous n'importe quel volume déclenche le bloc IP.

MyMemory est une solution de repli, pas un remplacement

I want to be specific about where the free route actually ends, because "just use the free fallback" isn't a real substitute for a paid API at our scale. MyMemory's anonymous free tier caps out around 5,000 words a day. That's enough to absorb an occasional Google block without anyone noticing. It is nowhere close to enough to translate 7,200+ pages as a primary method -- it would take weeks to get through a backlog that size, assuming the quota resets reliably. It only works in our pipeline because it catches a rare failure window, not because it's a real alternative to GoogleTranslator, let alone to a paid vendor.

Gratuit ne voulait pas dire exact, non plus

While I was in there fixing the outage, a routine audit turned up a translation quality bug that had nothing to do with the 429 block: our German UI's "Share:" label had been translated as "Aktie:" -- which means stock or equity share, not share-this-link -- across 326 pages from an older batch. Italian had the infinitive "Condividere:" instead of the correct imperative "Condividi:" on 330 pages; Russian had the same infinitive/imperative mix-up on 324; French was missing a required space before the colon on 325. All four are the kind of mistake a native speaker catches in two seconds and a generic MT engine, free or paid, just doesn't reliably avoid on short UI strings. I hand-fixed all four directly rather than re-running any translator on them -- for short, high-visibility microcopy like a Share button label, writing the correct phrase once in each language is faster and more reliable than trusting any engine, including the paid ones I priced above.

Ce que je fais réellement à ce sujet

I'm keeping the free scraper-plus-fallback setup. At $0 against a realistic $50-150/month, the math still favors it, and the visible-failure fix means a future block degrades to "slower" instead of "silently wrong." But I'm treating the 19-hour block as a warning shot, not a one-off: if it starts recurring weekly instead of once every couple of months, the honest move is paying for Azure Translator at roughly $390 for our current backlog and a small monthly trickle after that, not finding a third free workaround. Free infrastructure that depends on an unofficial endpoint not noticing you is a cost you're deferring, not one you've eliminated -- and the day it stops working for good is not a day you want to be choosing a vendor under pressure.

Nouveau dans la tarification de l'API basée sur l'utilisation en général ? Commencez par le guides gratuits sur les coûts des API.

Déployez-le vous-même : DigitalOcean — 200 $ de crédit gratuit ↗ · VPS Hostinger ↗

Page/character counts measured directly against our own live file tree, 2026-10-16. Vendor rates sourced from each provider's own current pricing page (Azure, Amazon, Google Cloud, DeepL), reference figures not live quotes -- confirm current terms directly with each provider before budgeting.