Cette édition du guide 3 mars 2006 (version du plugin : 1.4.1)
La mise en oeuvre la plus pratique de ce plugin est la suivante :
Créer les répertoires suivants :
Afficher le formulaire d'entrée du podcast par le sous-menu Ajouter
L'item est enregistré dans la table MySQL et le fil de syndication RSS 2.0 podcast est automatiquement généré dans share/feeds/podcast.xml.
Vérifier que le fil RSS fonctionne dans l'agrégateur de votre choix (Juice, iTunes …).
L'item est maintenant affiché dans le formulaire d'édition ; on peut alors :
Modifier la valeur des champs titres et descriptions si nécessaire ainsi que les valeurs par défaut. Ne pas oublier d'Enregistrer ; sinon les modifications ne sont pas prises en compte.
Il suffira ensuite de cliquer sur Gen RSS ou d'afficher un item et de cliquer sur Enregistrer pour re-générer le fil RSS (pas de modifications de valeur de champ nécessaire).
L'entrée dans la table MySQL dc_podcast contient les valeurs entrées dans le formulaire Ajout d'une entrée ou Edition d'une entrée et constituera un item du fil RSS et l'épisode affiché dans l'agrégateur de podcasts d'iTunes 4.9.
Si une enclosure de podcast est trouvée dans le billet, sous la forme
<a href="http://...demo.mp3" rel="enclosure">podcast</a>
la première adresse de ce type est prise comme valeur du champ actif
Fichier de flux. Sinon, renseigner ce dernier champ.
Les fils RSS sont générés en extension php ce qui permet l'appel du plugin BBClone (RSS edition) si celui-ci est installé. Cela permet aussi à l'utilisateur d'appeller des fonctions spécifiques PHP en modifiant ces fils php.
Les fils RSS spécifiques sont ceux dont le nom suit le premier nom figurant dans le champ Noms pour fils RSS de la configuration générale sont générés automatiquement. Ils ne comportent que les épisodes (items) ayant le même nom dans le champ Noms de fils RSS spécifiques de l'item.
Plusieurs noms de marqueurs peuvent figurer dans les champs ; ils sont alors séparés par des virgules.
Le fil RSS général, premier nom mis dans le champ Noms pour fils RSS de la configuration générale contient tous les items.
Feed generator and items manager
Ce plugin permet au créateur de musique, d'émissions radio, de cours, de toute information audio ou video (videoblogger) qui veut diffuser sur le web de créer facilement le fil de syndication RSS 2.0 contenant les informations pour les fichiers de flux.
La gestion de ces informations se fait dans une table MySQL permettant leur sauvegarde et leur réutilisation.
Il est fait pour faciliter la création du flux avec le minimum d'informations entrées par l'utilisateur. La démarche de base est de mettrer le flux audio ou video dans son emplacement sur le serveur, de faire le billet décrivant ce flux puis de créer automatiquement le fil de syndication RSS 2.0 podcast car le plugin récupére les textes du billet et les caractéristiques du fichier de flux.
La démarche précise est affichée lors de l'installation et accessible par le sous-menu Doc. Une icone signale les champs Fichier de flux et Description (url) lorsqu'ils sont actifs pour renseigner les autres champs.
Ce plugin permet au podcaster (vous) de gérer vos fichiers audio ou video mis à disposition des internautes et de générer votre podcast (le fil de syndication RSS 2.0).
La gestion des fichiers audio, video, documentaire se fait dans l'interface d'administration du plugin :
Le podcast concerne historiquement les flux audio ; il englobe maintenant toutes les formes de communication du type audio, video, documentaire.
Le plugin podcast supporte directement les flux d'information définis par iTunes : audio MPEG mp3, audio AAC m4a, données MPEG-4 mp4, séquence QuickTime mov, Acrobat pdf ainsi que tout flux d'information en entrant les valeurs adéquates pour l'enclosure.
Il est utilisable par les videoblogs pour générer le fil RSS nécessaire pour iTunes.
Exemple de videoblog : rechercher Eric Rice dans le répertoire des podcasts du Music Store pour :
A vog respects bandwidth. A vog is not streaming video (this is not the reinvention of television). A vog uses performative video and/or audio. A vog is personal. A vog uses available technology. a vog experiments with writerly video and audio. A vog lies between writing and the televisual. A vog explores the proximate distance of words and moving media. A vog is Jean-Luc Godard with a mac and a modem. A vog is a video blog where video in a blog must be more than video in a blog.
First published December 2000. adrian miles vog
Le podcast est ici le lien direct sur le flux audio, en général un fichier mp3 utilisable par tous. Pour un flux audio qui concerne essentiellement les visiteurs du site qui relèvent eux-mêmes les mises à jour et nouveautés. L'utilisation du plugin n'est pas nécessaire.
C'est un fil de syndication RSS 2.0 qui sera utilisé par l'agrégateur de podcasts installé sur l'ordinateur de l'auditeur (iPodder, iTunes 4.9 …). Il permet de référencer un grand nombre de flux audio du blog ; il permet de relever périodiquement les mises à jour et les nouveautés sans que l'auditeur visite le blog ; i'auditeur est informé automatiquement et sans intervention de sa part. Il dispose d'un poste de radio intelligent sur son ordinateur qui affiche les flux audio à jour et qu'il peut écouter en direct ou transférer sur son baladeur.
Le podcast minimum (on ne rentre rien dans les champs marqués optionnel) est suffisant en général ; ainsi que l'ensemble des balises standard, même dans iTunes 4.9 en abonnement direct (menu Avancé, S'abonner au podcast…).
La version 4.9 de ITunes de juillet 2005 comprend un agrégateur de podcasts plus l'accés au répertoire de podcasts du Music Store Apple. Tout ça gratuit en juillet 2005 à condition de fournir son email pour la fonction accés au répertoire.
Les balises iTunes spécifiques et propriétaires seront utiles essentiellement si l'on veut mettre son podcast dans le répertoire du Music Store (délai de quelques jours entre inscription et affichage dans le répertoire). Accompagnées d'une belle image jpg ou png en 300x300.
Les balises iTunes propriétaires seront créés si on modifie la configuration pour mettre : Création iTunes ? à Oui.
Le plugin podcast gère les flux audio video dans son interface d'administration.
La rubrique Accueil au début de ce document donne la démarche recommandée.
Les champs Longueur Date Type (non affichés en génération automatique) et guid sont renseignés si le fichier existe sur le site dans le répertoire dans le répertoire indiqué (dotclear/share/audio par défaut). Sinon il suffit d'y mettre le fichier après enregistrement et de ré-enregistrer pour renseigner les champs.
Le plugin récupère aussi les caractéristiques d'un fichier dont l'adresse est donnée sous forme d'URL si le fichier est en ligne.
Les caractéristiques du fichier sont remises à jour à chaque enregistrement d'item en mode génération automatique.
Les fils de syndication RSS 2.0 général et spécifiques sont regénérés automatiquement lors d'un ajout, d'une modification ou d'une suppression d'une entrée. Ils sonr recréés à chaque appui sur le bouton Enregistrer (même sans modification d'un champ).
On revient systématiquement au formulaire d'édition après un ajout et un enregistrement. Le sous-menu Ajouter (en haut) conduit à un formulaire à renseigner pour un nouvel item. Le bouton Ajouter (en bas) permet de dupliquer une entrée ; il crée une nouvelle entrée à partir de ce qui est affiché (ancienne entrée plus modifications) puis réaffiche cette nouvelle entrée ; l'ancienne entrée n'est pas modifiée (le bouton Ajouter transmet les champs affichés).
Le bouton Faire le billet permet de créer un billet à partir de l'entrée telle qu'elle est enregistrée ; attention : si des modification sont faites dans le formulaire il faut d'abord enregistrer ; sinon ces modifications ne sont pas transmise au billet (le bouton Billet transmet l'id de l'entrée). Il y a création d'un nouveau billet à chaque clic sur ce bouton (supprimer les billets superflus si nécessaire).
Le bouton Amener le billet renseigne le formulaire à partir du billet. L'adresse du fichier y est prise si le billet contient une référence de type
<a href="http://...demo.mp3" rel="enclosure">podcast</a>ou l'adresse du fichier de podcast comprend l'attribut rel ayant la valeur enclosure.
Si le fichier podcast.xml n'est pas créé, vérifier que le répertoire /dotclear/share/feeds est bien accessible en écriture.
Les noms de fichiers seront de préférence en minuscules, sans blancs ni caractères accentués. Les blancs seront remplacés par - (tiret) ou _ (underscore).
Noter que si l'on clique 2 fois dans un champ vide on a le rappel des valeurs déjà entrées (Firefox).
La validation des fils RSS par FEED Validator for Atom and RSS est recommandée ; elle permet de corriger d'éventuelles errreurs d'entrées de données.
Le texte doit être entré sans mise en format par des balises (tags) ; les balises HTML ou XML doivent être exclues pour avoir une validation stricte du fil RSS.
On suivra ces conventions en cas de modification manuelle du conf.ini ou de la table MySQL dc_podcast.
Le podcaster a toute liberté pour mettre les fichiers audio, video, doc … à l'endroit désiré :
On peut indiquer un chemin absolu ou relatif en préfixe du nom du fichier pour les fichiers qui ne sont pas situés dans le répertoire de recherche (celui indiqué dans la configuration générale, par défaut share/audio/).
Le chemin absolu commence par un /, il indique un répertoire situé à la racine du site, exemples :
Le chemin relatif n'a pas de / en-tête, il indique un répertoire relatif au blog lui-même, exemples :
chemins relatifs qui seront, si DotClear est installé dans le répertoire /dotclear/ lui-même à la racine du site :
Par défaut le plugin refait les fils de syndication RSS 2.0 à chaque Ajouter ou Enregitrer. C'est le mode normal de génération automatique.
En mode manuel les fils RSS sont créés seulement par appel au sous-menu Gen RSS qui apparait dans la page de liste des entrées quand l'entrée Génération automatique de la configuration est mise à Non.
Ce mode manuel permet de travailler sur la table MySQL sans recréer les fils RSS à chaque mise à jour d'entrée. Ceci permet d'avoir un meilleur temps de réponse et évite des lectures multiples de la table MySQL.
Noter qu'en mode automatique on re-génére le podcast en cliquant sur Enregistrer pour n'importe quelle entrée sans modifier de valeur.
Un indicateur de sauvegarde du podcast figure à la droite des titres. Il est vert si le podcast.xml a été sauvegardé, rouge sinon.
Il s'installe comme les autres plugins.
Le but ultime du podcast en tant que lien de syndication est de mettre celui-ci à disposition des auditeurs. On veillera donc à mettre ce lien en valeur de façon visible à un endroit approprié.
En pratique on rajoutera le fil de syndication podcast dans les pages du site (dans le template.php, sidebar par exemple) ou dans tout autre endroit jugé adéquat :
Avec dc_podcast_rss_2_0_feed_path = share/feeds/podcast.xml dans conf.ini :
<p><a href="share/feeds/podcast.xml">fil rss2 podcast</a></p>
Ou avec de la déco
<p><a href="share/feeds/podcast.xml"> <img alt="Fil RSS 2.0 podcast" src="share/podcast/grey-podcast-2.png" height="22" width="70" /></a></p>
Voir les liens pour d'autres possibilités de décoration et de boutons.
Il faut compléter l'installation par le téléchargement sur le site de vos créations audio, normalement sous la forme de fichier mp3 dans le répertoire dotclear/share/audio. On peut ajouter dans ce répertoire les fichiers video et documentaire.
On rappelle que ce nom de répertoire est modifiable dans la configuration, par exemple dotclear/share/media
On crée sur le site les répertoires (remplacer dotclear par le nom réel du répertoire du blog) :
Les noms de répertoires doivent correspondre aux noms figurant dans la configuration. Ils sont modifiables par l'utilisateur dans cette configuration.
La création et la gestion du fichier de configuration share/podcast/conf.ini est assurée directement par le plugin.
Pour installer ce lien direct, on modifiera le post.php du thème actif pour y rajouter l'appel à la fonction dcPodcastLink() par exemple après le dcPostContent() :
<div class="post-content"><?php dcPostContent(); ?></div> <?php dcPodcastLink(); ?>
Ce lien apparait si une session admin est ouverte ; mais on peut forcer l'affichage permanent avec dcPodcastLink(1); ce qui peut être génant pour les visiteurs.
En fait la vraie place de dcPodcastLink() est dans l'interface d'administration. Mais il faut pour cela modifier le core de DotClear, ce qui n'est pas recommandé et qui oblige à appliquer la modification à chaque installation ou mise à jour de DotClear. Néamoins, pour les courageux qui ont une mémoire d'éléphant et qui font une utilisation intensive des billets pour items, voici la manip qui consiste à modifier dotclear/ecrire/poster.php.
# rajouter après include dirname(__FILE__).'/inc/connexion.php'; # le fichier contenant la fonction dcPodcastLink() spécifique à l'admin include dirname(__FILE__).'/tools/podcast/podcastit.php'; # puis rajouter vers les lignes 330, dans le if { }, après if (!empty($post_perm_url)) { echo '<p class="clear"><strong>'. __('Permanent link').'</strong> : '. util::getPageURL($post_perm_url) . '</p>'; # rajouter l'affichage de dcPodcastLink() echo '<p class="clear">'. dcPodcastLink() . '</p>'; }
La table MySQL dc_podcast est générée automatiquement à l'installation. Si problème, le dire dans le forum DotClear.
L'installation du plugin gestionnaire de fichiers (filemanager) permet le téléchargement de fichiers depuis l'ordinateur local, sous-menu Upload ainsi que la visualisation du fichier de changement change.log et des fils RSS (autres sous-menus).
Il est déconseillé de faire des modifications du fil RSS à partir de cette interface. La modification du fil RSS doit être faite à partir d'un éditeur UTF-8.
La mise à jour du plugin podcast se fait par remplacement complet. Le fichier de configuration qui contient les valeurs propres à l'utilisateur est préservé dans le répertoire share/podcast.
Voici les différentes étapes possibles suivant les contraintes amenées par l'hébergeur du blog :
Il faut le supprimer, même procédure de suppression que celle de la mise à jour.
On peut prendre d'autres répertoires par défaut que ceux proposés en modifiant la configuration du plugin. On peut aussi modifier le nom du fichier podcast ainsi que son extension xml. Cela peut être utile pour éviter le piratage d'adresses email et de contenu par les divers bad robots et autres crakers qui parcoutent le Web.
La table MySQL dc_podcast qui est générée automatiquement à l'installation est préfixée par le préfixe DotClear. On peut donc avoir plusieurs tables pour plusieurs blogs installés sur le même site.
Le fichier sql/create.txt est fourni pour faire dans PhpMyAdmin la création ou la mise à jour manuelle de la table dc_podcast (ne pas oublier de changer le préfixe dc_ si celui ci n'est pas dc_). À utiliser si le plugin n'arrive pas à créer ou à modifier la table MySQL.
On sauvegardera la table MySQL dc_podcast avec les autres tables DotClear en utilisant le plugin Opérations MySQL.
On peut l'archiver sous forme de billet (fermé si nécessaire) avec le bouton Billet en bas de page avant suppression. Le bouton Amener le billet permet de reconstituer l'item.
Podcasts
Exemples de podcasts faits avec le plugin podcast
Sites français
Spécifications
Les spécifications 2005-10-06 sont des spécifications d'utilisation des programmes iTunes 4.9 et du gestionnaire du répertoire de podcasts du Music Store.
Le plugin podcast à partir de la version 1.3.7 est conforme à ces spécifications 2005-10-06 et le fil de syndication RSS 2.0 généré doit valider avec le Feed validator qui est la meilleur référence actuelle pour les balises RSS et iTunes.
Validation et tests
Utiliser iTunes 4.9
Le plugin comporte une version de rss2.php, à mettre à la racine du blog. Cette version de rss2.php ne nécessite pas le package curl. Elle gère le type MIME (iTunes essentiellement).
La balise <enclosure url="http://...demo.mp3" type="audio/mpeg" length="999" /> est générée dans le fil RSS si le billet contient une référence de type
<a href="http://...demo.mp3" rel="enclosure">podcast</a>ou l'adresse du fichier de podcast comprend l'attribut rel ayant la valeur enclosure.
On s'abonne en cliquant sur s'abonner pour les podcasts que l'on veut écouter trouvés dans le répertoire du Music Sore Apple. Sinon dans la fenêtre Podcasts (clic sur Podcasts dans la colonne de gauche Source), aller dans le menu Avancé, S'abonner au podcast… pour pouvoir s'abonner en entrant l'url du podcast désiré.
Le <guid>
évite que le podcatcher télécharge à nouveau
et sans nécessité le fichier audio.
On adoptera a priori un <guid>
permanent et unique qui survive à un déplacement
du fichier. Voir
Whither GUIDs?.
Le podcaster gèrera lui-même le <guid>
s'il crée
des fichiers différents portant le même nom (situés dans des répertoires différents).
Par exemple :
<guid>isPermaLink="false">let's_groove_the_funk.mp3/1<guid> <guid>isPermaLink="false">let's_groove_the_funk.mp3/2<guid>
The RSS 2.0 test feed does not validate with the Feed validator:
line 320, column 52: guid values must not be duplicated within a feed <guid isPermaLink="false"><![CDATA[demo.mp3]]></guid>
Sam Ruby at Post: the answer is because the item referencing the enclosure http://cvie.free.fr/blog/share/audio/demo.mp3 and the item referencing the enclosure http://cvie.free.fr/podcast/demo.mp3 have the same value specified for their corresponding guid value.
Why is that important? Well consider the processing model of the consumer. It reads your feed periodically. It then parses your feed into items. Some of these items it may have seen before, some may be new. How does it tell which is which? From the latest “spec” (which you rightly point out doesn’t call itself a spec, but at the moment, it is what we have):
When you add episodes to your feed, guids are compared in case sensitive fashion to determine which episodes are new.
What this means is that if you reuse a GUID in a different item, one of the two will not be seen as new. Instead, it may be seen as an update or a replacement for the other item.