Kirby 3 Podcast-Plugin

Nach einer Entwicklungszeit von zwei Jahren, ist diese Woche Kirby 3 erschienen. Kirby ist ein CMS ähnlich wie WordPress. Es hat einige Besonderheiten und tolle neue Funktionen in Version 3.

Mit Kirby 3 ändert sich Vieles unter der Haube, das betrifft insbesondere das Panel (quasi Kirbys wp-admin) und sämtliche Plugins. Kirby 2 Plugins werden nicht mehr mit Kirby 3 funktionieren. Deshalb sollte man vor einem Update also auf jeden Fall prüfen, ob genutzte Plugins bereits portiert wurden.

Auf mein Podcast Plugin trifft das noch nicht zu. Das heißt, noch nicht ganz. Ich sitze noch an der Portierung des Plugins. Ich werde in absehbarer Zeit eine Beta-Version veröffentlichen können, noch hakt es aber an der einen oder anderen Stelle. Ein bisschen Geduld ist also gefragt.

Das neue Plugin wird sich dann aber dafür noch besser in das Kirby-Panel integrieren. Ich habe mich außerdem dazu entschlossen, die Version für Kirby 2 parallel zur Version für Kirby 3 online zu lassen. Für das K2-Podcast-Plugin wird es noch ein etwas größeres Update geben, dann nur noch Fixes.

Zunächst werde ich die Kirby 3 Version mit Basis-Features veröffentlichen und dann weiter nachrüsten. An folgenden Funktionen arbeite ich gerade (neue Funktionen sind fett markiert):

  • Panel Blueprint Section für Episodendaten (zum Einbinden in das eigene Beitrags-Blueprint)
  • Panel Page Blueprint für erweiterten RSS-Feed (inkl. aller neuer iTunes Spezifikationen)
  • Tracking der Downloads via Matomo
  • Tracking der Downloads via Kirby im Episoden-Markdown
  • Tracking der Downloads via Kirby in MySQL
  • Neue, schlankere ID3-Lib
  • ID3 Datenerkennung beim Upload (nicht wie bisher, beim ersten Aufruf des Beitrags/Feeds)
  • Snippet für einen einfachen HTML5-Player
  • Snippet für den erweiterten Podlove Player

Für alle, die auf das MySQL-Tracking umstellen möchten, versuche ich noch ein Konvertierungs-Script zu schreiben.

Warum Tracking mit MySQL

Ich weiß, dass es ein bisschen seltsam erscheint, ein Flat-File-CMS zu benutzen und dann ein Plugin mit MySQL-Anbindung anzubieten. Das hat aber einen einfachen Grund: Stabilität.

In der Vergangenheit hatte ich immer wieder das Problem, dass meine Markdown-Dateien kaputt waren. Und zwar immer dann, wenn viele User gleichzeitig Folgen runter geladen oder den Feed abgefragt haben.

Das Tracken in eine Datei ist hier problematisch. Es kann immer nur ein Prozess in die Datei schreiben. Wenn wenige Downloads gleichzeitig stattfinden, ist das kein Problem. Sind es aber viele Downloads parallel, kann es auch passieren, dass Prozesse parallel Versuchen die Statistik in der Datei zu aktualisieren, also in die Datei zu schreiben. Im schlimmsten Fall macht das die Datei kaputt und der Beitrag ist offline.

Mit MySQL funktioniert das besser. Parallele Zugriffe sind möglich, das Schlimmste was passieren kann, ist eine Überlastung des MySQL-Servers, dazu braucht man aber wirklich schon sehr viele parallele Downloads.

Da bei meinem Podcast immer wieder Probleme mit dem RSS-Feed gab, aus besagtem Grund, wird es nun diese MySQL-Statistiken sowohl für Kirby 2 als auch Kirby 3 geben.

Ich habe das Ganze so gebaut, dass es später auch ohne Probleme möglich sein wird, andere Speichermöglichkeiten anzubinden, SQLite z.b.

Wenn du noch Idee und/oder Wünsche hast, dann lass es mich drüben bei GitHub in den Issues wissen.