Ajouter simplement des podcasts à son site

Il existe une méthode simple (à mon humble avis, mais je peux me tromper) de proposer des podcasts audio ou vidéo a ses internautes à partie de son site spip et ce avec un minimum d’effort.

Qui a dit que les informaticiens n’étaient pas des faignants ?

Pour cela créez un squelette, que vous pouvez appeler « podcast.html » par exemple
dans lequel il ne vous restera plus qu’à copier le contenu du code suivant :

<?php
@header('Content-type: text/xml; charset=UTF-8');
echo("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
?>

Un peu de php pour que le type de document soit bien reconnu par nos navigateurs. (l’utilisation du php est dû a certaines incompatibilités provenant de divers hébergements mutualisés. Mais si cela fonctionne pour vous et comme le propose « Kent1 » dans les commentaires de cet article, vous pouvez essayer d’inclure cette entête en lieu et place du code php.

[(#HTTP_HEADER{Content-type: text/xml[; charset=UTF8]})]<?xml version="1.0"[ encoding="UTF-8"]?>

Le charset utilisé pour les podcasts doit etre en UTF-8 [1], d’ou son intégration en dur.

<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
 
  <channel>
    <title>[(#NOM_SITE_SPIP|textebrut|entites_html|entites_unicode)] </title>
    <link>#URL_SITE_SPIP/</link>
 
<code class="spip">
<description> 
([#DESCRIPTIF_SITE_SPIP|textebrut|entites_html|entites_unicode)] 
</description>

selon votre configuration apache ou celle de votre hébergeur, le filtre « |entites_unicode » peut faire planté votre squelette.
Dans ce cas, modifiez la ligne comme suit :

<description> 
([#DESCRIPTIF_SITE_SPIP|textebrut|entites_html)] 
</description>
    <generator>[(#NOM_SITE_SPIP|textebrut|entites_html|entites_unicode)]</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
 
    <language>#LANG</language>
    <copyright>[(#NOM_SITE_SPIP|textebrut|entites_html|entites_unicode)] [(#DATE_annee|textebrut|entites_html|entites_unicode)]</copyright>
    <managingEditor>#EMAIL_WEBMASTER</managingEditor>
    <webMaster><BOUCLE_webmaster(AUTEURS) {id_auteur=1}>
           [(#NOM|texte_backend)]
            </BOUCLE_webmaster></webMaster>
    <pubDate>[(#DATE|affdate{'r'})]</pubDate>
 
    <lastBuildDate>[(#DATE_NOUVEAUTES|affdate)] [(#DATE_NOUVEAUTES|heures)]:[(#DATE_NOUVEAUTES|minutes)]:[(#DATE_NOUVEAUTES|secondes)]</lastBuildDate>
    <image>
      <url>[href="(#LOGO_SITE_SPIP||extraire_attribut{src}|url_absolue|texte_backend)"]
</url>      <title>#NOM_SITE_SPIP</title>
      <link>#URL_SITE_SPIP</link>
      <description>#NOM_SITE_SPIP</description>
    </image>

Les informations décrivant notre site et la personne a contacter en cas de problème...

        <BOUCLE_article(ARTICLES){id_rubrique=69}{par date}{inverse}{0,9999}>

Ce début de boucle défini la rubrique (69 ! ) dans laquelle nous irons chercher les documents a podcaster, ceci nous permettra ainsi de créer plusieurs squelettes de podcasting (si l’on veut différencier audio et vidéo par exemple...

ainsi que le nombre de podcast à afficher (ici 9999 ! )

    <item>
      <title>[(#TITRE|texte_backend)]</title>
      <link>[(#URL_ARTICLE|url_absolue|unique)]</link>
      <description>[(#CHAPO|liens_absolus|texte_backend)]</description>
      <pubDate>[(#DATE|affdate{'r'})]</pubDate>
 
      <BOUCLE_podcast(DOCUMENTS){id_article}{mode=document}>[
                        <enclosure url="(#URL_DOCUMENT|url_absolue|unique)" length="[(#TAILLE)]" type="#MIME_TYPE" />]
                </BOUCLE_podcast>
 
      <guid isPermaLink="false">[(#URL_ARTICLE|url_absolue|unique)]</guid>
      <itunes:author><BOUCLE_auteursb(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_auteursb></itunes:author>
      [<itunes:subtitle>(#SOUS_TITRE|texte_backend)</itunes:subtitle>]
      <itunes:summary>[(#CHAPO|liens_absolus|texte_backend)]</itunes:summary>
 
      <itunes:keywords><BOUCLE_articles_mots(ARTICLES) {id_mot} {par hasard} {0,4}>
#TITRE
</BOUCLE_articles_mots></itunes:keywords>  
 
    </item>
    </BOUCLE_article>
 
  </channel>
</rss>

Voila, c’est fini.

bon podcasting !


Cette contribution est fortement inspirée de ce qui se faisait dans le passé avec spipcast, mais qui obligeait a modifier le fonctionnement de son site spip
ce qui n’est plus obligatoire aujourd’hui.

le code de la page podcast.html

Notes

[1Recommendation W3C

Discussion

8 discussions

  • à la question ou doit ont mettre le fichier podcast.html, la réponse est évidente, dans le dossier du squelette du site

    Répondre à ce message

  • à noter :
    le filtre entites_unicode est maintenant déprécié,
    le remplacer simplement par charset2unicode

    Répondre à ce message

  • Bonjour je ne comprends pas comment intrégrer le squelettes podcast.html à mon site. Comment afficher la page...

    Merci d’avance.
    Mathieu

    Répondre à ce message

  • Salut,

    Je viens de me rendre compte que le flux n’est plus validé par Itunes. Il m’annonce url invalide. Ca marchait jusqu’à présent...

    D’autres utilisateurs ont-ils cette mauvaise surprise également ?

    Merci

    Répondre à ce message

  • Ok merci de ta réponse rapide, je vais regarder le code.

    Je te tiens au courant.

    Répondre à ce message

  • 1

    Salut,

    Merci pour cette contrib que je viens de mettre sur un de mes sites en développement.

    Il me subisiste cependant u ne petite question.

    Que va chercher comme info la boucle


    ([#DESCRIPTIF_SITE_SPIP|textebrut|entites_html|entites_unicode)]

    Surtout la seconde partie ([|textebrut|entites_html|entites_unicode)] qui apparait en l’état dans la colonne description de mon Itunes ?

    Merci d’avance !!!

    • la partie description sert justement a décrire votre flux, il est prit sur la description du site textebrut|entites_html| servent a épuré les caractères bizarres et code html pouvant y figurer.

      si ces commandes apparaissent dans le flux généré
      c’est qu’il doit y avoir une erreur
      sans doute un [ manquant ou du meme style...

    Répondre à ce message

  • 1

    tout a fait d’accord mais j’ai rencontré des bizarreries d’interprétation du fichier par spip à l’utilisation.

    alors qu’avec le passage du php, non.

    il est vrai que je n’ai pas refait les tests sur la 2.0.9...

    Répondre à ce message

  • <?php
    @header('Content-type: text/xml; charset=UTF-8');
    echo("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
    ?>

    Devrait être remplacé par :

    [(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]<?xml 
    version="1.0"[ encoding="(#CHARSET)"]?>

    Cf les squelettes backend.html et backend-breves.html par défaut de SPIP...

    Donc pas besoin de PHP mais uniquement du full SPIP

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 19 février 2010