From d0bbda745f77059b83e763bf906b8936249ce216 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 28 Mar 2026 00:54:47 +0000 Subject: [PATCH] fix: switch from MyMemory to Google Translate (no rate limit) --- app/metadata_enrichment.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/metadata_enrichment.py b/app/metadata_enrichment.py index d3fdefb..50f2f36 100644 --- a/app/metadata_enrichment.py +++ b/app/metadata_enrichment.py @@ -278,16 +278,22 @@ class MetadataEnricher: return metadata async def _translate_to_french(self, text: str) -> str: - """Translate text to French using MyMemory API (free, no key needed).""" + """Translate text to French using Google Translate (free, no key).""" try: async with httpx.AsyncClient(timeout=15.0) as client: response = await client.get( - "https://api.mymemory.translated.net/get", - params={"q": text[:490], "langpair": "en|fr"}, + "https://translate.googleapis.com/translate_a/single", + params={ + "client": "gtx", + "sl": "en", + "tl": "fr", + "dt": "t", + "q": text[:4900], + }, ) data = response.json() - translated = data.get("responseData", {}).get("translatedText", "") - if translated and translated.lower() != text[: len(translated)].lower(): + translated = "".join(seg[0] for seg in data[0] if seg[0]) + if translated: return translated except Exception as e: logger.debug(f"Translation failed, using original: {e}")