English | Português | 中文 | 日本語 | Русский | Español | Deutsch | Українська
BATorrent
El cliente BitTorrent con cara — carátulas de películas, seis temas, cero anuncios.
La mayoría de los clientes de torrent parecen un formulario de Hacienda. Este muestra tus descargas como un **muro de carátulas de películas, series y juegos** — lo mismo que reconoces en Netflix o Steam — y te deja vestirlo con seis temas (o tu propio fondo de pantalla). Por dentro lleva el probado motor **libtorrent**, así que no es un juguete bonito: es un cliente de verdad que da la casualidad de que tiene buen gusto.
> **Sin anuncios. Sin telemetría. Sin versión "Pro". Sin cuenta.** La única petición que hace por su cuenta es la comprobación de actualizaciones en GitHub, y puedes desactivarla. El código está aquí mismo — lee [`updater.cpp`](src/services/integrations/updater.cpp) y compruébalo tú mismo.
## Por qué existe
Soy un desarrollador solo en Brasil. Quería un cliente de torrent que se tomara en serio la privacidad, corriera de forma nativa en cualquier escritorio y no pareciera hecho en 2009 — y como no encontré ninguno, hice el mío. Es gratis y con **licencia MIT**: sin trampas, sin telemetría apareciendo más tarde y sin que puedan venderlo en silencio a una empresa que le añada anuncios. Ocho idiomas, porque "útil" no debería significar "solo en inglés".
## El aspecto
- **Carátulas automáticas** — lee el nombre del torrent y trae el póster real (películas y series vía TMDB, juegos vía IGDB) a una vista de cuadrícula. Un clic cambia a una lista compacta.
- **Seis temas** — Dark, Light, Midnight, Sakura, Dark Star y uno totalmente **Personalizado** (tu propio fondo + colores de acento), cada uno con arte de acento anime opcional.
- Gráfico de velocidad en tiempo real, progreso coloreado por estado, un popup en la bandeja con velocidades en vivo y ETA — los detalles que hacen que se *sienta* terminado.
## Lo que de verdad hace
| | |
|---|---|
| 🔒 **Privacidad primero** | Vinculación a la interfaz de la VPN + **kill switch** (corta todo el tráfico si el túnel cae), modo PT para trackers privados, preajuste Tor, handshake anónimo, bloqueo anti-leecher |
| 🔎 **Buscar y añadir** | Búsqueda integrada (incl. fuentes abiertas CIS/RuTor, sin login), Pegado Inteligente (magnet / `.torrent` / `thunder://` / hash con Ctrl+V), descarga automática por RSS con filtros regex, arrastrar y soltar |
| 📱 **Contrólalo desde cualquier sitio** | WebUI en el navegador con **emparejamiento por QR** — escanea desde el móvil, sin teclear IPs. El QR se genera localmente; tu dirección nunca sale de la máquina |
| 📺 **Ver y organizar** | Reproduce mientras descargas, extracción automática de archivos, categorías + etiquetas, actualización de la biblioteca Plex/Jellyfin/Emby al completar |
| 🔔 **Mantente al tanto** | Notificaciones nativas de escritorio, alertas de Telegram, Discord Rich Presence ("Descargando X · 67%") |
…y la cola larga (haz clic para expandir)
Prioridad por archivo · descarga secuencial · inyección automática de trackers · control del diseño del contenido · regex de archivos excluidos · carpeta temporal de descarga · estado Completado con ventanas de seeding · auto-pausa ante errores de archivo · límites globales + por torrent de ratio/tiempo · programador de ancho de banda (hora + día) · importar desde qBittorrent · crear archivos `.torrent` · inspector de torrent · listas de bloqueo de IP · cifrado de protocolo · mirror de actualización Gitee · apagado automático al terminar · exclusión de Windows Defender · copia de seguridad/restauración completa · historial de eliminados recientemente · forzar inicio · visor de registro integrado + diagnósticos + prueba de fuga de IP · formato según la configuración regional · atajos de teclado.
## El motor
La mayoría de las apps de torrent enlazan libtorrent estándar. BATorrent lleva un pequeño **fork parcheado** que le permite cambiar comportamientos del motor que la API pública no alcanza:
- **Arranque más rápido de la tubería.** En un enlace de gran ancho de banda y alta latencia, la tubería de peticiones estándar crece de a un paso; el fork la hace crecer geométricamente, llenando una tubería ancha en una fracción de las idas y vueltas. Medido en ~+27 % en un enlace rápido en el propio benchmark A/B del proyecto, sin los baches del estándar entre ejecuciones, y nunca empeora.
- **Preferencia por peers del mismo país.** Una base de datos GeoIP sin conexión (db-ip Lite) etiqueta cada peer por país, y el ranking de peers del fork prefiere los de tu propio país cuando puede elegir — lo que suele significar menor latencia y menos rutas transfronterizas con throttling.
Ambas son funciones del fork en tiempo de compilación (desactivadas en un build estándar) y se aplican como parches versionados en [`third_party/patches/`](third_party/patches), no como una copia incrustada.
## Conseguirlo
| Plataforma | | |
|---|---|---|
| **Windows** | [Microsoft Store](https://apps.microsoft.com/detail/9n4l3tq24rc6) · [Instalador](https://github.com/BATorrent-app/BATorrent/releases/latest) · [Portátil](https://github.com/BATorrent-app/BATorrent/releases/latest) | Windows 10+ |
| **macOS** | **`brew install --cask Mateuscruz19/batorrent/batorrent`** · [`.dmg`](https://github.com/BATorrent-app/BATorrent/releases/latest) | macOS 12+ · Apple Silicon |
| **Linux** | [AppImage](https://github.com/BATorrent-app/BATorrent/releases/latest) | glibc 2.35+ |
Después solo arrastra un `.torrent` o un magnet a la ventana. Eso es todo.
**macOS:** todavía sin notarizar (el programa de desarrollador de Apple es de pago). Homebrew es la vía más suave — `brew` quita la marca de cuarentena, así que abre sin el aviso de Gatekeeper. Con el `.dmg`, clic derecho → **Abrir** la primera vez.
Compilar desde el código fuente y notas de ingeniería
### Requisitos
C++17 · CMake 3.16+ · Qt 6 (`Widgets`, `Network`, `Svg`, `Multimedia`) · libtorrent-rasterbar 2.0+ · Boost · Qt6Keychain (opcional).
```bash
# Debian / Ubuntu
sudo apt install build-essential cmake qt6-base-dev qt6-svg-dev qt6-multimedia-dev \
libtorrent-rasterbar-dev libboost-dev libssl-dev
cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j && ./build/BATorrent
```
(macOS: `brew install qt libtorrent-rasterbar boost openssl`. Windows: instalador de Qt + `vcpkg install libtorrent:x64-windows`.)
### Calidad y seguridad
- **Pruebas** — suite Catch2 (unidad, seguridad, memoria) en cada build de CI; el nuevo comportamiento del backend lleva su prueba.
- **Sanitizers** — pasa limpio bajo AddressSanitizer + UndefinedBehaviorSanitizer (0 fugas / use-after-free / UB).
- **Revisado** antes de cada release en cuanto a seguridad de memoria/hilos, autenticación de la WebUI, inyección, path traversal, validación de entrada y manejo de secretos. Los secretos viven en el keychain del sistema, nunca en texto plano; la WebUI solo se abre a la red cuando defines una contraseña.
## Contribuir
Issues y PRs son bienvenidos — para cualquier cosa no trivial, abre una issue primero. Informes de error: incluye tu plataforma + versión (`Ayuda → Acerca de`) y los pasos para reproducirlo. Las traducciones se agradecen especialmente.
## Licencia
[MIT](LICENSE) © 2024–2026 Mateus Cruz · hecho en Brasil 🦇