MediaGoblin: a decentralized platform for sharing multimedia files

By | May 22, 2022

After almost 4 years from the last release, the release of the new version of the decentralized platform for sharing multimedia files MediaGoblin 0.10 in which the default transition was made to use Python 3 and support to start using FastCGI is discontinued.

Besides that added support for automatic video transcoding to options with a different resolution and viewing of videos with different quality levels (360p, 480p, 720p) and that in this new version se re-enabled the new subtitles plugin with which you can upload and edit subtitles for videos.

Multiple subtitle tracks are supported, such as for different languages. This feature was added by Saksham Agrawal during Google Summer of Code 2016 and directed by Boris Bobrov. The function has been available for some time on the master branch, but it definitely deserves a mention for this version (AJAX technology is used to add comments interactively).

Table of Contents

About MediaGoblin

For those who are unfamiliar with MediaGoblin (also known as GNU MediaGoblin) you should know that this is a platform designed to organize the hosting and sharing of multimedia content, including photos, videos, sound files, videos, XNUMXD models, and PDF documents.

Platform is capable of supporting a wide range of content, support for plain text, images (PNG and JPEG) is included. HTML5 is used intensively for the reproduction of video and audio content in WebM format; while FLAC, WAV and MP3 sound formats are automatically transcoded to Vorbis and then encapsulated in WebM files.

Unlike centralized services like Fliсkr and Picasa, the platform MediaGoblin aims to organize content sharing without reference to a specific service, using a model similar to StatusNet and pump.io, and providing the opportunity to grow the server on your own premises.

MediaGoblin is part of GNU and its code is released under the terms of the GNU Affero General Public License; which means that it adheres to the principles of free and open source software.

The rest of the rights on what cannot be considered software (eg design, logo) is released into the public domain.

How to install MediaGoblin and derivatives on Ubuntu?

For those who are interested in being able to install this platform on their system, they can do so by following the instructions we share below.

Before proceeding to the installation andIt is important to mention that this platform is built to work with a server, but it can be used under a desktop system perfectly. The only thing that must be taken into account is that the necessary applications to run web services must be installed on your computer, while for those who are under a server edition, several of the steps can be skipped.

The first thing we must do is install the necessary services, which in this case we can rely on Lampp (you can check the following article where we explain how to do it).

Related article:

LAMP, install Apache, MariaDB and PHP on Ubuntu 20.04

Done this now we must install Ngix (since MediGoblin requires it) and also various dependencies:

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

Now we are going to configure the database in PostgreSQL, where the database and user are mediagoblin:

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

We create a user and give it privileges about multimedia files:

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

We create the directories that will contain the multimedia files:

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

We install the platform:

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

Done this now only tWe will end up editing the mediagoblin.ini file in which we are going to place the following:

  • email_sender_address: an email which will be used as sender for the system
  • In direct_remote_path, base_d, and base_url, they can be edited to change the URL prefix.
  • [mediagoblin]: here we will add the connection to the database (it is as follows if the name of the database that we created with the previous commands “sql_engine = postgresql: /// mediagoblin” is respected)

After editing and saving the changes we will update the changes with:

./bin/gmg dbupdate

Finally let’s create the administrator account where we replace username with the username of our preference and [email protected] with the email to which the account will be linked:

./bin/gmg adduser --username you --email [email protected] ./bin/gmg makeadmin you

To launch the service, just run:

./lazyserver.sh –server-name=broadcast

And we connect from a web browser to the url localhost: 6543 or using your internal or server IP address or domain name to port “6543”.

If you want to know more about it, you can check the details In the following link.

Leave a Reply

Your email address will not be published.