WAV-Dateien direkt in Seahub abspielen

Seahub, die Weboberfläche von Seafile bietet für diverse Dateiformate eine Vorschau im Browser an. So gibt es eine Bildvorschau für verschiedene Grafikformate und auch Videos und Audio-Dateien können direkt im Browser abgespielt werden. Doch während .mp3, .ogg, .mp4, .ogg, .flv, .wmv und noch viele weitere Formate abgespielt werden, funktioniert dies erstaunlicherweise nicht mit .wav-Dateien. Der folgende Artikel soll zeigen, wie man Seafile auch dazu bringt .wav-Dateien direkt in Seahub abzuspielen.

Neues Webfrontend mit Seafile 7 erfordert ein neues Vorgehen

Die folgende Anleitung bezieht sich nur auf Seafile 7 und nicht auf Seafile 6, weil sich mit Version 7 das Frontend geändert hat und nun auf React basiert und nicht mehr auf Django. Bei Seafile 7 wird das gesamte Frontend mit Hilfe von einzelnen Javascript Dateien erzeugt, was die Bearbeitung etwas fummelig macht. Gleichzeitig sollte man dazu sagen, dass die folgenden Änderungen kein Update überstehen, da die Änderungen direkt in den Javascript Dateien vorgenommen werden und diese mit bei einem Update von der neuen Seafile Server Version überschrieben werden.

Unterstützung für das Dateiformat .wav

Grundsätzlich müssen wir nur an zwei Dateien Änderungen vornehmen. Die folgenden Dateinamen beziehen sich auf die Seafile Professional Version 7.0.9. In anderen Seafile Versionen sind die Dateinamen mit großer Wahrscheinlichkeit anders:

__init__.py

In dieser Datei muss Seafile mitgeteilt werden, dass ab sofort auch .wav-Dateien eine Dateivorschau besitzen. Die Änderung ist minimal. Man sucht einfach nach “mp3” und fügt “wav” in die Liste der Dateiformate hinzu.

AUDIO: ('mp3', 'oga', 'ogg', 'wav'),

app.faa7ba429394.js

Wie gesagt, wird die app.js in jeder Seafile Version einen anderen Dateinamen haben. Man findet die Datei aber immer im Ordner seahub/media/assets/frontend/js. Am Besten legt man sich vor der Bearbeitung eine Kopie der Datei an um jederzeit zur Ursprungsversion zurückkehren zu können. Die gewünschte Änderung ist minimal. Es soll lediglich erreicht werden, dass in der Dateivorschau von Seafile eine .wav-Datei mit einem Musik-Icon versehen wird.

Das Komplizierte an der Bearbeitung dieser Datei ist, dass die der gesamte Inhalt in einer Zeile steht. Doch mit Hilfe der Suchfunktion kann man nach den entsprechenden Stellen suchen und einen Zeilenumbruch einfügen. So wird die Bearbeitung dann doch wieder etwas handlicher. Es genügt ein der Dateiendung .wav das Icon music.png zuzuweisen.

webpackJsonp([2],{10:function(e,t,n){"use strict";function r(){return o.default.....
mp3:"music.png",wav:"music.png",
oga:"music.png",ogg:"music.png",flac:"music.png",aac:"music.png",....

fileView.98a5e61c18f9.js

Auch dieser Dateiname wird bei anderen Seafile Versionen anders sein. An dieser Datei müssen wir mehrere Anpassungen vornehmen, da Seafile mitgeteilt werden muss, wie es mit der .wav-Dateiendung umzugehen hat. Auch hier empfiehlt es sich wieder nach den richtigen Stellen mit Hilfe der Suche zu suchen und dann Zeilenumbrüche einzufügen.

webpackJsonp([5],{10:function(e,t,n){"use strict";function i(){return a.default...
mp3:"audio/mpeg",wav:"audio/wav",

aac:"audio/aac",oga:"audio/ogg",m3u8:"application/x-mpegURL"},mi=function(e){void ...
"audio/mpegurl","audio/x-wav",

"audio/x-mpegurl","application/x-mpegurl","video/x-mpegurl","video/mpegurl","application...
mp3:"music.png",wav:"music.png",

oga:"music.png",ogg:"music.png",flac:"music.png",aac:"music.png",ac3:"music.png",...

Neustarten und Cache leeren

.wav-Dateien in Seahub abspielen

Anschließend genügt es den Seafile Server neu zu starten und den Browser-Cache zu leeren. Es müssen die .js Dateien neu geladen werden, da man sonst die ursprünglichen Versionen aus dem Cache präsentiert kriegt. Sollte man alle Änderungen richtig gemacht haben, wird nun Seafile zukünftig .wav-Dateien im Browser abspielen.