Frei empfangbare Programme im VLC Player zu gucken ist für mich die einzig genießbare Form des Guckens. Gerade im Browser gefangen in einem Tab für Fernsehen zu sein ist für mich nicht akzeptabel. Für meinen Lieblingssender Arte habe ich bereits seit längerem ein kleines Script, doch heute konnte ich auch das Programm der BBC zu meinen Scripten hinzufügen. Wie es am Ende funktioniert erkläre ich euch gleich. Zunächst werde ich auflisten, was wir im Verlauf der Anleitung dafür brauchen werden:
- Proxy im Vereinten Königreich
- PHP
- AdobeHDS von K-S-V
Wer jemals versucht hat den Livestream mit konventionellen Mitteln wie rtmpdumphelper einzufangen wird wissen, dass da nichts zu machen ist, da die BBC nicht via rtmp streamen. Ich nahm immer an, dass sie DRM-Maßnahmen ergriffen haben und deshalb keine funktionierende Anleitung auffindbar ist. Allerdings gibt es sehr wohl einen Weg. Das Github Wiki von K-S-V gibt Aufschluss. K-S-V hat das PHP-Script AdobeHDS entwickelt, welches zum Beispiel auch die f4m Streams der BBC herunterladen kann. Es gibt auch eine Play-Option für den Live Modus, indem man das gerade gedownloadete live zum VLC durchschleift. Jedoch brauchen wir zum Ausführen auf dem Computer PHP. Hierfür besorgen wir die korrekte Version von PHP von dieser Webseite. Es spielt keine große Rolle für diese Verwendung, ob ihr „Thread Safe“ oder nicht „Thread Safe“ nehmt. Entpackt den Inhalt der zip nach C:\php\ (den Ordner sollte es noch nicht geben, erstellt ihn einfach neu. Dann ist es der Einfachkeit halber ganz gut php zu den Umgebungsvariablen hinzuzufügen. Das geht so: Start -> Computer -> Systemeigenschaften -> Erweiterte Systemeigenschaften -> Umgebungsvariablen
Bei Path dann Bearbeiten und C:\php hinzufügen
Gut, nun sollte php funktionieren. Dann können wir uns die Scripte von K-S-V herunterladen (Scripts-master.zip) und entpacken. Wir brauchen nur die AdobeHDS.php. Speichert sie in einem Pfad eurer Wahl. Bevor es möglich ist einen BBC Stream damit zu empfangen, brauchen wir einen UK Proxy. Ich empfehle für diesen Zweck Lowendspirit, wo man für 3€/Jahr einen virtuellen Server bekommt. Ich persönlich stelle eine Verbindung via Putty her und mache einen Port vom Typ Dynamic auf. Ich habe für dieses Beispiel im Weiteren also einen Socks5 Proxy auf Port 8091 am Laufen. Was genau ihr benutzt müsst ihr selbst gucken.
Und jetzt kommt schon der spannende Teil:
php C:\php\AdobeHDS.php --fproxy --proxy socks5://127.0.0.1:8091 --manifest "http://www.bbc.co.uk/mediaselector/playlists/hds/pc/ak/bbc1.f4m" --delete
Dieser Befehl speichert das laufende Programm auf die Festplatte in den Pfad, in den wir uns gerade befinden. Die Manifest-URL kann man mit einem Netzwerk-Sniffer oder mit dem Firefox Addon von K-S-V herausfinden.
Um den Stream nun endlich im VLC zu gucken speichert man folgenden Befehl als .bat Datei ab:
php C:\php\AdobeHDS.php --fproxy --proxy socks5://127.0.0.1:8091 --manifest "http://www.bbc.co.uk/mediaselector/playlists/hds/pc/ak/bbc1.f4m" --play | "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --file-caching=8000 -
Anfangs wird der Stream noch etwas ruckeln, weil der Caching-Parameter leider nicht so wirklich greift, aber es wird nach einigen Sekunden sehr stabil.
Manifest-URLs:
BBC1: http://www.bbc.co.uk/mediaselector/playlists/hds/pc/ak/bbc1.f4m
BBC2: http://www.bbc.co.uk/mediaselector/playlists/hds/pc/llnw/bbc2.f4m
BBC3: http://www.bbc.co.uk/mediaselector/playlists/hds/pc/ak/bbc3.f4m
Das llnw bzw ak kann getauscht werden. Es entscheidet nur über welches CDN man den Stream geliefert bekommt, Akamai oder Limelight Networks.