googletrans-fixed: o cliente não oficial do Google Translate, mantido funcionando
Biblioteca em Python que chama o serviço web do Google Translate para detect e translate, com detecção automática de idioma, tradução em lote, URL de serviço…
On this page
googletrans-fixed: o cliente não oficial do Google Translate, mantido funcionando
TL;DR
- O
googletrans-fixedé uma biblioteca em Python que fala com o serviço web do Google Translate, então é gratuita e ilimitada por construção — chama os mesmos servidores que otranslate.google.comchama. - Quatro recursos fazem o trabalho: detecção automática de idioma, tradução em lote, URL de serviço configurável e HTTP/2 via
httpx. - O truque da biblioteca é o ticket: o Google colocou um mecanismo de token para barrar crawler, e a biblioteca gera esse ticket a partir do código cliente engenheirado ao contrário, que o README diz poder ser bloqueado a qualquer momento.
- Nota honesta sobre o nome: o README aqui é a documentação da biblioteca original, e o "-fixed" no nome do repositório é a afirmação do próprio repositório, não algo que a documentação comprove.
O que é e para quem
O googletrans-fixed é uma biblioteca de tradução em Python, compatível com Python 3.6 ou mais novo. Ela implementa os métodos detect e translate contra a API Ajax do Google Translate, e a documentação dele é a do Googletrans original — e é por isso que este artigo separa o que o README afirma do que o nome do repositório afirma.
É para quem precisa traduzir um lote de string num script e não quer pagar API de tradução, e para quem teve o googletrans instalado quebrando e achou três cópias do pacote no PyPI com datas diferentes.
Os recursos
- Rápido e confiável, por herança. Usa os mesmos servidores que o
translate.google.comusa, e é a fonte tanto da velocidade quanto da fragilidade. - Detecção automática de idioma. Se o idioma de origem não é dado, a biblioteca pede ao Google para detectar.
- Tradução em lote. Uma lista de string vai numa chamada em vez de uma requisição por string.
- URL de serviço configurável. O endpoint pode apontar para outro lugar, o que importa atrás de proxy ou espelho regional.
- Suporte a HTTP/2. As requisições passam por
httpx, então HTTP/2 funciona por padrão, e o README mostra como conferir pelo._response.http_versionde um objetoTranslatedouDetected.
Por que precisa de ticket
A explicação do README é a parte interessante. Outras abordagens, como o goslate, pararam de funcionar porque o Google atualizou o serviço de tradução com um mecanismo de ticket para barrar programa que faz crawling. A biblioteca gera esse ticket engenheirando ao contrário o JavaScript ofuscado e minificado que o Google usa, e implementa o resultado em Python.
A consequência honesta está no mesmo parágrafo: isso pode ser bloqueado a qualquer momento. Biblioteca de tradução construída sobre token engenheirado ao contrário é biblioteca com dependência de uma página que ninguém prometeu manter estável — e é exatamente por isso que existe cópia remendada.
Instalar e usar
pip install googletrans
O README também aceita baixar o pacote e colocar o diretório googletrans no PYTHONPATH. O uso básico é um objeto translator, uma chamada translate e um resultado Detected ou Translated; quando o idioma de origem é omitido, a detecção acontece antes.
Quando usar, quando não usar
Use quando você precisa de tradução gratuita de um lote de string dentro de script, quando API paga é exagero, ou quando você quer instalação sem dependência pesada para ferramenta pequena.
Não use para nada com expectativa de nível de serviço: valem os limites do próprio README — ticket que pode ser bloqueado a qualquer momento, suporte a proxy listado como to-do e gerenciamento de sessão para tradução em lote também listado como to-do. E não use para tradução com valor legal; é o mesmo endpoint web que o navegador usa, sem garantia atrás.
Sources
- googletrans-fixed — repositório — o repositório publica a biblioteca com a documentação do Googletrans original no
README.rst. - README.rst — recursos, nota de HTTP/2, a explicação do ticket, instalação, uso, lista de to-do.
Página do projeto: googletrans-fixed
FAQ
Como funciona sem chave de API? Chama a API Ajax do Google Translate, os mesmos servidores que o translate.google.com usa, gerando o ticket que o código cliente do Google produz.
Tem suporte a HTTP/2? Sim. As requisições passam por httpx, então HTTP/2 funciona por padrão, e o README mostra como conferir no objeto de resposta.
Ele detecta o idioma de origem? Sim. Se o idioma de origem não é dado, a biblioteca pede ao Google para detectar.
Quais são os limites conhecidos? O README lista suporte a proxy e gerenciamento de sessão para lote como to-do, e avisa que o ticket engenheirado ao contrário pode ser bloqueado a qualquer momento.