Tim Tepaße: Tims minimales Podcasting-Tutorial

Beitrag lesen

Hallo,

Diese enthält eine Page, auf der eine Anzahl Songs im mp3-Format stehen (Seite "Musik"). Ist es möglich, auf dieser Page publizierte Songs auf einfache Art zu podcasten?

Im Prinzip bedeutet Podcasting nichts anderes, als im RSS- oder Atom-Feed die Musikdateien zu verlinken. Und sowohl RSS 2.0 als auch Atom 1.0 bieten dafür Elemente an.

In RSS 2.0 ist es das Element <enclosure>:

~~~xml <rss version="2.0">
  <channel>

<title>Thomas' fluffige Musik</title>
  <link>http://www.thomasweibel.ch/</link>
  <description>Ich mache Musik</description>

<item>
    <title>Röhrendes Klingen</title>
    <description>Dialog von Didgeridoo und Triangel</description>
    <guid>tag:tepasse.org,2007-01-01:selfhtml/podcasting/1</guid>
    <enclosure url="http://example.org/musik-1.mp3" length="123456" type="audio/mpeg"/>
  </item>

<item>
    <title>Stille</title>
    <description>John Cages 4'33" interpretiert von Maultrommel</description>
    <guid>tag:tepasse.org,2007-01-01:selfhtml/podcasting/1</guid>
    <enclosure url="http://example.org/musik-2.mp3" length="654321" type="audio/mpeg"/>
  </item>

</channel>
  </rss>

  
In [Atom 1.0](http://atomenabled.org/developers/syndication/) ist es das dort viel benutzte Element <atom:link> mit dem Linktyp "enclosure":  
  
  ~~~xml
<feed xmlns="http://www.w3.org/2005/Atom">  
  
  <title>Thomas' fluffige Musik</title>  
  <link href="http://www.thomasweibel.ch/"/>  
  <updated>2003-12-13T17:00+01:00</updated>  
  <id>tag:tepasse.org,2007-01-05:selfhtml/podcasting></id>  
  
  <entry>  
    <title>Röhrendes Klingen</title>  
    <summary>Dialog von Didgeridoo und Triangel</summary>  
    <updated>2007-01-01T17:00+01:00</updated>  
    <id>tag:tepasse.org,2007-01-01:selfhtml/podcasting/1</id>  
    <link rel="enclosure" href="http://example.org/musik-1.mp3" length="123456" type="audio/mpeg"/>  
  </entry>  
  
  <entry>  
    <title>Stille</title>  
    <summary>John Cages 4'33" interpretiert von Maultrommel</summary>  
    <id>tag:tepasse.org,2007-01-01:selfhtml/podcasting/2</id>  
    <link rel="enclosure" href="http://example.org/musik-2.mp3" length="654321" type="audio/mpeg"/>  
  </entry>  
  
  </feed>

In beiden Fällen ist das Verlinken eines Musikstückes jeweils nur ein Element; beide Elemente sind sich sehr ähnlich und eigentlich selbst erklärend. Das Attribut length ist die Größe der Datei in Bytes, das Attribut type gibt einen MIME Media Typ für die verlinkte Ressource an.

Du siehst also, im minimalsten Fall ist es möglich, so etwas per Hand zu tippen (wie ich gerade getan habe) und so etwas fortdauernd zu pflegen (hab ich auch schon mal gemacht, wenn auch „nur“ einen Feed). Es ist ja nur XML-Syntax, die genaue Syntax kann man in den verlinkten Spezifikationen lesen. Auf Dauer ist ein Skript aber bequemer. Es gibt auch Desktop-Software zum Zusammenklicken von Feed.

Für welches Format solltest Du Dich entscheiden? Atom ist das leicht sauberere Feed-Format. Manche meinen RSS sei einfacher, ich bin da nicht überzeugt von. Atom erlaubt einem mehrere Enclosures pro Eintrag, RSS 2.0 macht für eine etwaige Begrenzung keine Angaben, deswegen kommt es zu Wildwuchs und man kann in der Realität nur ein Enclosure einsetzen. RSS ist dafür leider noch sehr viel bekannter und jeder assoziert es mit Feeds.

Auch ist das Datenmodell von Apples iTunes Podcasting Erweiterung einen Hauch mehr an RSS angepasst. iTunes soll zwar Atom können, RSS ist dabei aber wahrscheinlich die sichere Wahl.

Da wir schon dabei sind: Wofür ist die iTunes-Erweiterung gut? Oftmals will man mehr Angaben zu dem Musikstück angeben, Länge in Zeit anstatt in Bytes, Stichwörter, Kategorie, Bild. Apple hat seine Erweiterung im wesentlichen so definiert, dass der Podcast gut in der Benutzeroberfläche von iTunes dargestellt werden kann. Dadurch dass Apple als erster großer Hersteller sich darum kümmerte, ist Apples Format so ziemlich das bekannteste und beliebteste geworden, auch andere Feedreaer/Podcatcher nutzen es. Ein anderes ist Yahoos Media RSS.

Apple hat eine recht übersichtliche Anleitung dafür veröffentlich, was man tun sollte, damit der Podcast im iTunes Podcast Verzeichnis auftaucht und dargestellt wird. Im wesentlichen läuft es darauf hinaus, den Feed mit den entsprechenden Elementen aufzubohren und sich dort anzumelden, eventuell kann man auch mit XML-RPC Änderungen sofort mitteilen; ansonsten fetcht iTunes den Feed nur einmal pro Tag.

Die einzufügenden Elemente sind in obiger Spec dokumentiert, einige davon gehören zum Vokabular von RSS 2.0, einige davon gehören zu iTunes, erkennbar am iTunes Präfix. Manche Elemente sind Kindelemente von <channel>, beziehen sich also auf den Feed als Ganzes. Andere Elemente sind Kindelemente von <item>, beziehen sich also auf den jeweiligen Eintrag im Feed. Das kann dann ungefähr so aussehen:

~~~xml <rss version="2.0"
       xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
  <channel>

<title>Thomas' fluffige Musik</title>
  <link>http://www.thomasweibel.ch/</link>
  <description>Ich mache Musik</description>
  <itunes:category text="Music"/>
  <itunes:category text="Arts">
    <itunes:category text="Performing Arts"/>
  </itunes:category>
  <itunes:image href="http://example.org/bild.jpg"/>
  itunes:keywordskomisches zeug</itunes:keyword>

<item>
    <title>Röhrendes Klingen</title>
    <description>Dialog von Didgeridoo und Triangel</description>
    <guid>tag:tepasse.org,2007-01-01:selfhtml/podcasting/1</guid>
    <enclosure url="http://example.org/musik-1.mp3" length="123456" type="audio/mpeg"/>
    itunes:duration05:10</itunes:duration>
  </item>

<item>
    <title>Stille</title>
    <description>John Cages 4'33" interpretiert von Maultrommel</description>
    <guid>tag:tepasse.org,2007-01-01:selfhtml/podcasting/1</guid>
    <enclosure url="http://example.org/musik-2.mp3" length="654321" type="audio/mpeg"/>
    itunes:duration04:33</itunes:duration>
  </item>

</channel>
  </rss>

  
etc.  
  
Kleine Warnung: Früher hatte iTunes eine mangelhafte XML-Implementierung, die ins Stolpern kam, wenn der iTunes-Namensraum an ein anderes Präfix als "itunes" gebunden war. Ich weiss nicht, ob das noch heute so ist, aber es schadet nicht, genau dieses Präfix zu verwenden. Und hinterher den fertigen Feed wie immer im [Feedvalidator](http://feedvalidator.org/) zu testen.  
  
  
Bei Ausnutzen von allen Möglichkeiten von RSS, der iTunes Erweiterung und von eventuell der Media RSS Erweiterung (man kann ohne Probleme beides verwenden) kommt da durchaus einiges zusammen, was man händisch tippen muss. Wenn sich der Podcast-Feed nur sehr selten ändert, ist das noch vertretbar. Bei öfteren Änderungen ist das aber eklig und kann die Motivation zur Pflege zerstören. Insofern wäre ein Skript zur automatischen Erstellung vielleicht doch sehr viel praktischer.  
  
  
Wenn Du PHP zur Verfügung hast, solltest Du Dir ruhig mal die Software [Loudblog](http://loudblog.de/) von Gerrit van Aaken anschauen, ein minimales CMS, das seine Stärken im Podcasting hat, inklusive automatischer Erstellung von Podcast-Feeds und diverser anderer Nettigkeit. Das nimmt einen durchaus Arbeit ab. Denn schließlich interessierst Du Dich für die Musik, nicht für XML.  
  
  
Tim