TEILEN
Mittwald: Webhosting. Einfach intelligent.

Video-On-Demand und Linux ist nach wie vor eine ziemlich müde Geschichte. Die meisten, wahrscheinlich so gut wie alle interessanten Anbieter, setzen auf Silverlight inklusive DRM als Browser-Plugin, was es jedoch unter Linux noch immer nicht gibt. Moonlight kann zwar ein paar Silverlight-Browser-Applets auch unter Linux zum Fliegen bringen, doch die benötigten DRM-Features hat Moonlight nicht im Programm. Wer unbedingt Maxdome und Co. unter Linux verwenden möchte, konnte bisher lediglich Silverlight inklusive Browser unter Wine laufen lassen. Doch nun gibt es einen weiteren Ansatz: Pipelight tunnelt Silverlight in einen Linux-Browser, so muss man für Maxdome nicht mehr einen extra Browser starten.

Pipelight funktioniert im Prinzip wie ein Plugin-Proxy: Auf der Linux-Seite arbeitet ein Browser-Plugin, das für den Browser als Silverlight-Plugin fungiert. Auf der via Wine ausgeführten Windows-Seite arbeitet eine pluginloader.exe genannte Datei im Hintergrund, die einen Browser simuliert und die die eigentlichen Silverlight-DLLs lädt.

Ruft nun der Linux-Browser ein Silverlight-Applet auf, „piped“ Pipelight die Aufrufe durch Wine und den Pluginloader zu Silverlight und wieder zurück. Das Ganze funktioniert noch nicht mit einem „Original“-Wine, noch müssen ein paar Patche eingespielt werden. Als Browser werden aktuell Firefox und Chrome unterstützt.

Pipelight unter Ubuntu

Unter Ubuntu lässt sich Pipelight recht einfach installieren. Dazu beendet Ihr am besten euren Browser, fügt die entsprechenden PPAs in eurem System ein und installiert dann Pipelight inklusive aller seiner Abhängigkeiten. Das gepatchte Wine wird zusätzlich zu einer bestehenden Wine-Installation eingespielt, so dass nichts kaputt gehen sollte.

$ sudo apt-add-repository ppa:ehoover/compholio
$ sudo apt-add-repository ppa:mqchael/pipelight
$ sudo apt-get update && sudo apt-get install pipelight

Startet nach der Installation euren Browser, die Skripte sollten Silverlight automatisch aus dem Netz ziehen und einrichten, das könnte ein kleines bisschen dauern. Prüft in Firefox mit „about:plugins“ oder in Chrome via „chrome://plugins“ ob Pipelight auch wirklich als lauffähiges Plugin angezogen wurde.

Pipelight unter Arch Linux

Unter Arch Linux ist die Installation trotz eines AUR-Pakets etwas komplizierter, speziell auf einem 64-Bit System machen ein paar Details gerade das Leben etwas schwer. Prinzipiell installiert ihr Pipelight aus dem AUR, was eine ganze Weile dauert. Achtet am Ende bitte auf die Hinweise, ihr müsst die Pipelight-Konfiguration  in euer Homeverzeichnis kopieren.

$ yaourt -S pipelight-git
$ cp /usr/share/examples/pipelight/pipelight ~/.config/pipelight

Jetzt wird es ein bisschen aufwändiger, da die Konfiguration aktuell buggy ist. Öffnet die kopiere Vorlage ~/.config/pipelight in eurem Lieblingseditor und ändert „pluginLoaderPath“ und den „dllPath“ korrekt ab, am Ende sollten diese Zeilen in der Datei stehen.

...
pluginLoaderPath = /usr/share/pipelight/pluginloader.exe
...
dllPath = c:\Program Files\Microsoft Silverlight\5.1.20513.0\
...

Auf meinem 64-Bit-Arch musste ich noch zudem noch eine Reihe von 32-Bit Bibliotheken installieren. Besonderen Ärger macht da gerade die lib32-libpng12, sie kann zur Zeit nicht aus den Paketquellen installiert werden, weil die Signatur nicht stimmt.

$ sudo pacman -S lib32-libpng12
Löse Abhängigkeiten auf...
Suche nach Zwischenkonflikten...

Pakete (1): lib32-libpng12-1.2.50-2

Gesamtgröße der zu installierenden Pakete: 0,59 MiB
Größendifferenz der Aktualisierung:        0,00 MiB

:: Installation fortsetzen?  [J/n] j
(1/1) Prüfe Schlüssel im Schlüsselring             [######################] 100%
(1/1) Überprüfe Paket-Integrität                   [######################] 100%
Fehler: lib32-libpng12: key "Daniel Wallace <danielwallace@gtmanfred.com>" is disabled
:: Datei /var/cache/pacman/pkg/lib32-libpng12-1.2.50-2-x86_64.pkg.tar.xz ist beschädigt (Ungültiges oder beschädigtes Paket (PGP-Signatur)).

Einziger Ausweg scheint wohl zu sein in der /etc/pacman.conf die Prüfung der Signaturen zu deaktivieren. Dazu müsste die Zeile „SigLevel = Required DatabaseOptional“ vorrübergehend in „SigLevel = Never“ geändert werden. Ideal ist das auf keinen Fall, doch wer unbedingt jetzt Pipelight probieren möchte, muss dies wohl tun. Nach der Installation der Paktete, änder ihr den Eintrag bitte wieder.

$ pacman -S lib32-libpng12 lib32-mpg123 lib32-giflib lib32-lcms lib32-alsa-plugins lib32-libcl

Jetzt könnt Ihr die gepatchte Wine-Version einrichten, Silverlight runterladen und installieren. Das Ganze ist nur einmal nötig, später wird dann Pipelight und damit Silverlight automatisch beim Starten des Browsers eingebunden.

$ WINEPREFIX="$HOME"/.wine-pipelight WINEARCH=win32 /opt/wine-compholio/bin/wineboot
$ wget --user-agent="Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20131011 Firefox/23.0" 'http://www.microsoft.com/getsilverlight/handlers/getsilverlight.ashx' -O Silverlight.exe
$ WINEPREFIX="$HOME"/.wine-pipelight WINEARCH=win32 /opt/wine-compholio/bin/wine Silverlight.exe

Die Ganze Pipielight-Konfiguration steckt im Ordner ~/.wine-pipelight. Sollte Pipelight einmal zicken, könnt ihr das Verzeichnis löschen und dann den obigen Schritt wiederholen. Ich musste eine ganze Weile probieren, bis mein Firefox das Plugin endlich erfolgreich laden konnte.

Windows per User Agent Switcher

Ob das Plugin erfolgreich geladen werden konnte, seht ihr am besten bei Firefox unter „about:plugins“ oder in Chrome via „chrome://plugins“. Taucht dort Silverlight bzw. Pipelight als „enabled“ auf, dann sollte der Ganze Silverlight-Spaß eigentlich funktionieren. Als Test könnt ihr etwa dieses kleine Applet laden lassen oder auch die Microsoft-Demos ansehen.

Der Browser konnte das Pipelight-Plugin erfolgreich laden.
Der Browser konnte das Pipelight-Plugin erfolgreich laden.

Interessant sind nun natürlich Maxdome und andere VoD-Dienste. Schaut ihr mit eurem Pipelight-Browser dort vorbei, steht ihr erst einmal immer noch vor verschlossenen Türen. Ihr müsst den Seiten über einen passenden User-Agent vorgaukeln, es mit einem Windows zu tun zu haben.

Installiert daher in eurem Browser einen User-Agent-Switcher (Chrome, Firefox) als Erweiterung und tragt „Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20131011 Firefox/23.0“ manuell als Agent ein. Vermeidet es einen Internet Explorer vorzutäuschen, in diesem Fall versuchen es nämlich einige Seiten mit ActiveX, was wiederum in eine Sackgasse führen würde.

Maxdome via Pipelight im Linux-Browser.
Maxdome via Pipelight im Linux-Browser.

Ich habe Pipelight unter Arch Linux getestet und konnte Maxdome (entschuldig den Testfilm, nur ein paar Soaps lassen sich bei Maxdome ohne aktives Konto abrufen) direkt in meinem Linux-Firefox zum Fliegen bringen. Komplikationen gibt es dabei eigentlich keine, Playback, Fullscreen, alles funktioniert. Die Prozessorlast hält sich in Grenzen, selbst im Vollbild ist mein Core i3 nur zu einem Drittel ausgelastet. Bei Watchever bleibt das Bild jedoch aktuell noch schwarz.

Wer Interesse an dem Projekt hat, kann sich auf Launchpad einbringen und auch mal im IRC-Channel #pipelight auf Freenode vorbeisehen, dort kann man Fehler melden oder auch mal ein bisschen nach Support fragen. Die Installation von Pipelight ist aktuell noch nicht ganz trivial, aber für den frühen Beta-Stand funktioniert Pipelight derzeit schon erstaunlich gut.

50 KOMMENTARE