Ampache ist eine webbasierte freie Media-Streaming-Portal-Oberfläche unter der GPL-Lizenz. Der Name ist ein Kofferwort aus dem Webserver Apache und Amplifier (englisch für Verstärker). Ursprünglich wurde Ampache für die Zusammenarbeit mit dem Apache-Modul mod_mp3 entworfen, verfügt aber heute über seine eigene Streaming-Lösung [3]. Die Hauptaufgabe ist es, Musik und Videos im Intranet oder über das Internet zu streamen.
Ampache
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Ampache Team |
Aktuelle Version | 3.5.4 Stable, 3.6-Alpha4 (Format invalid) |
Betriebssystem | plattformunabhängig |
Programmiersprache | PHP[1][2], JavaScript[1][1] |
Kategorie | Streaming |
Lizenz | GNU GPL/LGPL (Freie Software) |
deutschsprachig | ja |
ampache.org |
Projektphilosophie
Die Philosophie des Projekts ist klar definiert und in die 4 Hauptziele Sicherheit, Geschwindigkeit, Barrierefreiheit und Kompatibilität aufgegliedert [4].
Da das in PHP geschriebene Ampache MySQL als Datenbank verwendet wird die Sicherheit gegen SQL-Injection mit höchster Priorität betrachtet. Besondere Aufmerksamkeit wird auf die Geschwindigkeit des Programmcodes gelegt, da Mediendatenbanken sehr umfangreich werden können und Ampache auch für eine größere Benutzerzahl gewappnet sein soll.
Unter dem Ziel Barrierefreiheit wird die Nutzbarkeit aller Funktionen durch jeden Webbrowser, jedes Betriebssystem, in jeder Sprache und durch jedes menschliche Individuum verstanden. Die beabsichtigte Kompatibilität zu jeder Form von digitaler Musik umfasst die Unterstützung jedes erdenklichen Audioformats, eine beliebige Verzeichnisstruktur einer Sammlung und den Umgang mit Dateien mit mangelhaften oder fehlenden Metadaten.
Metadaten und Dateiformate
Die Mediendatenbank wird in Form von Katalogen gepflegt, denen jeweils ein lokales Verzeichnis zugeordnet ist. Beim Erstellen eines Katalogs wird dieses Verzeichnis auf Dateien mit einer der unterstützten Dateiendungen durchsucht, die getrennt für Audio- und Videoformate frei konfigurierbar sind. Die gefundenen Dateien werden dann auf Metadaten durchsucht, die in einer frei priorisierbaren Reihenfolge extrahiert werden. Wurden keine Metadaten gefunden, werden diese ersatzweise über frei definierbare Formeln aus Verzeichnis- und Dateinamen konstruiert. Nachdem alle Daten in die Datenbank eingetragen worden sind, ist das Programm betriebsbereit.
Ampache ist eine Suchmaschine, deren Ergebnisse in eine Wiedergabeliste eingetragen werden können. Diese kann lokal zum Fernsteuern eines Abspielprogramms oder aus einem Webbrowser zum Starten eines externen Abspielprogramms verwendet werden. Durch Transkodierung können vom Zielprogramm nicht unterstützte Formate während des Abspielens umgewandelt werden. Hierzu kann jeder beliebigen Dateiendung ein Transkodierprogramm zugeordnet werden, das auf dem Server installiert sein muss.
Dieses Konzept ist sehr flexibel und erlaubt es, beliebige Formate hinzuzufügen. Bei noch nicht unterstützten und zukünftigen Formaten muss lediglich die Extraktion der Metadaten nachgerüstet werden. Bis dahin kann man jedoch auf die Auswertung von Pfad und Dateinamen zurückgreifen, oder selbst in PHP ein Plugin für das neue Format schreiben. Derzeit können Metadaten aus ID3-Tags (v1/v2), Vorbis comments, APE-Tags und aus den QuickTime, ASF, AVI, MPEG und RIFF Formaten ausgelesen werden.
Schnittstellen und Abspielprogramme
Ampache verfügt über zahlreiche Schnittstellen zur Interaktion mit anderen Programmen, die Standardschnittstelle ist das Abspielen von Wiedergabelisten im Webbrowser.
Das lokale Abspielen von Wiedergabelisten kann zur Steuerung eines MPD oder SHOUTcast Servers verwendet werden oder über das Protokoll HTTPq ein externes Abspielprogramm fernsteuern. HTTPq wird direkt vom VLC media player unterstützt, sowie über Plug-ins von Winamp und foobar2000.
Über eine XML-Programmierschnittstelle können externe Programme direkt mit Ampache kommunizieren[5]. Dies ermöglicht Abspielprogrammen eine Integration der erfassten Sammlung in ihre Oberfläche. Programme, die über Plug-ins davon Gebrauch machen, sind z.B. Rhythmbox, Amarok, Banshee und das XBMC Media Center. Durch Anbindung des Coherence Mediaservers kann dies auch jedes UPnP/DLNA-fähige Abspielprogramm oder Endgerät sein. Die XML-Schnittstelle kann auch Ampache-Installationen mehrerer Maschinen miteinander verbinden, um den Katalog einer entfernten Installation in die lokale Datenbank zu integrieren.
Es stehen auf Ampache spezialisierte Abspielprogramme für die mobilen Plattformen Android, Apple iOS, HP webOS, BlackBerry OS und Maemo zur Verfügung, die alle die XML-Schnittstelle nutzen[6]. Das in Python geschriebene Quickplay wurde speziell für Geräte mit limitierten Ressourcen wie z.B. Intel Atom-basierende Computer geschrieben und benötigt GTK [7].
Benutzerverwaltung
Der Zugang zu Ampache ist normalerweise passwortgeschützt. Bei der Installation wird ein Administrator-Konto angelegt. Der Administrator kann dann weitere Konten erzeugen. Benutzer können in verschiedene Berechtigungsstufen klassifiziert werden, vom Gast, der nur Musik hören darf, bis zum Administrator, der die Datenbank erweitern und auch löschen darf. Zur Authentifizierung der Benutzer kann auch LDAP eingesetzt werden.
Ein weiteres Werkzeug zur Kontrolle des Zugangs sind Access Control Lists (auch ACL, deutsch Zugriffssteuerungslisten). Diese schränken den Zugang auf Bereiche von IP-Adressen ein und werden besonders im Zusammenhang mit der XML-Programmierschnittstelle benötigt, die explizit freigeschaltet werden muss. ACL können auch für bestimmte IP-Bereiche eine Transkodierung in niedriger Bitrate erzwingen, um Ampache auch über Verbindungen mit niedriger Datenübertragungsrate nutzen zu können.
Optional unterstützt Ampache auch das Registrieren von Konten durch neue Benutzer. Hierzu stehen Sicherheitsmechanismen wie die Abwehr maschineller Registrierung mittels CAPTCHA sowie die Verifizierung der angegebenen E-Mail-Adresse zur Verfügung.
Siehe auch
Weblinks
Einzelnachweise
- ↑ a b c github.com. (abgerufen am 19. Februar 2016).
- ↑ The ampache Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
- ↑ PHPSO Magazin Artikel: Streaming the Ampache Way ( vom 30. Juni 2007 im Internet Archive)
- ↑ Ampache Wiki: Code Philosophy
- ↑ Ampache Wiki: XML API
- ↑ Ampache Webseite: Interfaces
- ↑ Ampache Wiki: Quickplay