MediaGoblin: una plataforma descentralizada para compartir archivos multimedia

mayo 07, 2020 , 0 Comments

Después de casi 4 años del último lanzamiento, se dio a conocer hace poco la liberación de la nueva versión de la plataforma descentralizada para compartir archivos multimedia MediaGoblin 0.10 en la cual se realizó la transición predeterminada para usar Python 3 y se suspende el soporte para comenzar a usar FastCGI.

Ademas de que se agregó el soporte para la transcodificación automática de video a opciones con una resolución diferente y visualización de videos con diferentes niveles de calidad (360p, 480p, 720p) y que en esta nueva versión se volvió a habilitar el nuevo complemento de subtítulos con el cual se pueden cargar y editar subtítulos para videos.

Se admiten múltiples pistas de subtítulos, como para diferentes idiomas. Esta característica fue agregada por Saksham Agrawal durante Google Summer of Code 2016 y dirigida por Boris Bobrov. La función ha estado disponible durante algún tiempo en la rama maestra, pero definitivamente merece una mención para esta versión (la tecnología AJAX se utiliza para agregar comentarios interactivamente).

Sobre MediaGoblin

Para quienes desconocen de MediaGoblin (también conocido como GNU MediaGoblin) deben saber que esta es una plataforma diseñada para organizar el alojamiento y el intercambio de contenido multimedia, incluidas fotos, videos, archivos de sonido, videos, modelos tridimensionales y documentos PDF.

La plataforma es capaz de soportar una amplia gama de contenido, se incluye soporte para texto plano, imágenes (PNG y JPEG). HTML5 es usado intensivamente para la reproducción de video y audio contenidos en formato WebM; mientras que los formatos de sonido FLAC, WAV y MP3 automáticamente son transcodificadas a Vorbis y luego encapsuladas en archivos WebM.

A diferencia de los servicios centralizados como Fliсkr y Picasa, la plataforma MediaGoblin tiene como objetivo organizar el intercambio de contenido sin referencia a un servicio específico, utilizando un modelo similar a StatusNet y pump.io, y brindando la oportunidad de aumentar el servidor en sus propias instalaciones.

MediaGoblin es parte de GNU y su código se publica bajo los términos de la licencia GNU Affero General Public License; lo que significa que se adhiere a los principios del software libre y de código abierto.

El resto de los derechos sobre aquello que no puede ser considerado software (por ej. diseño, logo) es liberado al dominio público.

¿Como instalar en Ubuntu MediaGoblin y derivados?

Para quienes estén interesados en poder instalar esta plataforma en su sistema, podrán hacerlo siguiendo las instrucciones que compartimos a continuación.

Antes de pasar a la instalación es importante mencionar que esta plataforma está construida para funcionar con un servidor, pero se puede utilizar bajo un sistema de escritorio perfectamente. Lo único que se debe tomar en cuenta es que se deben instalar las aplicaciones necesarias para ejecutar servicios web en tu ordenador, mientras que para los que están bajo una edición de servidor pueden saltarse varios de los pasos.

Lo primero que debemos hacer es instalar los servicios necesarios, que en este caso nos podemos apoyar de Lampp (puedes consultar el siguiente artículo donde te explicamos a como hacerlo).

Hecho esto, ahora debemos instalar Ngix (ya que MediGoblin lo requiere) y también varias dependencias:

sudo apt install nginx-light rabbitmq-server

sudo apt update

sudo apt install automake git nodejs npm python3-dev python3-gi \

python3-gst-1.0 python3-lxml python3-pil virtualenv python3-psycopg2

Ahora vamos a configurar la base de datos en PostgreSQL, donde la base de datos y el usuario son mediagoblin:

sudo --login --user=postgres createuser --no-createdb mediagoblin

sudo --login --user=postgres createdb --encoding=UTF8 --owner=mediagoblin mediagoblin

Creamos un usuario y le damos privilegios sobre los archivos multimedia:

sudo useradd --system --create-home --home-dir /var/lib/qmediagoblin \
--group www-data --comment 'GNU MediaGoblin system account' mediagoblin
sudo groupadd --force mediagoblin
sudo usermod --append --groups mediagoblin mediagoblin
sudo su mediagoblin –shell=/bin/bash

Creamos los directorios que contendrán los archivos multimedia:

sudo mkdir --parents /srv/mediagoblin.example.org
sudo chown --no-dereference --recursive mediagoblin:www-data /srv/mediagoblin.example.org

Instalamos la plataforma:

sudo su mediagoblin --shell=/bin/bash
cd /srv/mediagoblin.example.org
git clone --depth=1 https://git.savannah.gnu.org/git/mediagoblin.git \
--branch stable --recursive
cd mediagoblin
./bootstrap.sh
VIRTUALENV_FLAGS='--system-site-packages' ./configure
make
mkdir --mode=2750 user_dev
sudo su mediagoblin --shell=/bin/bash
cd /srv/mediagoblin.example.org
git submodule update && ./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate

Hecho esto ahora solamente tendremos que editar el archivo mediagoblin.ini en el cual vamos a colocar lo siguiente:

  • email_sender_address : un correo electrónico el cual se utilizara como remitente para el sistema
  • En direct_remote_path, base_diry base_url, se pueden editar para cambiar el prefijo de la URL.
  • [mediagoblin]: aquí añadiremos la conexión a la base de datos (queda de la siguiente forma si se respeto el nombre de la base de datos que creamos con los comandos anteriores “sql_engine = postgresql:///mediagoblin”)

Posterior a la edición y guardar los cambios vamos a actualizar los cambios con:

./bin/gmg dbupdate

Finalmente vamos a crear la cuenta de administrador donde sustituimos username por el nombre de usuario de nuestra preferencia y you@example.com con el correo electrónico al que se vinculara la cuenta:

./bin/gmg adduser --username you --email you@example.com

./bin/gmg makeadmin you

Para lanzar el servici basta con ejecutar:

./lazyserver.sh –server-name=broadcast

Y nos conectamos desde un navegador web a la url localhost:6543 o usando tu dirección ip interna o del servidor o nombre de dominio al puerto “6543”.

Si quieres conocer más al respecto, puedes consultar los detalles en el siguiente enlace.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.