Kirby Podcast Plugin

Kirby Podcast Plugin

Jetzt kannst du dein Lieblings-CMS auch zum Podcasten benutzen. Dieses Kirby-Plugin erzeugt einen RSS-Feed speziell für Podcasts, sucht nach MP3s und deren Dauer und Größe.

Download
Code auf GitHub

Features

  • Erzeugt einen iTunes-fähigen RSS-Feed
  • Unterstützt bereits die neuen iTunes Specs für Seasons, Episoden und mehr
  • Kapitel: Folgen können in Kapitel unterteilt werden
  • Sucht automatisch nach MP3-Dateien
  • Prüft die Dauer und Größe der MP3-Dateien
  • Dauer der MP3-Dateien werden in der Metadatei gespeichert, sobald sie einmal ermittelt wurden
  • Alle wichtigen Felder für Podcasts werden automatisch angelegt
  • Einfaches Download-Tracking über Kirby
  • Erweitertes Tracking mit Piwik und Google Analytics
  • Übersicht der Downloads als Panel-Widget
  • Blueprints für den RSS-Feed und Episoden
  • Simpler HTML5-Audioplayer
  • Kirby CLI Unterstützung
  • Mehrere Podcast-Feeds möglich

Systemvoraussetzungen

  • Kirby 2.4.1
  • PHP 5.6

Installation

Kirby CLI (empfohlen)

Am einfachsten lässt sich das Plugin über das Kirby CLI installieren:

kirby plugin:install mauricerenck/kirby-podcast

Klonen des Git Repositorys

Die Installation ist auch über das Klonen des GitHub Repositorys möglich:

git clone https://github.com/mauricerenck/kirby-podcast site/plugins/podcast

Installation via ZIP-Datei

Du kannst dir die neueste Version des Plugins hier herunterladen: https://github.com/mauricerenck/kirby-podcast/archive/master.zip

Entpacke sie und verschiebe das podcast Verzeichnis in das Kirby-Plugin-Verzeichnis unter site/plugins/

Setup

Wenn du das Panel benutzt, stehen dir nach der Installation bereits zwei neue Blueprints als Vorlage zur Auswahl. Zum Einen die podcastrss Vorlage, die alle benötigten Felder für den Podcast Feed enthält.

Zum Anderen die episode Vorlage, welche die nötigen Felder für einzelne Folgen enthält.

Solltest du das Panel nicht nutzen, findest du zwei Beispiel-Markdown-Dateien im docs Verzeichnis innerhalb des Plugin-Verzeichnis. Dort sind alle Felder enthalten, die du brauchst.

iTunes Kategorien für den Feed

Du findest eine Übersicht aller möglichen iTunes Kategorien innerhalb des docs Verzeichnis. Kategorien brauchen eine bestimmte Struktur, diese sieht wie folgt aus:

HauptKategorie,HauptKategorie/UnterKategorie

Beispiel:

Business,Business/Careers

Die Inhalte vorbereiten

Solltest du das noch nicht getan haben, leg ein neues Verzeichnis für deinen Podcast an. Entweder direkt im Panel oder händisch als Ordner. Den Namen kannst du beliebig wählen. Das Template/Blueprint ist ebenfalls frei wählbar und sollte am besten der Blogübersicht deines Themes entsprechen. Um es einfach zu machen, nennen wir das Verzeichnis an dieser Stelle einfach 1-podcast.

RSS Feed

Innerhalb des neuen 1-podcast Verzeichnis legen wir jetzt ein neues Unterverzeichnis für den Feed an. Ich nenne es feed als Template/Blueprint wähle ich im Panel Podcast RSS Feed, die Markdown-Datei muss podcastrss.md heißen.
Wenn deine Webseite mehrsprachig ist, kannst du die Datei auch entsprechend podcastrss.de.md nennen.

Befülle alle Felder oder schaue in das docs Verzeichnis um dort alle nötigen Felder in deine Markdown-Datei zu kopieren und dann zu anzupassen.

Damit dein Podcast-Feed nicht in der Episodenliste auftaucht, muss dieser unsichbtbar bleiben. Stelle dies im Panel ein. Wenn du das Panel nicht benutzt, entferne ggf. die Nummer vor dem Verzeichnis. Also statt 01-feed sollte das Verzeichnis nur feed heißen.

Episoden

Um eine Episode hinzuzufügen, leg einfach ein neues Verzeichnis innerhalb von 1-podcast an. Genauso als würdest du eine neue Seite oder einen Blogpost anlegen wollen. Wähle im Panel die Vorlage Podcast Episode. Solltest du das Panel nicht benutzen, schaue in das docs Verzeichnis, da findest du eine Beispiel-Markdown-Datei mit allen nötigen Feldern.

Deine Episode erscheint sobald du sie sichtbar schaltest. Du kannst sie aber auch vorplanen. Dazu setzt du das date Feld entsprechend in die Zukunft. Deine Episode wird im Feed erst dann erscheinen, wenn das Datum und die Uhrzeit erreicht sind. Damit diese geplanten Episoden nicht schon auf der Webseite auftauchen, musst du wahrscheinlich eine Änderung am Template vornehmen. Im Template, was die Übersicht der Folgen erzeugt, musst du das Datum filtern:

$page->children()->visible()->flip()->filterBy('date', '<=', time())

Optionen

Um den atomLink-Tag zu überschreiben:

c::set('plugin.podcast.atom.link', 'http://yourdomain.tld/path/to/file.php');

Dies ist z.b. dann nützlich, wenn dein Podcast Feed mal unter einer anderen URL erreichbar war und diese weiterhin in Betrieb bleiben soll. Unter der alten URL kannst du mittels PHP den neuen Feed ausspielen und diesen Parameter setzen.

Erweiterte Statistiken

Das Plugin beinhaltet ein einfaches Download-Tracking. Jeder Donwload erhöht den entsprechenden Zähler. Aber du kannst auch erweitertes Tracking benutzen. Dies ist möglich mittel Piwik (empfohlen) oder Google Analytics (nur zum Teil getestet).

Piwik

Um Piwik zum Tracken zu nutzen, muss du zunächst die URL zu deiner Piwik-Installation und die Piwik-ID der zu trackenden Seiten angeben. Du kannst dann auswählen, wie getrackt werden soll. Du kannst ein Piwik Ziel auslösen, ein Ereignis oder eine Aktion. Um ein Ziel auszulösen, muss dieses vorher in Piwik eingerichtet werden. Mehr darüber erfährst du in der Piwik Dokumentation: https://piwik.org/docs/tracking-goals-web-analytics</https:>

Um das Piwik-Tracking zu aktivieren, reicht es, die URL und ID in deiner config.php zu setzen. Erfasst wird dann allerdings noch nichts. Du musst danach zunächst festlegen, was du tracken willst. Wähle eine oder alle Arten aus.

Option Wert Pflichtfeld
plugin.podcast.piwik.Base Deine Piwik URL ja
plugin.podcast.piwik.Id Piwik ID der Seite ja
plugin.podcast.piwik.Token Dein Piwik Access Token https://piwik.org/faq/general/faq_114</https:> ja
plugin.podcast.piwik.GoalId Trage hier die Ziel-ID ein, um ein Ziel zu erfassen optional
plugin.podcast.piwik.EventName Trage hier den Namen des Download-Events ein, um ihn zu tracken optional
plugin.podcast.piwik.Action (bool) Setze dies auf trueum die Aktion "download" zu erfassen optional

Beispiel:

c::set('plugin.podcast.piwik.Base', 'http://stats.mypiwik.net/');
c::set('plugin.podcast.piwik.Id', 2);
c::set('plugin.podcast.piwik.Token', '1234567890abcdg6');
c::set('plugin.podcast.piwik.GoalId', 1);
c::set('plugin.podcast.piwik.EventName', 'Download');
c::set('plugin.podcast.piwik.Action', true);

Google Analytics

Du kannst auch Google Analytics zum Tracken nutzen. Das Prinzip ähnelt dem von Piwik. Bitte beachte aber, dass diese Funktion noch nicht vollständig getestet wurde. Um das Tracking zu aktivieren, setze einfach deine UA-Id. Gib einen Even-Namen an und entscheide, ob du auch einen Seitenaufruf erfassen möchtest.

Option Wert Pflichtfeld
plugin.podcast.GA.UA UA-1234566 ja
plugin.podcast.GA.pageView (bool) true optional
plugin.podcast.GA.eventName Download optional

Beispiel:

c::set('plugin.podcast.GA.UA', 'UA-1234567890');
c::set('plugin.podcast.GA.pageView', true);
c::set('plugin.podcast.GA.eventName', 'Episode');

Kapitel

Seit Version 2.0 unterstützt dieses Plugin auch Kapitel. Damit ist es möglich deine Podcastfolgen in einzelne Abschnitte zu unterteilen, ohne die mp3-Dateien zu erstückeln. Gib einfach einen Zeitstempel, einen Titel und optional eine URL ein.

Format:

hh:mm:ss

Player

Derzeit wird ein einfaches HTML5-Audio-Tag genutzt. Es enthält nur eingeschränkte Funktionalität. Ich arbeite daran einen umfangreicheren Player zu integrieren. Um den Player in deinem Template zu nutzen, verwende das mitgelieferte Snippet:

<?php snippet('podcastplayer'); ?>

Du kannst auch einen beliebigen anderen Audioplayer nutzen. Schaue dir die Datei snippets/podcastplayer.php innerhalb das Pluginverzeichnis an. Dort kannst du den entsprechenden Code rauskopieren und in deinen Player einbauen. Bitte achte unbedingt darauf auch das Umschreiben der mp3-URL zu verwenden, darüber funktioniert das Tracking.

Trouble?

Die Download-URLs funktionieren nicht!
Eine Serversetups sorgen dafür, dass die Kirby-Routen keine Dateierweiterungen enthalten dürfen. Das ist z.b. der Fall, wenn du den internen PHP-Server verwendest (php -S). Teste die Downloads in dem Fall einfach, indem du das .mp3 aus der URL entfernst. Stelle auf dem Live-System sicher, dass er mit der .mp3-Eweiterung umgehen kann! Wenn du nginx oder apache nutzt, kannst du eine Rewrite-Regel nutzen, um die Erweiterung aus der URL zu entfernen, bevor Kirby versucht sich darum zu kümmern.

Achtung! Sorge auf jeden Fall dafür, dass die .mp3 Erweiterung im Feed auftaucht, da du sonst Probleme mit iTunes bekommen wirst!

Ich weiß nicht, was ich in meine Markdown-Dateien schreiben soll!
Im docs Verzeichnis dieses Plugins findest du Beispiele für die Markdown-Dateien

Ich habe eine episode.md erstellt, aber sie sieht komisch aus!
Jedes Theme hat seine eigene Templatelogik. Vielleicht muss ein Post in deinem Theme post.md oder page.md heißen. Das lässt sich leider über das Plugin nicht abfangen. In dem Fall, schau dir bitte die Markdown-Beispiele im docs Verzeichnis an und kopiere die Podcast-Felder unter die Felder, die dein Theme für einen Beitrag braucht.

0
0
blog comments powered by Disqus