Über die quelloffene Webanwendung Mediagoblin teilen Benutzer abseits der bekannten Plattformen bequem Videos, Audiodateien und andere Dokumente. Wie Admins die Anwendung ins lokale Netzwerk integrieren und ob sie als Ersatz für Youtube, Flickr und Soundcloud taugt, zeigt der Artikel.
Videos teilt der Internetnutzer heute über Youtube, Fotos landen auf Flickr und Tonmaterial wandert in die Soundcloud. Hinter den Diensten stehen meist amerikanische Konzerne. Wer Videos und Bilder auf die Plattformen hochlädt, gibt sie folglich aus der Hand. Deutsche Datenschutzgesetze gelten hier nicht, weshalb viele hiesige Firmen die Dienste lieber nicht nutzen.
Abhilfe möchte GNU Mediagoblin [1] schaffen. Im Stil von Youtube und Flickr hostet die Webanwendung Videos, Bilder und andere Mediendateien, lässt sich auf einem eigenen Server betreiben und eignet sich somit als Medienplattform für das Intranet. Wer ein Video- und Medienarchiv aufbauen möchte, dem hilft die Webanwendung ebenfalls.
Zeig’s mir
Mediagoblin funktioniert wie ein Wiki für Medien: Benutzer laden über ein Formular Videos, Audiodateien und andere Medien hoch. Diese versehen sie mit Metadaten, etwa einer Beschreibung, Schlagwörtern oder einem Lizenztext. Andere Benutzer dürfen die hochgeladenen Dateien direkt im Browser betrachten beziehungsweise abspielen und dann kommentieren. Video- und Audiodateien stellt Mediagoblin in mehreren Dateiformaten zum Download bereit, die Webanwendung transkodiert die Mediendateien automatisch im Hintergrund.
Daneben verwaltet Mediagoblin weitere Dokumentenformate, neben PDF-Dokumenten zum Beispiel 3-D-Grafiken. Besucher können direkt im Browser eine Vorschau betrachten, was jedoch voraussetzt, dass dieser Web-GL beherrscht. Das Framework PDF.js zeigt PDF-Dateien an. Alle Dateiformate, die Mediagoblin unterstützt, listet Tabelle 1 auf. Installiert der Admin auf dem Server Libre Office und dessen Hilfsprogramm »unoconv« , verwandelt Mediagoblin viele weitere Dateiformate, etwa Word- und Excel-Dokumente, beim Hochladen automatisch in PDF-Dateien.
Tabelle 1
Unterstützte Dateiformate
|
Medientypen |
Dateiformate |
|---|---|
|
3-D-Objekte |
Obj, STL |
|
PDF-Dateien |
|
|
Audiomaterial |
MP3, Flac, Wav, M4A |
|
Bilder |
JPE, JPG, Jpeg, PNG, Gif, Tiff, Nef, CR2 |
|
Ascii-Texte |
TXT, ASC, NFO |
|
Videos |
MP4, Mov, Webm, Avi, 3GP, 3GPP, MKV, OGV, M4V |
Den Funktionsumfang von Mediagoblin dürfen Entwickler über Plugins erweitern, die Optik der Benutzeroberfläche passt der Installateur über Themes an. Mediagoblin ist ein offizielles GNU-Projekt und steht unter der AGPLv3. Alle mitgelieferten Medien, beispielsweise Logos und Bilder, haben die Entwickler unter der Creative-Commons-Lizenz 0 (Version 1.0) Universal und somit als Public Domain freigegeben.
Schön langsam
Die Arbeit an Mediagoblin begann bereits im Frühling 2011. Um die Entwicklung zu beschleunigen, startete im Oktober 2012 eine erste Spendenkampagne. Zusammen kamen schließlich über 45000 Dollar, die den Hauptentwickler Chris Webber ein Jahr lang bezahlen sollten. Neue Versionen erschienen aber nur tröpfchenweise, Ende 2013 schien es gar, als sei die Entwicklung komplett eingeschlafen.
Im März 2014 rief das Projekt eine neue Spendenkampagne ins Leben, deren Einnahmen die Entwicklung der Version 1.0 sichern sollten [2]. Obwohl die eingesammelten knapp 65000 US-Dollar das gesteckte Ziel übertrafen, erschien Ende August erst die Versionsnummer 0.7. In ihr fehlen noch einige der für die Version 1.0 geplanten Funktionen, darunter der Podcast-Support, aber vor allem eine Federation genannte Funktion. Über sie sollen sich Mediagoblin-Installationen miteinander verbinden, damit sich Nutzer auf unterschiedlichen Servern anmelden und dennoch ihre Videos und Bilder austauschen können.
Tatsächlich ist Mediagoblin aber bereits jetzt durchaus einsatzfähig, und die Plattform Open Hub [3] zählt gegenwärtig 25 aktive Projektentwickler. Unter anderen hosten es die Seiten Libre Planet [4] und Open Video Productions [5].
Aufgesetzter
Mediagoblin ist vollständig in Python geschrieben. Wer die Webanwendung einsetzen möchte, benötigt neben Python 2.6 oder 2.7 auch die Python Imagine Library (kurz PIL) sowie das Python-Modul »python-lxml« , das die XML- und XSLT-Parser aus den Bibliotheken »libxml2« und »libxslt« einbindet. Hinzu kommen noch das Werkzeug »virtualenv« , das virtuelle Python-Umgebungen erzeugt, sowie Git und eine SQlite- oder PostgreSQL-Datenbank.
Auf Debian- und Ubuntu-Systemen spielt das Kommando
sudo apt-get install git-core python python-dev python-lxml python-imaging python-virtualenv
alle notwendigen Pakete ein. Anschließend lädt der Admin Mediagoblin herunter und richtet die Git-Submodule ein (Listing 1). Die Dreierbande checkt die aktuelle Entwicklerversion aus. Pakete mit den einzelnen Releases stehen derzeit nicht zum Download bereit. Wer also die Version 0.7.1 nutzen möchte, muss sich diese erst umständlich aus dem Git-Repository herauspulen [6].
Listing 1
Mediagoblin auschecken
01 git clone git://gitorious.org/mediagoblin/mediagoblin.git 02 cd mediagoblin 03 git submodule init && git submodule update
Nach dem Herunterladen richtet der Plattformbetreiber eine virtuelle Umgebung für Mediagoblin ein:
(virtualenv --python=python2 --system-site-packages . || virtualenv --python=python2 .) && ./bin/python setup.py develop
Nun kann er die benötigten Datenbanktabellen anlegen:
./bin/gmg dbupdate
Das Tool »gmg« übernimmt später noch weitere Wartungsaufgaben, so hilft es dabei, die Benutzer zu verwalten. Außerdem hat es eine Python-Shell im Gepäck, über die der Admin Mediagoblin überwacht und Einstellungen im laufenden Betrieb verändert. Abschließend startet er den eingebauten Webserver:
./lazyserver.sh
Das Skript ruft den WSGI-HTTP-Server Gunicorn auf [7]. Das gilt zumindest für das bei Redaktionsschluss in Entwicklung befindliche Mediagoblin 0.7.2. Die direkte Vorversion startete noch einen Webserver mit Python Paste [8].
Nun wartet unter der Adresse »http://localhost:6543« eine vollständige Testinstallation von Mediagoblin auf den Administrator, die ihre Daten in einer SQlite-Datenbank ablegt. Hinweise für den Betrieb auf einem Produktivserver liefert der Kasten “In freier Wildbahn”. Den Webserver beendet der Admin hart über [Strg]+[C].
In freier Wildbahn
In einer produktiven Umgebung sollte der Betreiber Mediagoblin über Fast CGI an einen Webserver wie Apache oder Nginx anflanschen. Dazu legt er zunächst auf dem Server einen neuen Nutzer mit eingeschränkten Rechten an, richtet Mediagoblin dann mit den im Artikel genannten Befehlen im entsprechenden Documentroot-Verzeichnis des Webservers ein und holt via »./bin/easy_install flup« noch das Python-Modul Flup nach, das eine “zufällige Auswahl von WSGI-Servern” enthält.
Größere Installationen sollten zudem eine PostgreSQL-Datenbank nutzen und sie in der Konfigurationsdatei »mediagoblin.ini« anmelden. Statt des »lazyserver.sh« -Skripts empfehlen die Entwickler in diesem Fall, den Mediagoblin-Prozess mit einem eigenen Initskript direkt über Paste und Celery zu starten.
Letztgenannte Software stellt eine asynchrone Task-/Job-Queue bereit, mit der Benutzer Videos hochladen und gleichzeitig andere Medien auf der Mediagoblin-Seite betrachten. Beispiele für entsprechende Initskripte finden sich im Mediagoblin-Wiki unter [9]. Abschließend muss der Admin den Webserver noch auf Mediagoblin hinweisen.
Passende Beispielkonfigurationen für Server wie Apache 2, Nginx und Lighttpd liefert [10].
Anmeldung
Auf der Startseite von Mediagoblin erstellt der Medienschaffende über die entsprechende Schaltfläche ein neues Benutzerkonto (Abbildung 1). Diese Möglichkeit steht generell allen Besuchern der Webseite offen. Möchte der Admin das unterbinden, ersetzt er in der Konfigurationsdatei »mediagoblin.ini« im Mediagoblin-Verzeichnis die Zeile »allow_registration = true« durch »allow_registration = false« .
Wie nach jeder Änderung an der Konfigurationsdatei muss er danach die Datenbank mit »gmg« auf den aktuellen Stand bringen, was der Befehl »./bin/gmg dbupdate« erledigt. Danach darf nur noch der Administrator über das Kommandozeilen-Werkzeug »gmg« Benutzerkonten erstellen:
./bin/gmg adduser
Die Software fragt den gewünschten Benutzernamen, das Passwort und die E-Mail-Adresse ab. Mit »/bin/gmg makeadmin marvin« verwandelt sie den Benutzer »marvin« bei Bedarf in einen Admin. Im Gegensatz zu normalen Usern dürfen Administratoren eine Liste mit allen als anstößig gemeldeten Dateien einsehen und erhalten Zugriff auf die Benutzerverwaltung aus Abbildung 2.
Hat ein Benutzer das Registrierungsformular ausgefüllt, schickt ihm das System eine E-Mail mit einem Aktivierungslink. In einer Testinstallation erscheint diese E-Mail auf der Kommandozeile. Die Einstellungen zum Postausgangsserver finden sich in der Konfigurationsdatei »config_spec.ini« , die wiederum im Unterordner »mediagoblin« liegt. In dieser Datei passt der Betreiber im Abschnitt »[mediagoblin]« die Angaben hinter den mit »email…« beginnenden Zeilen entsprechend an.
Damit die verschickten E-Mails nicht zusätzlich auf der Kommandozeile erscheinen, setzt der Admin in der »mediagoblin.ini« den Punkt »email_debug_mode = true« auf »false« . Als Absender verwendet Mediagoblin für alle Aktivierungs- und Status-E-Mails die unter »email_sender_ address« in Anführungszeichen hinterlegte Adresse.
Nach dem Anmelden landet der Benutzer auf einer Übersichtsseite. Die verfügbaren Funktionen erreicht er mit einem Klick auf den Pfeil rechts oben in der Ecke. Dort kann er weitere »Medien hinzufügen« oder sein Profil bearbeiten. In diesem kann er eine kurze Biografie sowie eine persönliche Webseite anlegen. Avatar-Bilder oder ähnliche Informationen lassen sich in der Version 0.7.1 noch nicht einbinden.
Ein Atom-Feed informiert andere User über jeden neuen Upload des Benutzers, Medien lassen sich zudem in so genannten Sammlungen gruppieren. Ein Klick auf ein Bild oder Video öffnet eine Detailseite (Abbildung 3). Auf ihr dürfen andere Benutzer Kommentare hinterlassen. Ufern diese aus, können die User die Seite deaktivieren oder anstößige Medien über den entsprechenden Button melden. Die Dateien des Benutzers »tim« stellt Mediagoblin öffentlich unter der Adresse »http://localhost:6543/u/tim/gallery/« allen Besuchern bereit.
Ladehemmung
Mediagoblin lädt nur Dateitypen hoch, die es explizit kennt. Standardmäßig sind das ausschließlich Bilder. Um weitere Medienformate zu nutzen, rüstet der Admin Plugins nach. Für die Medientypen aus Tabelle 1 bringt Mediagoblin passende Plugins mit, die in der »mediagoblin.ini« explizit freizuschalten sind. Im Unterverzeichnis »mediagoblin/media_types« liegt in jedem Ordner ein Plugin, dessen Ordnername die von ihm unterstützten Medientypen verrät. Das Plugin unter »audio« ermöglicht etwa den Upload von Audiodateien.
Um ein Plugin zu aktivieren, merkt sich der Admin den Namen des Verzeichnisses und ergänzt ihn in der Datei »mediagoblin.ini« unterhalb von »[plugins]« so:
[[mediagoblin.media_types.audio]]
Das Beispiel gilt für den Verzeichnisnamen »audio« und aktiviert das zugehörige Plugin. Danach muss der Admin wieder über »./bin/gmg dbupdate« die Datenbank aktualisieren.
Hier aber stellt sich Mediagoblin dumm und bricht mit dem Verweis auf fehlende Werkzeuge sehr wahrscheinlich seine Arbeit ab. So verarbeitet es zwar Video- und Audiodateien mit Gstreamer, installiert die benötigten Pakete aber nicht automatisch. Das Kommando aus Listing 2 holt dies unter Debian und Ubuntu für den Audio- und Videobereich nach. Im Fall von Debian gehört noch das Paket »gstreamer0.10-ffmpeg« dazu.
Listing 2
Installation der Pakete für Ubuntu
01 sudo apt-get install python-gst0.10 gstreamer0.10-plugins-{base,bad,good,ugly} python-numpy python-scipy libsndfile1-dev libasound2-dev
Für die Audioverarbeitung zieht der Plattformverwalter zudem das Python-Modul »scikits.audiolab« mit »./bin/pip install scikits.audiolab« heran. Es sorgt für die Spektralliniendarstellung. Sind alle Abhängigkeiten aufgelöst, aktualisiert »gmg« die Datenbank erneut.
Taucht ein erfolgreicher Upload wider Erwarten nicht in der Medienübersicht auf, hilft ein Blick in die Statistik aus Abbildung 4. Dazu klappt der Admin über den Pfeil rechts oben die Links aus und wählt »Medienverarbeitung« . Die dort angezeigte Meldung gibt einen ersten Hinweis auf die Fehlerquelle. Hilfreich sind zudem die Logmeldungen auf der Kommandozeile.
Hochgeladene Video- und Audiodateien transkodiert Mediagoblin automatisch in weitere Dateiformate. In den Tests des Linux-Magazins unter Ubuntu 14.04 schlug das allerdings immer wieder fehl, insbesondere größere Dateien verursachten häufig einen nicht weiter spezifizierten internen Serverfehler.
Langfristig soll der Admin neue Plugins bequem über Python-Module nachrüsten können. Derzeit lässt sich mit
pip install mediagoblin-licenses
jedoch erst ein Plugin nachholen, das es erlaubt, eigene Lizenztexte anzulegen und zu verwenden. Standardmäßig stellt Mediagoblin beim Upload einer Datei neben dem »All rights reserved« nur noch Creative-Commons-Lizenzen zur Auswahl.
Tagesthema
Das Aussehen der Seiten bestimmen Themes, wobei Version 0.7.2 nur zwei an Bord hat, die im Verzeichnis »mediagoblin/themes« in einem eigenen Unterordner liegen. Um das Theme zu wechseln, hinterlegt der Admin den Verzeichnisnamen in der Konfigurationsdatei »mediagoblin.ini« :
theme = sandyseventiesspeedboat
Mit dieser Zeile würde Mediagoblin das Theme »sandyseventiesspeedboat« verwenden, die Auswirkungen zeigt Abbildung 5. Hat der Verwalter die »mediagoblin.ini« angepasst, muss er über den Befehl »./bin/gmg assetlink« noch per Kommando ein paar Links richten.
Fazit
Dass Mediagoblin praxistauglich ist, beweist sein Einsatz auf den Seiten von Libreplanet.org und Open Video Productions. In der aktuellen Form macht es einen guten Eindruck, lässt aber noch Funktionen vermissen. So ist die Benutzer- und Rechteverwaltung rudimentär. Zudem sehen alle Besucher stets alle hochgeladenen Medien, was wohl in bestimmten Fällen den Unternehmenseinsatz verhindert. Diskussionen lassen sich zudem nicht moderieren, Administratoren dürfen lediglich Kommentare löschen. Auch die Dokumentation scheint derzeit im Wesentlichen für Entwickler gedacht [11].
Langfristig möchten die Macher die Mediagoblin-Installationen verbinden, um eine dezentralisierte Medienverwaltung zu schaffen, die in der Hand der Nutzer liegt. Da aber jeder Besucher alle hochgestellten Medien einsehen und herunterladen darf, sind sie auch hier zurzeit mehr oder weniger außer Kontrolle.
Infos
- Mediagoblin: http://mediagoblin.org
- Mediagoblin-Spendenkampagne: http://mediagoblin.org/pages/campaign.html
- Open Hub: https://www.openhub.net/p?ref=homepage&q=Mediagoblin
- Libreplanet.org: http://media.libreplanet.org
- Open Video Productions: http://media.openvideo.pro
- Git-Repository: https://gitorious.org/mediagoblin/mediagoblin
- Gunicorn: http://gunicorn.org
- Python Paste: http://pythonpaste.org
- Considerations for Production Deployments: http://mediagoblin.readthedocs.org/en/v0.7.1/siteadmin/production-deployments.html
- Mediagoblin Deployment: https://wiki.mediagoblin.org/Deployment
- Mediagoblin-Dokumentation: http://docs.mediagoblin.org










