Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Translauto

Translauto é um tradutor de arquivos de legenda .srt que usa a API gratuita do Google Translate (via deep-translator), com saída em terminal via rich.

main

Instalação

1. Atualize os pacotes e instale as dependências necessárias:

apt update && apt install git python python-pip -y

2. Clone o repositório e instale os pacotes requeridos:

git clone https://github.com/Olliv3r/Translauto
cd Translauto && pip install -r requirements.txt

Exemplos de Uso

Traduzir um arquivo de legenda específico:

./translauto.py -s auto -t pt -f subtitle/subtitle.srt

-s auto detecta automaticamente o idioma de origem. -t pt especifica o idioma de destino (Português). -f subtitle/subtitle.srt é o caminho para o arquivo de legenda a ser traduzido.

Traduzir múltiplos arquivos de legenda:

./translauto.py -s en -t pt -a

Traduz todos os .srt do diretório padrão subtitle (ou de outro diretório definido via T_AUTO_DIR). Ao final é exibida uma tabela de resumo com status por arquivo — se um arquivo falhar, os demais continuam sendo processados normalmente.

Substituir o arquivo de origem pelo traduzido:

./translauto.py -s auto -t pt -a -r

Faça backup antes de usar -r — o original é sobrescrito.

Controlar o intervalo entre requests:

./translauto.py -s auto -t pt -f arquivo.srt -d 0.5

-d/--delay define a espera (segundos) entre lotes de tradução. Padrão: 0.3. Aumente se estiver tomando rate limit com frequência.

Personalizando o diretório de legendas:

export T_AUTO_DIR=/sdcard/subtitles

Exibir idiomas disponíveis:

./translauto.py --languages

Como a tradução funciona

  • O arquivo é lido linha a linha. Um detector de timestamp reconhece linhas de timecode em qualquer formato onde o timecode ocupa a própria linha (SRT, WebVTT, SBV — inclusive variações com -> em vez de -->, ou ./, como separador decimal). Linhas de timestamp, índice/cue-id e cabeçalho (WEBVTT, NOTE, STYLE) são preservadas literalmente. Apenas o texto entre elas vai para o tradutor.
  • Trechos traduzíveis são agrupados em lotes até ~4200 caracteres (limite real da API é 5000). Um arquivo pequeno cai naturalmente em um único request; um arquivo grande é dividido em N lotes, reduzindo o número total de requests.
  • Se um lote traduzido não puder ser separado de volta com segurança (contagem de partes não bate), o programa automaticamente cai para tradução item a item nesse lote — mais lento, porém correto.
  • Erros de rate limit (TooManyRequests) e falhas transitórias de rede acionam retry com backoff exponencial (até 4 tentativas).
  • Se nenhum timestamp for detectado no arquivo, o programa avisa e cai para um modo de tradução de texto puro, dividido por parágrafo.
  • Em modo -a, uma falha em um arquivo não interrompe os demais; o resumo final lista o que passou, o que foi ignorado e o que falhou.
  • Arquivos binários (byte nulo nos primeiros KB) são identificados e ignorados antes de qualquer tentativa de tradução.

Extensões e formatos

  • -f arquivo aceita qualquer arquivo apontado explicitamente — não há mais trava por .srt. A extensão só é usada para decidir se um aviso é exibido.
  • -a (varredura de diretório) usa uma whitelist por padrão: .srt, .vtt, .sub, .sbv, .txt. Isso é proposital — varrer um diretório sem filtro pegaria README.md, arquivos de configuração, etc. Ajuste com -e/--ext, ex.: -e .srt,.vtt,.md.
  • ASS/SSA não é suportado. Nesses formatos o timecode fica embutido numa linha CSV (Dialogue: 0,0:00:01.00,...,texto), não numa linha própria. O detector genérico exige timecode isolado; aplicá-lo a uma linha Dialogue: mandaria a linha inteira (incluindo campos de estilo/CSV) para o tradutor, corrompendo a estrutura. O programa detecta a assinatura ([Script Info] / Dialogue:) e recusa o arquivo em vez de arriscar isso — tanto por extensão quanto pelo conteúdo, mesmo que o arquivo esteja com outra extensão.

Recursos

  • Tradução de arquivos de legenda sem corromper timecodes
  • Detector de timestamp agnóstico de formato (SRT, WebVTT, SBV)
  • Tradução em lotes com fallback automático para arquivos grandes
  • Retry com backoff em rate limit
  • Saída em terminal via rich (progresso, tabelas de resumo)
  • Suporte a ASS/SSA (precisa de parser dedicado, ver seção acima)
  • Preservação de tags inline (<i>, {\i1}) durante a tradução

© Copyright Olliv3r

About

Traduz arquivos de legendas .srt

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /