Streaming de torrents usando NodeJS y VLC
Streaming de torrents usando NodeJS y VLC
Antes de comenzar, me gustaría aclarar algunos puntos importantes debido a la aplicación y al código que voy a publicar:
- Bajo ningún concepto apoyo la piratería de ningún medio, formato o producto digital y/o físico, ya que toda persona tiene derecho a cobrar por su trabajo.
- De la misma forma que he aprovechado el conocimiento de otras personas, yo ofrezco mis conocimientos para quien pueda o quiera aprovecharlos mediante este blog.
- Tanto el código fuente que he desarrollado, como las dependencias de terceros y las adaptaciones de las mismas están a disposición de todo el mundo.
- La aplicación y el código fuente aquí expuestos, se ofrecen y publican solo con fines educativos, descargando toda la responsabilidad sobre quien realice un mal uso de la misma.
Bien, una vez aclarados estos puntos comencemos con la aplicación.
La idea surge cuando intento realizar streaming de un vídeo usando WebRTC y NodeJS.
Como no me convence la solución, me pongo a buscar información por internet y me encuentro con esta página.
Para sorpresa mía, resulta que es una librería que te permite hacer streaming de ficheros torrent desde el navegador y con unas pocas lineas de código.
Pasadas unas horas y viendo que no conseguía que funcionase con ficheros torrent, encuentro en la documentación que esta librería usa WebRTC para hacer el per-to-per pero no es compatible con los fichero .torrent.
Como soy un poco cabezón, continuo buscando y por fin encuentro unas dependencias para usar en NodeJS que te permiten hacer streaming de torrents.
A partir de ese momento, solo queda pelearse un poco con el código y las dependencias.
Al cabo de unos días creo una pequeña aplicación y su repositorio correspondiente.
Poniendo la aplicación en marcha
Una vez bajado / clonado el repositorio ejecutaremos npm i para instalar todas las dependencias necesarias.
A continuación ejecutaremos el comando node server.js, el cual nos levantara un servidor en local que se encargara de todo el proceso de streaming.

Ahora que nuestro servidor esta funcionando, abriremos la página index.html

Como había indicado al principio y para evitar problemas con derechos de autor, vamos a usar un fichero torrent sin copyright.

Cuando tengamos el fichero torrent en nuestro equipo, procederemos a subirlo a nuestra aplicación

En el momento hagamos clic sobre el botón, esta acción subirá en nuestro servidor de NodeJS a una carpeta llamada torrents el fichero del cual realizara el streaming.

Una cosa a tener en cuenta, es que desde el navegador que usemos para abrir el index.html deberemos instalar una extensión para evitar problemas de CORS.
El siguiente paso, sera abrir VLC y cargar un vídeo desde una URL que nos proporcionara NodeJS.


Comenzara el proceso de carga del vídeo desde la URL de NodeJS.

Cuando se haya obtenido una pequeña parte de la información, VLC comenzara a reproducir el vídeo mientras NodeJS continuar obteniendo el resto de la información, hasta completar todo el fichero.

Y ya solo nos queda comprobar que nuestro vídeo se muestra correctamente.