twb: Podcasting bei handgeschriebenen Seiten?

Halle - und ein gutes neues Jahr allen hier!

Meine Frage: Gegeben sei eine kleine, von Hand geschriebene Seite wie meine persönliche HP www.thomasweibel.ch. 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? Gibt's irgendwo praktische Anleitungen, das (namentlich für Podcatcher wie iTunes) nötige XML jeweils beim Upload eines neuen Songs von Hand zu schreiben, so wie ich das mit dem übrigen HTML tue?

Herzlich, und mit Dank! twb

  1. Moin!

    Meine Frage: Gegeben sei eine kleine, von Hand geschriebene Seite wie meine persönliche HP www.thomasweibel.ch. 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? Gibt's irgendwo praktische Anleitungen, das (namentlich für Podcatcher wie iTunes) nötige XML jeweils beim Upload eines neuen Songs von Hand zu schreiben, so wie ich das mit dem übrigen HTML tue?

    Die Hardcore-Methode wäre, sich von irgendwoher einen existierenden Podcast als XML-Quelltext zu besorgen und einfach darin enthaltene Inhalte passend umzuarbeiten. :) Beispielsweise gibt beim CCC diverse Podcasts.

    Alternativ kannst du natürlich auch nach einer Spezifikation googlen, die die passenden XML-Elemente für Podcasts nennt. Ich würde erwarten, dass Apple für iTunes da was präsent hat (ein testweise angeschauter Podcast-Stream enthielt jedenfalls recht viele Elemente aus dem Namensraum "itunes").

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Alternativ kannst du natürlich auch nach einer Spezifikation googlen, die die passenden XML-Elemente für Podcasts nennt.

      Genau das mach' ich, lieber Sven. Die wird nämlich von iTunes geliefert, in ausführlicher Form und mit einem Beispielfeed. Nämlich hier:

      http://www.apple.com/de/itunes/store/podcaststechspecs.html

      Herzlich, twb

    2. Hallo Sven,

      Die Hardcore-Methode wäre, sich von irgendwoher einen existierenden Podcast als XML-Quelltext zu besorgen und einfach darin enthaltene Inhalte passend umzuarbeiten. :)

      Arghs. Bitte, bitte nicht. View Source hat zwar sehr vielen HTML beigebracht, aber XML-Formate wie die diversen RSS-Dialekte und Atom sind da sehr viel weniger fehlertolerant, einfach weil sie nicht das gemischte Dokumentmodell haben, sondern mehr die Abbildung einer Datenstruktur sind. Zusammen mit den vielen Merkwürdigkeiten der RSS-Welt kann das mehr Fragen aufwerfen, als es beantwortet.

      Beispielsweise gibt beim CCC diverse Podcasts.

      Hier zum Beispiel. Sehr merkwürdige Feeds. Setzen unnötigerweise zusätzlich Dublin Core Vokabular ein, das nichts anderes tut als die auch vorhandene Angabe aus dem RSS Standard Vokabular zu duplizieren. Und dies ist noch nicht mal RSS 1.0 wo das nach dem (in der RSS-Welt eh nie benutztem) RDF Datenmodell noch halbwegs sinnig wäre.

      Dann bindet es einfach xhtml:body als Kindelement ein. Das war anno 2002 unter höchstens 10 Superusern mal eine diskutierte Methode, XHTML Content in einen Feed einzubinden. Es war nie breit akzeptiert und die Zahl der Feedreader, die auf so etwas achtet ist minimal. Und inzwischen wäre selbst das obsolet, die Welt hat sich auf content:encoded oder vielmehr auf das geänderte Inhaltsmodell von decsription (maskiertes HTML) geeinigigt. xhtml:body ist zwar kein Fehler, aber es ist obsolet und gibt aus dem Quellcode lernenden Anfängern einen falschen Eindruck, das es „nötig sei“. Ist es nicht.

      Alternativ kannst du natürlich auch nach einer Spezifikation googlen ...

      RSS 2.0 Spezifikation
      RSS 2.0 Best Practices Profil

      Atom 1.0 Einführung
      Atom 1.0 Standard

      Feedvalidator von Ruby und Pilgrim
      Feedvalidator von Validome

      Tim

      1. Moin!

        Die Hardcore-Methode wäre, sich von irgendwoher einen existierenden Podcast als XML-Quelltext zu besorgen und einfach darin enthaltene Inhalte passend umzuarbeiten. :)

        Arghs. Bitte, bitte nicht.

        Na klar, das sowas kommen mußte. ;)

        Aber über "Schönheitssachen" unterhalte ich mich andernorts schon - und wir zwei kennen uns ja schon etwas besser, als dass wir da aneinander geraten würden. ;)

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
  2. hi,

    Gibt's irgendwo praktische Anleitungen, das (namentlich für Podcatcher wie iTunes) nötige XML jeweils beim Upload eines neuen Songs von Hand zu schreiben, so wie ich das mit dem übrigen HTML tue?

    Neben Svens Anmerkungen sollte auch http://wiki.podcast.de/ dir weitere brauchbare Informationen liefern.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Auch wenn ich auf Anhieb noch nicht fündig geworden bin: Die beiden Tipps werde ich mir ausführlich zu Gemüte führen. Die Hardcore-Kopiermethode klingt einigermassen verlockend; anschliessend werd' ich mich ausführlich der Trial&Error-Methode widmen.

    M.a.W: Habt Dank. :-)

    twb

  4. Halle - und ein gutes neues Jahr allen hier!

    Meine Frage: Gegeben sei eine kleine, von Hand geschriebene Seite wie meine persönliche HP www.thomasweibel.ch. 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? Gibt's irgendwo praktische Anleitungen, das (namentlich für Podcatcher wie iTunes) nötige XML jeweils beim Upload eines neuen Songs von Hand zu schreiben, so wie ich das mit dem übrigen HTML tue?

    Herzlich, und mit Dank! twb

    Ich kann dir das von mir beschriebene PHP-Tool PHPodcast(1) vorschlagen. Braucht zwar PHP (dafür keine Datenbank), sollte aber genau das machen was du willst, ohne dass du selbst XML schreiben musst.

    Give it a try.

    Michael

    (1) http://phpodcast.creativebytes.de

  5. 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
    
    1. Ad 1: DAS, lieber Tim, genau DAS war's, was ich gesucht hab'. Ich kann nur hoffen, dass es dieser Thread ins ewige Selfhtml-Archiv schafft. Spitze!

      <title>Thomas' fluffige Musik</title>

      Ad 2: Nun ja, darüber lässt sich trefflich streiten. Irgendwie, naja so irgendwie macht mich dieser spezifische Taginhalt noch nicht so ganz glücklich. :-)

      Denn schließlich interessierst Du Dich für die Musik, nicht für XML.

      Ad 3: Und das, zu guter letzt, trifft nun nicht mehr ganz zu - immerhin haben mich der geniale Web-Wettbewerb www.the5k.org selig, meine eigenen DHTML-Spielereien und nicht zuletzt de.selfhtml.org dazu gebracht, dass mich HTML, CSS und Javascript fast ebenso sehr interessieren wie mein Bass. Aber klar: PHP fehlt noch auf meiner Liste. :-)