ArtificialGuyBR

Home / Blog / Fixing things

googletrans-fixed: el cliente no oficial de Google Translate, mantenido funcionando

Biblioteca en Python que llama al servicio web de Google Translate para detect y translate, con detección automática de idioma, traducción en lote, URL de se…

2 sources cited Fixing things

googletrans-fixed: el cliente no oficial de Google Translate, mantenido funcionando

TL;DR

  • googletrans-fixed es una biblioteca en Python que habla con el servicio web de Google Translate, así que es gratuita e ilimitada por construcción — llama a los mismos servidores que translate.google.com.
  • Cuatro funciones hacen el trabajo: detección automática de idioma, traducción en lote, URL de servicio configurable y HTTP/2 mediante httpx.
  • El truco de la biblioteca es el ticket: Google añadió un mecanismo de token para frenar a los programas de crawling, y la biblioteca genera ese ticket a partir del código cliente reconstruido a la inversa, que el README dice que puede bloquearse en cualquier momento.
  • Nota honesta sobre el nombre: el README aquí es la documentación de la biblioteca original, y el -fixed del nombre del repositorio es una afirmación del repositorio, no algo que la documentación demuestre.

Qué es y para quién

googletrans-fixed es una biblioteca de traducción en Python, compatible con Python 3.6 o más nuevo. Implementa los métodos detect y translate contra la API Ajax de Google Translate, y su documentación es la del Googletrans original — por eso este artículo separa lo que afirma el README de lo que afirma el nombre del repositorio.

Es para quien necesita traducir un lote de cadenas dentro de un script y no quiere pagar una API de traducción, y para quien tuvo el googletrans instalado y roto y encontró tres copias del paquete en PyPI con fechas distintas.

Las funciones

  • Rápida y confiable, por herencia. Usa los mismos servidores que usa translate.google.com, y esa es la fuente tanto de la velocidad como de la fragilidad.
  • Detección automática de idioma. Si no se da el idioma de origen, la biblioteca pide a Google que lo detecte.
  • Traducción en lote. Una lista de cadenas va en una llamada y no en una petición por cadena.
  • URL de servicio configurable. El endpoint puede apuntar a otro sitio, lo que importa detrás de un proxy o un espejo regional.
  • Soporte de HTTP/2. Las peticiones pasan por httpx, así que HTTP/2 funciona por defecto, y el README muestra cómo comprobarlo con ._response.http_version en un objeto Translated o Detected.

Por qué necesita un ticket

La explicación del README es la parte interesante. Otros enfoques como goslate dejaron de funcionar porque Google actualizó su servicio de traducción con un mecanismo de ticket para frenar a los programas de crawling. La biblioteca genera ese ticket reconstruyendo a la inversa el JavaScript ofuscado y minificado que Google usa, y lo implementa en Python.

La consecuencia honesta está en el mismo párrafo: eso puede bloquearse en cualquier momento. Una biblioteca de traducción construida sobre un token reconstruido es una biblioteca con dependencia de una página que nadie prometió mantener estable — que es exactamente por qué existen copias parcheadas.

Instalar y usar

pip install googletrans

El README también acepta descargar el paquete y poner el directorio googletrans en el PYTHONPATH. El uso básico es un objeto translator, una llamada translate y un resultado Detected o Translated; cuando se omite el idioma de origen, la detección ocurre primero.

Cuándo usarla, cuándo no

Úsala cuando necesites traducción gratuita de un lote de cadenas dentro de un script, cuando una API de pago sea exceso, o cuando quieras una instalación sin dependencias pesadas para una herramienta pequeña.

No la uses para nada con expectativa de nivel de servicio: valen los límites del propio README — un ticket que puede bloquearse en cualquier momento, el soporte de proxy listado como pendiente y la gestión de sesión para traducción en lote también pendiente. Y no la uses para una traducción con valor legal; es el mismo endpoint web que usa el navegador, sin garantía detrás.

Sources

  1. googletrans-fixed — repositorio — el repositorio publica la biblioteca con la documentación del Googletrans original en README.rst.
  2. README.rst — funciones, nota de HTTP/2, la explicación del ticket, instalación, uso, pendientes.

Página del proyecto: googletrans-fixed

FAQ

¿Cómo funciona sin clave de API? Llama a la API Ajax de Google Translate, los mismos servidores que usa translate.google.com, generando el ticket que produce el código cliente de Google.

¿Tiene soporte de HTTP/2? Sí. Las peticiones pasan por httpx, así que HTTP/2 funciona por defecto, y el README muestra cómo comprobarlo en el objeto de respuesta.

¿Detecta el idioma de origen? Sí. Si no se da el idioma de origen, la biblioteca pide a Google que lo detecte.

¿Cuáles son los límites conocidos? El README lista el soporte de proxy y la gestión de sesión para lote como pendientes, y avisa de que el ticket reconstruido puede bloquearse en cualquier momento.