Equalang
Apúntale a un archivo y lo sube, espera a que termine el trabajo y escribe los resultados junto al original. Obtienes rutas de vuelta, nunca el contenido del archivo: el diseño, las tablas, las imágenes y las fórmulas sobreviven, y nada grande entra en la conversación.
El trabajo consume los créditos del usuario. Di cuánto costará y obtén su consentimiento antes de translate o transcribe. estimate da el número para un archivo, gratis.
Configuración
La clave es una línea, EQUALANG_API_KEY=el_..., en ~/.config/equalang/.env (bajo $XDG_CONFIG_HOME si está configurado): un archivo por máquina, compartido con el servidor MCP de Equalang y conservado cuando este skill se reinstala o actualiza. El usuario crea la clave en 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 en el entorno tiene prioridad sobre el archivo. Sin clave, cada comando responde con cómo obtener una y dónde va. Nunca inventes una clave – pregúntale al usuario.
Comandos
Ejecuta desde el directorio de este skill; solo se necesita python3. Cada comando imprime un objeto JSON; --help lista las banderas de un comando.
# ¿Cuánto costaría? Sube sin iniciar nada; gratis. `kept_until` dice cuánto tiempo se retiene la subida.
python3 scripts/equalang.py estimate report.pdf
# -> {"file_id": "...", "credits_to_translate": 12.34, "credits_to_transcribe": null, ...}
# Traduce un archivo. Una ruta, una URL pública (Equalang la obtiene), o --file-id de estimate.
python3 scripts/equalang.py translate report.pdf --to zh-CN
python3 scripts/equalang.py translate --file-id <file_id> --to zh-CN # sin segunda subida
python3 scripts/equalang.py translate https://example.com/deck.pptx --to ja -o ./out
# Una grabación: subtítulos traducidos, o lo que se dijo en el idioma hablado.
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
# Cadenas en lote (cada una traducida individualmente; máximo 50 de 5.000 caracteres, 20.000 por llamada).
python3 scripts/equalang.py text "Guardar cambios" "Eliminar proyecto" --to de
# Un texto largo sin formato – un artículo, notas, un .md – hasta 100.000 caracteres. Equalang lo corta por oraciones: nunca lo dividas tú mismo.
python3 scripts/equalang.py text --file notes.md --to ja -o notes.ja.md
# Consultar un trabajo de nuevo · detener uno · el saldo · códigos de idioma (no se necesita clave)
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
Leer la salida
Un trabajo terminado imprime outputs (cada uno con su path) y credits_charged. Informa ambos al usuario. No leas un archivo producido para resumirlo a menos que te lo pidan: es un documento completo, y el propósito de una ruta es que su contenido se mantenga fuera de la conversación.
Un fallo imprime {"error", "code", "retryable"} y sale con 1. Reintenta solo cuando retryable sea verdadero; INSUFFICIENT_CREDITS significa que el usuario recarga en https://equalang.com/pricing, no que lo intentes de nuevo.
Vale la pena saber
- Formatos. Documentos: pdf, docx, pptx, xlsx, epub, html, txt. Subtítulos: srt, vtt. Imágenes: jpg, png, webp, bmp. Grabaciones: mp3, m4a, wav, flac, ogg, aac, opus, mp4, mov, webm, mkv. Hasta 100 MB.
transcribesolo acepta grabaciones. - Los resultados nunca sobrescriben. Se colocan junto al origen local (o en
-o DIR, o en el directorio actual para una URL) con el nombre que Equalang les asigna; un nombre ya ocupado obtiene un(1). Preguntarstatusde nuevo sobre un trabajo terminado nombra los archivos que ya escribió en lugar de copiarlos. - Minutos, no segundos, para archivos largos. El comando espera e imprime el progreso en stderr. Interrumpirlo no cancela el trabajo:
status <job_id>lo retoma,cancel <job_id>lo detiene. Un trabajo cancelado o fallido no se cobra. - Una grabación se cobra por el habla realmente escuchada – el silencio y la música no – por lo que suele costar menos de lo que dijo
estimate; un documento cuesta lo que dijoestimate. - Códigos de idioma se ven como
en,zh-CN,zh-TW,ja,pt. Se leen de la API en vivo, nunca de la memoria:languageslista los que aceptan archivos,languages --kind textel conjunto más amplio que aceptatext, ylanguages chineseencuentra uno por nombre. Omite--source-languagepara que se detecte automáticamente. - ¿Varios archivos? Estima cada uno, suma los números y pregunta una sola vez – nunca iteres sobre una carpeta por tu cuenta.
- La API detrás de esto, para cualquier cosa que el script no haga: https://equalang.com/llms.txt