Vor inzwischen mehr als 1 Jahr hatte ich die Plattform Podfilter.de ins Leben gerufen, auch um für mich selbst ein Problem zu lösen: Schnell und einfach gute, neue Podcasts zu finden. Dazu macht sich Podfilter die bereits angelegten Listen (bzw. hochgeladene OPML-Dateien) anderer Hörer zu nutze, um so die am meisten gehörten Podcasts von Nutzern mit ähnlichen Listen zu finden
Mittlerweile haben sich mehr als 250 Nutzer entweder per Social-Network angemeldet, oder direkt eine Podcast-Listendatei (OPML) bereitgestellt. Dadurch sind nun etwa 5000 verschiedene Podcasts indiziert worden, die regelmäßig durch Podfilter abgerufen werden. Grund genug für mich, mal wieder ein bisschen am UI und Backend zu feilen.
Dubletten Eliminierung
Ein großes Problem beim indizieren der Podcast-Dateien ist es, doppelte Quellen zusammenzuführen. Oft ist es so, das ein und derselbe Podcast über viele verschiedene URLs verfügt, sei es:
- Varianten in mp3, opus, m4a oder torrent (Bitlove),
- Serverumzug eines Podcasts,
- URLs sind als Kurz-URLs (bit.ly et al.) hinterlegt,
- Server ist per HTTP und HTTPS erreichbar, bzw. trailing slash ist möglich,
- Feedburner-Proxy-URLs oder
- von anderen URLs schlicht gespiegelt wird (Yahoo Pipes, Internet Archive, Komplett-Feeds).
Deshalb habe ich einiges an Arbeit aufgewendet, diese Dubletten zu vereinheitlichen. Das Ganze funktioniert halb-automatisch: Quellen mit jeweils z.B. 20 exakt gleichen Episoden-Titeln sind Kandidaten für eine Zusammenführung. Ganz automatisch geht das nicht, da es oft Kategorien-Podcasts gibt, wie z.B. beim Deutschlandfunk, wo gleiche Beiträge sowohl im Podcast “Forschung aktuell”, als auch bei “Wissenschaft im Brennpunkt” auftauchen.
Automatischer Import von Bitlove und Hoersuppe
Einmal die Woche werden die beiden Podcast-Portale bitlove.org und hoersuppe.de auf neue Podcasts überprüft, neue Podcasts importiert bzw. mit bestehenden zusammengeführt. Damit sollten auch neue Podcasts recht schnell indiziert werden.
Zukunft
Anregungen zur Weiterentwicklung nehme ich gerne auf Github entgegen. So ist deswegen z.B. das Abo neuer Podcasts mittels Podlove-Subscribe-Button wesentlich schöner und insbesondere auf Smartphones einfacher.
Leider ist es meist sehr mühselig in den gängigen Podcast-Apps OPML-Dateien rauszupopeln und wieder einzufügen. Da kann auch Podfilter nicht viel helfen. Hinter diesen Apps stehen gut gefüllte Podcast-Verzeichnisse (iTunes, Instacast, Pocketcasts), die aber einerseits Datensilos sind – es gibt keine Möglichkeit für Nicht-Nutzer Podcast-Empfehlungen zu bekommen – und andererseits die Empfehlungen nicht immer klar oder relevant sind. Außerdem sind die angefallenen Daten dann nicht mehr für andere nutzbar, da keine der Services eine API oder einen Export besitzt, um z.B. Projekte wie diese Netzwerkstudie zu realisieren. Für diese Anfrage hatte ich dann auch mit einer API begonnen – Falls bestimmte Daten interessant sind, dann kann ich sicher den einen oder anderen API-Aufruf noch nachimplementieren ;).
Technisches / Mediadaten
(Stand Juni 2015)
- Indizierte Podcasts: 6196 eindeutige mit insgesamt 9995 Quellen. 1.151.420 geladene Episoden/Items Davon 4658 aktive (erreichbar & neue Episoden), 3069 inaktive (erreichbar aber keine neuen Episoden) und 1699 sind offline.
- Besucher 06/2014 bis 06/2015: 26k Besuche, 49k Seitenansichten (Piwik)
- Framework/Sprache: Ruby on Rails
- Webserver: Nginx mit Passenger Webserver
- Background-Worker: Sidekiq (ca 11 mio verarbeitete Jobs von Juni 2014 bis Juni 2015)
- Datenbank: PostgreSQL (Datenbank-Größe 1666 MB)