# WebTorrent

WebTorrent es un cliente de torrents de transmisión entre pares (P2P) escrito en JavaScript, desarrollado originalmente por Feross Aboukhadijeh, para uso en navegadores web, así como una versión independiente de escritorio capaz de unir redes serverless WebTorrent y BitTorrent.

## Historia

Antes de crear WebTorrent, los desarrolladores crearon PeerCDN, una red de distribución de contenidos entre pares que fue comprada por Yahoo! en 2013.
La idea detrás de WebTorrent es hacer un protocolo similar a BitTorrent que funcione en el navegador web, manteniendo tanta compatibilidad con BitTorrent como sea posible. Cualquier navegador web debería ser capaz de conectarse a un «enjambre» peer-to-peer, obtener contenido, verificar que es correcto y mostrárselo al usuario, todo ello en la medida de lo posible sin servidores centralizados que dependan de una red formada íntegramente por los navegadores de la gente. WebTorrent utiliza el mismo protocolo que BitTorrent, pero emplea una capa de transporte diferente. WebTorrent se basa principalmente en conexiones WebRTC, mientras que BitTorrent utiliza conexiones TCP y datagramas UDP directamente.

## WebTorrent Desktop

WebTorrent Desktop es un cliente torrent para escritorio que tiende puentes entre las dos redes de WebTorrent, basado en WebRTC, y BitTorrent, basado en TCP/UDP, simultáneamente. El cliente BitTorrent Vuze (antes Azureus) incorporó WebTorrent de forma menos elegante pero adecuadamente funcional añadiendo un puente de red simultáneo a su programa. Los desarrolladores utilizaron Electron, framework para desarrollo de aplicaciones gráficas de escritorio utilizando JavaScript con acceso a todas las APIs de Oxygene y Node.

## Funcionalidad

El vídeo en línea es el objetivo principal, ya que es donde WebTorrent resulta más útil. Es menos adecuado para archivos pequeños o conjuntos de datos, pero es ideal para archivos más grandes.
La disponibilidad de los archivos, al igual que con BitTorrents, depende de la distribución de los torrents. Si solo unos pocos usuarios comparten un archivo, un servidor HTTP que ofrezca sembrado sería la solución alternativa. Sin sembrado no hay compartición. Sin embargo, esto podría tener algunas implicaciones positivas. En lugar de utilizar un sitio de carga intermediario para compartir un archivo privado de gran tamaño con otra persona, con WebTorrent puede conectarse directamente sin dejar rastros en algún lugar ni quedar potencialmente archivado en algún sitio de carga. Basta con arrastrar y soltar el archivo para crear un enlace magnético compartible. Las conexiones ya están encriptadas, pero se puede añadir capas adicionales de encriptación con claves para enviar de otra manera. Los límites de RAM se pueden gestionar con IndexedDB.
El cliente prioriza cronológicamente los fragmentos descargados, de modo que el archivo puede transmitirse sin interrupciones incluso antes de que se complete la descarga.

## Adopción

WebTorrent utiliza estándares web abiertos ampliamente soportados como WebRTC y, por lo tanto, funciona en cualquier navegador moderno, incluyendo Google Chrome, Firefox y Opera para escritorio y Android, Microsoft Edge y Safari.

### BitChute

Lanzado en 2017, BitChute es un servicio de alojamiento de vídeos que utiliza la tecnología WebTorrent. Afirmaba que su objetivo era aliviar los problemas de ancho de banda del streaming centralizado. Según Fredrick Brennan, hay pocas pruebas de que BitChute utilice realmente la tecnología peer-to-peer. En abril de 2021, la opción de alojar vídeos mediante WebTorrent en BitChute «parece haber quedado obsoleta», según Ars Technica.

### Brave

El navegador web Brave incluye WebTorrent en los ejecutables nativos e integra WebTorrent en su interfaz de usuario.