Acestream en Docker

Acestream es software que permite la reproducción de contenido streaming utilizando la tecnología P2P.

Para instalarlo con docker, yo he utilizado una máquina virtual en proxmox, pero podéis hacerlo en cualquier otro hardware que creáis apropiado. Es posible hacerlo con una raspberry pi, pero ya que su procesador tiene diferente arquitectura, se realiza de una forma distinta.

1. Instala docker

Ya sea en un VPS, una máquina virtual o un contenedor, instala docker siguiendo las recomendaciones oficiales de su página web. Si quieres seguir los pasos exactamente como yo, instala ubuntu 20 LTS e instala docker de la siguiente forma:

No olvides actualizar tu sistema con sudo apt update && sudo apt upgrade -y

2. Clona el repositorio

El creador de la imagen docker nos lo pone muy fácil. Primero clonamos su repositorio:

git clone https://github.com/magnetikonline/docker-acestream-server

Si no tienes git, usa sudo apt install git

3. Ejecuta los scripts

Una vez clonado, en la nueva carpeta que se ha creado encontrarás todos los archivos necesarios. El siguiente script descargará el contenedor de forma automática.

sudo ./build.sh

Cuando finalice, nuestro contenedor estará preparado. Empezamos el servicio con:

sudo ./run.sh

Sin embargo, si estamos en linux el creador nos recomienda utilizar otro script en su lugar, llamado run-tmpfs.sh, para una mejor optimización de los archivos caché.

4. Proporciona el hash

De una forma u la otra, ya está nuestro servidor esperando que le pasemos el hash de un stream para comenzar a trabajar. Para ello, debemos abrir una nueva terminal, entrar de nuevo a la carpeta dónde están los archivos y ejecutar el siguiente script:

sudo ./playstream.py --ace-stream-pid <hash> --progress --service <ip>

Sustituye en “hash” el identificador del stream que quieres ver. La opción –progress sirve para que vaya informando del estado del stream cada 2 segundos. En “ip” debes poner la ip local de la máquina, para luego poder copiar el enlace del stream de forma sencilla. Todas las opciones están detalladas en su repositorio.

Ya está todo listo, para ver el contenido, copia el enlace generado y utiliza VLC en cualquier dispositivo para verlo.

5. Pequeña utilidad extra

Para en otro momento volver a ejecutar todo, puede llegar a ser algo pesado ejecutar uno a uno los archivos. Por esto, he realizado un script muy sencillo que simplemente lanza los otros dos directamente, con los parámetros ya establecidos.

Si te interesa, crea el nuevo archivo con touch startstraming.sh y editalo con nano startstreaming.sh. Copia y pega los siguientes comandos:

1
2
3
4
5
#!/bin/bash

/home/angel/docker-acestream-server/run.sh &
sleep 6
/home/angel/docker-acestream-server/playstream.py --ace-stream-pid $1 --progress --server $2

Lógicamente, cambia las rutas a los archivos por las tuyas.

Dale permisos de ejecución: chmod +x startstraming.sh

A este script le debes pasar como parámetros el hash y después la IP. Ahora cada vez que quieras empezar a ver un streaming, usa:

sudo ./startstreaming.sh <hash> <IP>