Equalang
Pointez-le vers un fichier, il télécharge le fichier, attend la tâche et écrit les résultats à côté de la source. Vous obtenez des chemins en retour, jamais le contenu des fichiers – la mise en page, les tableaux, les images et les formules sont conservés, et rien de volumineux n'entre dans la conversation.
Le travail utilise les crédits de l'utilisateur. Dites quel sera le coût et obtenez son accord avant de translate ou transcribe. estimate donne le chiffre pour un fichier, gratuitement.
Configuration
La clé se trouve sur une ligne, EQUALANG_API_KEY=el_..., dans ~/.config/equalang/.env (sous $XDG_CONFIG_HOME si celui-ci est défini) : un fichier par machine, partagé avec le serveur MCP Equalang et conservé lors de la réinstallation ou de la mise à jour de cette compétence. L'utilisateur crée la clé sur https://equalang.com/api-keys.
dir="${XDG_CONFIG_HOME:-$HOME/.config}/equalang"
mkdir -p "$dir" && (umask 077 && echo 'EQUALANG_API_KEY=el_...' > "$dir/.env")
EQUALANG_API_KEY dans l'environnement l'emporte sur le fichier. Sans clé, chaque commande répond en indiquant comment en obtenir une et où elle va. N'inventez jamais de clé – demandez à l'utilisateur.
Commandes
Exécutez depuis le répertoire de cette compétence ; python3 et rien d'autre n'est nécessaire. Chaque commande imprime un objet JSON ; --help liste les indicateurs d'une commande.
# Combien cela coûterait-il ? Télécharge sans rien démarrer ; gratuit. `kept_until` indique combien de temps le téléchargement est conservé.
python3 scripts/equalang.py estimate report.pdf
# -> {"file_id": "...", "credits_to_translate": 12.34, "credits_to_transcribe": null, ...}
# Traduire un fichier. Un chemin, une URL publique (Equalang la récupère), ou --file-id provenant de estimate.
python3 scripts/equalang.py translate report.pdf --to zh-CN
python3 scripts/equalang.py translate --file-id <file_id> --to zh-CN # pas de second téléchargement
python3 scripts/equalang.py translate https://example.com/deck.pptx --to ja -o ./out
# Un enregistrement : sous-titres traduits, ou ce qui a été dit dans la langue parlée.
python3 scripts/equalang.py translate talk.mp4 --to en --bilingual --format srt --format txt
python3 scripts/equalang.py transcribe interview.mp3 --format srt --format txt
# Chaînes en masse (chacune traduite individuellement ; au maximum 50 de 5 000 caractères, 20 000 par appel).
python3 scripts/equalang.py text "Save changes" "Delete project" --to de
# Un long texte brut – un article, des notes, un .md – jusqu'à 100 000 caractères. Equalang le découpe aux phrases : ne le divisez jamais vous-même.
python3 scripts/equalang.py text --file notes.md --to ja -o notes.ja.md
# Consulter une tâche à nouveau · en arrêter une · le solde · les codes de langue (aucune clé nécessaire)
python3 scripts/equalang.py status <job_id> -o ./out
python3 scripts/equalang.py cancel <job_id>
python3 scripts/equalang.py balance
python3 scripts/equalang.py languages chinese
Lecture de la sortie
Une tâche terminée affiche outputs (chacun avec son path) et credits_charged. Informez l'utilisateur des deux. Ne lisez pas un fichier produit pour le résumer sauf demande explicite : c'est un document entier, et l'intérêt d'un chemin est que son contenu reste hors de la conversation.
Un échec affiche {"error", "code", "retryable"} et quitte avec le code 1. Ne réessayez que lorsque retryable est vrai ; INSUFFICIENT_CREDITS signifie que l'utilisateur recharge son compte sur https://equalang.com/pricing, pas que vous réessayez.
À savoir
- Formats. Documents : pdf, docx, pptx, xlsx, epub, html, txt. Sous-titres : srt, vtt. Images : jpg, png, webp, bmp. Enregistrements : mp3, m4a, wav, flac, ogg, aac, opus, mp4, mov, webm, mkv. Jusqu'à 100 Mo.
transcribene prend que les enregistrements. - Les résultats ne sont jamais écrasés. Ils atterrissent à côté d'une source locale (ou dans
-o DIR, ou le répertoire courant pour une URL) sous le nom qu'Equalang leur donne ; un nom déjà pris reçoit(1). Demanderstatusà nouveau sur une tâche terminée nomme les fichiers déjà écrits plutôt que de les copier. - Des minutes, pas des secondes, pour les fichiers longs. La commande attend et affiche la progression sur stderr. L'interrompre n'annule pas la tâche :
status <job_id>la reprend,cancel <job_id>l'arrête. Une tâche annulée ou échouée n'est pas facturée. - Un enregistrement est facturé pour la parole effectivement entendue – le silence et la musique ne le sont pas – donc cela coûte généralement moins que ce qu'
estimatea dit ; un document coûte ce qu'estimatea dit. - Les codes de langue ressemblent à
en,zh-CN,zh-TW,ja,pt. Ils sont lus depuis l'API en direct, jamais depuis la mémoire :languagesliste ceux que les fichiers acceptent,languages --kind textl'ensemble plus large quetextaccepte, etlanguages chineseen trouve un par son nom. Omettez--source-languagepour qu'il soit détecté. - Plusieurs fichiers ? Estimez chacun, additionnez les nombres et demandez une seule fois – ne parcourez jamais un dossier en boucle de votre propre chef.
- L'API derrière cela, pour tout ce que le script ne fait pas : https://equalang.com/llms.txt