qrios

IT ist kurios!

Bitlove-Proxy for the rest of us

5 Kommentare

[Update] Der Bitlove-Proxy läuft inzwischen und steht zur freien Verfügung unter: “Bitlove-Proxy läuft” [/Update]

tl;dr Der Bitlove-Proxy ist ein Aggregator für das automatische Laden neuer Podcast-Folgen über Torrent auf der Basis von Bitlove und Prittorrent. Momentan nicht mehr als ein proof of concept. Jeder fühle sich frei, die Idee zu klauen und eine bessere Implementierung zu machen.

Das Medienimperium metaebene schickt sich an, die Podcast-Distribution zu revolutionieren. Statt einfacher Downloads sollen in Zukunft die Nutzer selbst den Vertrieb übernehmen. Peer-to-Peer auf der Basis von Bittorrent soll das dringende Problem der tröpfelnden Bits der neuesten NSFW-Folge lösen. Dazu haben sich @timpritlove und @astro1138 zusammengetan, Prittorrent entwickelt und Bitlove.org gelauncht. Bei soviel Liebe konnte ich nicht anders, als mitzumachen.

Auf Bitlove haben Podcaster die Möglichkeit, ihre Inhalte als Torrent-Dateien anzubieten. Viele sind dem Vorbild der deutschen Podcast-Ikone Tim Pritlove gefolgt und haben ihre Feeds dort eingetragen. Die Akzeptanz der Podcaster ist offensichtlich kein Problem. Die Akzeptanz der Nutzerschaft lässt nach meiner Einschätzung allerdings noch zu wünschen übrig. Selbst solche Strassenfeger wie Not Safe For Work haben im Peek momentan nur selten über 100 Torrent-Downloads. Die Zahl der Torrent-Seeder überschreitet derzeit nur selten die zehn. Für ein neues Projekt sicher nicht schlecht. Da ist aber sicher mehr drin, denn unter der Hand sprechen Reichweitenmesser wie die agof und die IVW schon davon, dass Podcasts das Broadcastingradio längst hinter sich gelassen haben. (Nein, nicht wirklich ;)

Um dem Projekt mehr Schub zu geben, entwickle ich grade einen Bitlove-Proxy. Zur Erklärung, was der tun soll, hilft sicher eine Beschreibung, wie ich und meine Partnerin Podcasts konsumieren: In unserem Haushalt gibt es eine recht hohe Dichte an Apple-Geräten. Ich selbst höre Podcasts auf den täglichen Radwegen von und zur Arbeit und wenn wir mit dem Auto auf Reisen sind. Meine Partnerin hat einen täglichen Arbeitsweg von zwei mal einer Stunde, entweder mit der Berliner S-Bahn oder wenn die wiedermal nicht fährt mit dem Auto. In der Woche hören wir manchmal bis zu 20 Stunden Podcast.

Ein ernstes logistisches Problem stellt sich dabei recht schnell ein. Auf welchem der neun Rechner/Telefone/Tablets muss eine Folge vorrätig sein? Immerhin reden wir über permanent mindestens zehn Podcast-Feeds mit teilweise über hundert Folgen (CRE aus der metaebene) und manchmal vier Stunden Dauer (mobilemacs ebenfalls aus der metaebene). Und wöchentlich kommt ein neuer Podcast hinzu, in den wir demnächst mal reinhören wollen (z.B. omega tau mit spannenden Wissenschaftsthemen).

Die einfache Lösung besteht in unserem Alltag darin, bei Bedarf auf die WebSite seiner Wahl zu gehen und das mp3 direkt im Browser abzuspielen. Ein ebenso unpraktisches, wie unsoziales Verfahren. Unpraktisch, weil die Browserexperience recht bescheiden ist. Unsozial, weil man damit die Hosting-Rechnung des Podcast-Anbieters belastet.

Hier kommt jetzt wieder Bitlove ins Spiel. Was, wenn nicht meine ganzen iDevices dutzende Kopien der MP3s vorrätig halten (und damit natürlich wiederum die Hosting-Rechnung …) sondern mein eigener Server – auf dem meine Blogs laufen – die Arbeit übernimmt und sich auch noch überaus sozial an der Distribution der Podcasts beteiligt? Ein Bitlove-Proxy also.

Diesem Server gebe ich einfach die Feed-Adressen meiner gewünschten Podcasts. Bei der Einrichtung eines neuen Feeds und in regelmässigen Abständen fragt der Server dann bei Bitlove nach, ob es die jeweiligen Folgen als Torrent-Datei gibt. Wenn ja, lädt er diese runter und startet automatisch den Torrent-Leech.

Bin ich nun unterwegs und möchte einen Podcast hören lade ich einfach eine simple Webseite meines Servers und kann die gewünschte Folge als MP3 von meinem eigenen Server hören.

Tatsächlich kann ich in Zukunft auch iTunes selbst auf meinen eigenen Server schicken, da dieser mir den Feed so umbauen kann, dass er Folgen nur dann einträgt, wenn diese bereits komplett runtergeladen sind. Da die Seeder bei Bitlove offensichtlich über gute Anbindungen verfügen, dauert dies im Allgemeinen nur wenige Minuten.

Technisch ist meine Implementierung eher ein Hasardeurstück: Ein Apache routet die Anfragen an einen internen node.js-Server durch. Dieser dient hauptsächlich dazu, per Komandozeile einen Saxon-Prozessor unter Java aufzurufen, der die Feeds mittels XSLT in eine Webseite umwandelt. Das XSLT ruft beim Transformieren wiederum den lokalen node-Server auf und führt dadurch dazu, dass bei Bitlove vorhandene Torrent-Dateien lokal gespeichert werden und an den XSLT-Prozessor meldet, welche MP3s tatsächlich verfügbar sind. Derzeit sind keinerlei Personalisierungsfeatures eingebaut. Da ich es selbst eigentlich nur als proof of concept begreife, bin ich mir auch nicht ganz sicher, ob ich den Code auf Github stellen sollte.

Vielen Dank bei der Gelegenheit an Astro von Bitlove, der so nett war, die Unterstützung des HEAD-Protokolls mal eben so zu implementieren und neben Bitlove noch so coole Sachen, wie node-expat macht. Ein Eventgesteuerter XML-Parser für node.js. Ich begrüße das!


Written by qrios

May 26th, 2012 at 4:06 pm

Posted in code

5 Responses to 'Bitlove-Proxy for the rest of us'

Subscribe to comments with RSS or TrackBack to 'Bitlove-Proxy for the rest of us'.

  1. Thumbs up!

    Da bei dir der Proxy auf einem Server mit statischer Adresse (und nicht zuhaus) läuft, würde Echtzeitbenachrichtigung mit PubsubHubbub viel Spaß machen. Das ist beim Podcasting trotz heftiger Nutzung von Feeds noch gar nicht verbreitet.

    Astro

    26 May 12 at 11:23 pm

  2. @Astro: Das wäre eine ausgezeichnete Idee. Würde sogar vorschlagen, dass der Proxy einen Ping auf Bitlove absendet bei fertigem Download und/oder abspielen. Dann würde dem (berechtigten) Wissensdrang der Podcaster über ihre Reichweite Genüge getan.

    qrios

    27 May 12 at 11:44 am

  3. [...] Sehr schön: qrios: Bitlove-Proxy for the rest of us [...]

  4. [...] etwas Verspätung wg. anderer Projekte ist der Bitlove-Proxy fertig. Unter “Bitlove-Proxy for the rest of us” ist ausführlich erklärt worum es geht und was der Proxy tun soll. Im Kern geht es darum, [...]

  5. [...] Seeding; BEP19 WebSeed – HTTP/FTP Seeding (GetRight style); Flattr Integration; Bitlove Proxy. Tweet Standard Podcast [ 1:16:10 ] Download Enhanced Podcast [ 1:16:10 ] Download Bitlove ist [...]

Leave a Reply