blog.kyri0s.org


Stuff longer than 140 characters I find important to save in the internets.

Podcast Medienserver mit BitTorrent

This article was written for the Videopodcast project Super Hyper Turbo which I’m supporting with some tech related stuff. Therefore it’s written in German.

Podcast-Anbieter haben es nicht leicht. Während die eigentliche Produktion immer preiswerter und schneller wird, bleibt die Distribution ein unverändertes Problem. Besonders wenn die Dateien groß sind, das Budget klein ist und die Popularität sprunghaft wächst.

Während die Zuschauer lediglich ihr iTunes für dem Empfang einer neuen Folge anwerfen, wird es im Hintergrund manchmal schwierig. Was nicht unbedingt bekannt ist, die Episoden (Dateien) liegen nicht bei Apple, sondern müssen vom Betreiber des Podcasts zu Verfügung gestellt werden.

Bei wenigen Abonnenten oder kleinen (Audio-)Mediendateien eignet sich zum Verteilen klassischer Webspace oder ein Dedicated Server.

Bei einem Projekt wie SuperHyperTurbo sind die einzelnen Episoden einige hundert Megabyte groß. Nach der Veröffentlichung einer neuen Episode, wollen sämtliche Abonnenten die Datei natürlich zudem so schnell wie möglich herunterladen. Man gerät dann sehr schnell an die Bandbreitenlimits des jeweiligen Anbieters.

Cacti-1.jpg

Leider gilt für bezahlbare Angebote nach wie vor 100MBit/s als maximale Kapazität der Leitung. Aber mehr Bandbreite würde das Problem auch nur ein wenig verzögern. Irgendwann ist auch die dickste Anbindung erschöpft. Dann hilft nur noch Geduld beim Download.

Nach Veröffentlichung einer neuen Episode sind die Downloadzeiten über iTunes in den ersten Stunden daher eine Katastrophe. Der populärste Podcatcher unterstützt in seiner heutigen Form lediglich HTTP als Übertragungsprotokoll. In anderen Worten benötigt man ein Webserver. Dies schränkt die Möglichkeiten nach einer dauerhaften Lösung erheblich ein. macht eine Lösung der Problematik zum heutigen Software(zu)stand unmöglich.

Für SuperHyperTurbo bieten wir jedoch noch einen alternativen Weg an. Außer HTTP verwenden wir zusätzlich BitTorrent. Dieses Protokoll ist wie gemacht für den beschriebenen Anwendungsfall von “Viele-wollen-gleichzeitig-die-selbe-Datei”.

Im Gegensatz zu HTTP bleibt die Bandbreite für den Einzelnen auch bei hoher Nachfrage stabil!

Doch was benötigt man in der Praxis um einen Podcast über BitTorrent anzubieten?

Nicht viel. Ein BitTorrent-Client wie Transmission oder uTorrent genügt. Mit diesem erstellt man ein Torrent-File. Dieses lädt man auf einen beliebigen Webspace und verweist Interessenten auf die jeweilige - nur wenige kilobytegroße - Datei (URL). Alle anderen Komponenten sind optional, erhöhen jedoch den Komfort. Zunächst ist es ratsam einen separaten weiteren RSS Feed für die Torrent-Dateien zu erstellen. Dadurch können moderne Podcatcher wie Miro den Podcast als solchen behandeln - auch wenn das Protokoll ein anderes als Http ist. Neue Episoden werden dadurch automatisch geladen, was den Zuschauer freut. Hierzu muss lediglich die .torrent Datei als Enclosure dem Feed-Item hinzugefügt werden. Für SuperHyperTurbo erstellen wir diesen Feed (wie viele Andere auch) mit dem Programm Feeder. Die Software übernimmt bei entsprechender Konfiguration auch gleich den Upload der .torrent Datei auf den Webserver.

enclosure_in_feeder.png

Beim Erstellen einer BitTorrent-Datei muss man einen Tracker angeben. Ein Tracker ist die zentrale Stelle bei der sich alle Clients in regelmäßigen Abständen melden um ihre Präsenz anderen Interessenten mitzuteilen. Hier kann man beispielsweise einen der vielen öffentlichen Tracker verwenden. Oder wie wir den Tracker selbst betreiben. Hierzu bietet sich die Software opentracker an. Opentracker ist ein OpenSource Projekt aus dem Umfeld des Chaos Computer Club und als Beerware lizenziert. Für die Installation sollte man Basiswissen zum kompilieren von OpenSource Software mitbringen. Der Vorteil den man sich dadurch erarbeitet ist die weitestgehende Unabhängigkeit von fremden Ressourcen.

Zuletzt möchte man eventuell sicherstellen, dass immer zumindest ein Seeder vorhanden ist. Sprich, ein Client der die Datei zu 100% geladen hat und somit Anderen die fehlenden Teile anbieten kann. Wer im Besitz eines Dedicated Servers ist, kann hierzu zum Beispiel rTorrent verwenden. rTorrent hat ein ncurses ähnliches GUI und läuft mittels screen permanent auf dem Server.

In der Praxis haben sich nach vier SHT-Episoden die Vorteile der BitTorrent-Distribution bereits deutlich gezeigt. Wer Episoden direkt nach dessen Erscheinen sehen möchte, dem sei der BitTorrent-Feed wärmstens empfohlen. Größen von bis zu 800MB sind (je nach eigener Internetanbindung) in nur wenigen Minuten auf den heimischen Rechner geladen.

Für die Zukunft bleibt die leise Hoffnung, dass iTunes und andere Podcatcher BitTorrent als Alternative zur (gemeinsamen) Verteilung ansehen und unterstützen. Zugegeben, es bleibt eine sehr leise Hoffnung. ~Thorsten


Comments
blog comments powered by Disqus