Guide du plugin podcast

Cette édition du guide 3 mars 2006 (version du plugin : 1.4.1)

Accueil

La mise en oeuvre la plus pratique de ce plugin est la suivante :

Installation avec les options par défaut

Créer les répertoires suivants :

Mettre en place votre flux audio sur votre site

Installer le plugin

Faire l'item (épisode) correspondant au flux audio ou video

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 …).

Suite optionnelle

L'item est maintenant affiché dans le formulaire d'édition ; on peut alors :

Revoir la configuration

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).

Définition

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.

Astuces

Fils RSS en extension php

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.

Noms de fils RSS spécifiques

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.

Spécifications

Généralités

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.

Objectifs

Qu'est-ce qu'un podcast ?

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 :

Extension du podcast

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 :

Vogme Manifesto

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

Pratique du podcast

Podcast direct

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.

Podcast standard

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…).

Podcast iTunes

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.

Utilisation du plugin podcast

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.

Entrée du texte

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.

Utilisation avancée de l'entrée d'un nom de fichier

Le podcaster a toute liberté pour mettre les fichiers audio, video, doc … à l'endroit désiré :

  1. dans le répertoire de recherche de la configuration générale. On peut alors entrer le nom en notation courte demo.mp3
  2. dans un autre répertoire à la racine du blog. On doit alors entrer le chemin en relatif : share/video/demo.m4a
  3. dans un autre répertoire à la racine du site. On doit alors entrer le chemin en absolu : /video/demo.m4a
  4. on peut aussi entrer l'URL complète, ce qui est nécessaire pour un fichier situé sur un autre serveur

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 :

Utilisation avancée du mode d'enregistrement

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.

Installation du plugin

Il s'installe comme les autres plugins.

Lien de syndication

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.

Fichiers audio video

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

Répertoires

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.

Lien direct du billet vers 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>';
}

Table MySQL

La table MySQL dc_podcast est générée automatiquement à l'installation. Si problème, le dire dans le forum DotClear.

Gestionnaire de fichiers

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.

Mise à jour du plugin

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 :

  1. il faut supprimer la version précédente avant d'installer la nouvelle
    1. soit par l'interface d'administration : Outils, Gestionnaire des plugins, Podcast - supprimer (ce qui ne marche pas chez tous les hébergeurs)
    2. soit par FTP (Filezilla par ex.) en supprimant le répertoire podcast depuis son ordinateur local à condition que l'hébergeur le permette
    3. soit avec le gestionnaire de fichiers (plugin à installer), il faut alors supprimer un à un les fichiers des répertoires podcast, help, l10n, sql
  2. installer la nouvelle version, soit par le gestionnaire de plugins en lui donnant l'adresse du pkg.gz, soit par téléchargement en FTP du plugin décompressé sur l'ordinateur local vers le site du blog

Désinstallation du plugin

Il faut le supprimer, même procédure de suppression que celle de la mise à jour.

Installation avançée

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.

Archivage des items

On sauvegardera la table MySQL dc_podcast avec les autres tables DotClear en utilisant le plugin Opérations MySQL.

Archivage d'un item particulier

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.

Liens

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

Annexes

RSS2.PHP

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.

Abonnement dans iTunes 4.9

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é.

Exemples d'adresses email valides

GUID

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>
Histoire vécue

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.

Visualisation d'un video clip avec iTunes 4.9

  1. s'abonner à un podcast video
  2. afficher la fenêtre Illustration en bas à gauche (4ème bouton à partir de la gauche en bas à gauche)
  3. démarrer la video
  4. on obtient une image moyenne en cliquant dans la fenêtre Illustration
  5. plein écran avec le 5ème bouton Afficher le clip video en plein écran