Comment j’ai fait mon flux RSS avec wordpress

Mes émissions sont rangées dans des articles, dans la catégorie ’emission’. Le flux rss contiendra uniquement les articles de cette catégorie. J’utilise les champs personnalisés pour compléter les informations demandées par itunes et pour inclure les informations du fichier mp3.

RSS Made By Humans

J’ai créé mon plugin wordpress très simplement, voilà comment.

Le plugin

Allez sur votre hébergement de wordpress. Créez un répertoire du nom de votre plugin. Par exemple :

/wp-content/plugins/MBH-my-RSS-generator/

NB. Peu importe le nom. Le plugin n’est pas destiné à aller dans la base de plugins de wordpress. Il doit juste être unique dans votre répertoire de plugins.

Ajoutez un fichier .php qui doit avoir le même nom que le répertoire. Dans notre exemple : 

MBH-my-RSS-generator.php
<?php
/*
Plugin Name: MBH-my-RSS-generator
Plugin URI: https://madebyhumans.fr/
Description: My Podcast RSS Plugin
Version: V0-20180915
Author: Path
Author URI: https://madebyhumans.fr/
License: WTFPL
License URI: http://www.wtfpl.net/
*/

defined( 'ABSPATH' ) or die( 'No script kiddies please!' );

add_action('init', 'addMyRSS');

function addMyRSS(){
add_feed('myrss', 'renderMyRSS');
}

function renderMyRSS (){
include('myrss.php');
}
?>

Le 1ère partie de commentaire sont des informations destinées à wordpress. Mettez ce que vous voulez.

Le code PHP demande à WP de d’exécuter la fonction addMyRSS une fois à l’initialisation.

La fonction addMyRSS ajoute votre flux rss avec le nom ‘myrss‘ et indique la fonction à utiliser (renderMyRSS) au moment où le flux est demandé. Le flux est alors disponible avec ce chemin :

http://<votre domaine>/myrss

Vous pouvez donner le nom que vous voulez tant que ça passe dans un lien web. Ne mettez pas d’accents et pas d’espaces par exemple.

Enfin, la fonction renderMyRSS va chercher le fichier myrss.php qui génère le XML du flux RSS à proprement parler.

Le template XML

Ce fichier contient le template XML du flux RSS personnalisé. C’est le 2e et dernier fichier du plugin. Par exemple myrss.php :

<?php
/**
 * Template Name: Custom RSS Template - Feedname
 * http://www.wpbeginner.com/wp-tutorials/how-to-create-custom-rss-feeds-in-wordpress/
 */
$item_counter = 0;
$postCount = 1000; // The number of posts to show in the feed
$posts = query_posts('showposts=' . $postCount.'&category_name=emission');
//header( 'Content-Type: application/rss+xml' );
header('Content-Type: '.feed_content_type('rss-http').'; charset='.get_option('blog_charset'), true);
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
?><rss version="2.0"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:wfw="http://wellformedweb.org/CommentAPI/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:atom="http://www.w3.org/2005/Atom"
 xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
 xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
 xml:lang="fr-FR"
	<?php do_action('rss2_ns'); ?>>
	<channel>
		<title><![CDATA[<?php bloginfo_rss('name'); ?>]]></title>
		<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
		<link><?php bloginfo_rss('url') ?></link>
		<description><?php bloginfo_rss('description') ?></description>
		<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
		<language><?php echo get_option('rss_language'); ?></language>
		<sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
		<sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
		<generator>MoutMoutRSS</generator>
		<?php while(have_posts()) : the_post(); ?>
		<item>
			<title><?php the_title_rss(); ?></title>
			<link><?php the_permalink_rss(); ?></link>
			<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
			<dc:creator><?php the_author(); ?></dc:creator>
			<guid isPermaLink="false"><?php the_guid(); ?></guid>
			<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
			<content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
			<?php rss_enclosure(); ?>
			<itunes:duration><?php echo get_post_meta(get_the_ID(), 'audio_file_duration', true); ?></itunes:duration>
			<itunes:order><?php echo $item_counter++; ?></itunes:order>
			<itunes:duration><?php echo get_post_meta(get_the_ID(), 'audio_file_duration', true); ?></itunes:duration>
		</item>
		<?php endwhile; ?>
	</channel>
</rss>

Au début du template, on note le filtre &category_name=emission sur la commande query_posts

On peut noter dans le fichier template le tag <itunes:order> que l’on fabrique avec un compteur.

Le fichier mp3 est inclus dans le rss avec la commande rss_enclosure();

Champs personnalisés

Pour ajouter, par exemple le tag <itunes:duration>, on va utiliser les champs personnalisés.

Pour cet exemple, j’ai ajouté le champ personnalisé audio_file_duration

NB. Les champs personnalisés ne sont pas visibles par défaut. Pour les afficher, il faut cocher dans le panneau « Options de l’écran » en haut à droite du tableau de bord.

Et voilà !! 🙂

Podcasteur le punk de la radio

C’est le moment de faire un petit point d’étape.

L’histoire remonte au mois d’avril où, dans les coulisses du forum robot-maker.com, on cherchait à créer du contenu. J’ai parlé d’interviews. Je pensais d’abord aux acteurs connus comme le professeur Jacques Gangloff et ses cours en video, le youtubeur James Bruton et d’autres. Mais je n’ai eu que des dédicaces par mail. Bien mais pas très profond. Pour ce type de contenu, j’ai testé l’audio avec certains d’entre nous. En plus de mieux connaître mes interlocuteurs, de partager encore plus, de faire de très bonne rencontres, j’ai obtenu de la matière pour tester le matériel, le montage me roder. Et je trouve ça concluant, ça me donne envie de continuer. C’est encore très perfectible mais je trouve ça top !! Merci encore à ceux qui sont venus !!

A propos du format audio

Je le trouve tout à fait adapté à une utilisation annexe. Comme la radio, on l’écoute pendant qu’on continue à ses occupations. En voiture, en transport, à pieds, pendant qu’on bosse sur son robot ^^. Comparé à la video, d’un coté cela limite l’aspect didactique, de l’autre coté c’est plus facile à produire. Et on a l’écrit sur le forum pour l’aspect didactique. Je trouve aussi que le dialogue direct à l’oral rapproche, renforce l’esprit communautaire et démystifie la complexité de la robotique. Et c’est bien là le but.

A propos de la diffusion

Les gens qui viennent sur youtube cherchent du contenu video. On le voit dans les chiffre donnés par youtube, les gens ne lisent que 10% des interviews que j’ai posté sur ce support. Je vais continuer de diffuser sur youtube mais uniquement pour la « visibilité ». La cible des podcasts c’est itunes, podcloud, mon rss et twitter. Soundcloud n’est pas super en forme. Ils licencient … Sur les supports dédiés aux podcasts, on ne peut pas mesurer la durée de l’écoute. C’est un mp3 qu’on télécharge. Mais on se donne toutes les chances que ça le soit :)

On est au tout début de l’histoire. On va continuer les interviews bien sûr. A coté de cela, on va explorer d’autres voies avec une émission périodique. Affaire à suivre donc.

A propos du podcast

On a aucun objectif de chiffre, aucune pression. Ça sort quand ça sort :) On le fait dans la bonne humeur et sérieusement on le fait à la cool. La préparation du conducteur doit être très limitée. Nous n’avons besoin que de notre passion. On fait du contenu qui est diffusé en se marrant.

C’est quand je veux, si je veux, indépendant des media et des autres podcasts, liberté de format, liberté de ton, un espace pas encore très réglementé, très peu de moyens …  Bref, une radio pirate moderne en quelque sorte.

Discussion sur le forum.

Etat du studio

De quoi s’amuser un bon moment.

  • Un micro XLR.
  • Un enregistreur numérique.
  • Un serveur mumble.
  • Des cartes son externes pour brancher un téléphone et un ordi pour le mumble.
  • Un mixeur analogique et le câblage mix-minus pour que tout le monde se parle.
  • Un répondeur et une ligne téléphonique (ligne SIP gratuite).
  • Un serveur icecast2 et un raspberry pour diffuser le master audio brut en direct sur une page web, avec une image prise toutes les minutes pour illustrer.
  • un site web pour porter ces infos et le RSS de diffusion.

Fabrication de la video avec l’onde sonore

La commande ffmpeg permet de créer une video avec une image de fond et d’un mp3. Elle permet aussi d’y ajouter des effets dont une représentation de l’onde sonore du mp3. La commande utilisée :

./ffmpeg -i MakerSecrets.mp3 -loop 1 -i YT_MBH.png -filter_complex \
"[0:a]showwaves=s=854x480:mode=p2p,format=rgba,colorkey=black[fg]; \
[1:v]scale=854:-1,crop=iw:480[bg]; \
[bg][fg]overlay=shortest=1,format=yuv420p[out]" \
-map "[out]" -map 0:a -c:v libx264 -preset fast -crf 18 -c:a libopus MakerSecrets.mkv

Source :

http://astuces.podcloud.fr/transformer-un-podcast-audio-en-video
https://ffmpeg.org/ffmpeg-filters.html

Fiction participative et à vivre

En ce début d’été Phil_Goud (PodCloud) nous propose de vivre une fake news. Un jeu de rôle participatif par message téléphonique. Le pitch est simple : un météore très inquiétant va heurter le nord de l’Europe. Sur le fil du podcast 163, nous suivons presque en direct la réaction de nombreux participants ou survivants. Certains organisent leur fuite, certains observent l’actualité. Moi je choisi de me planquer dans les catacombes de Paris.

http://163.lepodcast.fr/

Partager la conversation mumble avec un invité par téléphone

Pendant une conversation sur mumble, comment prendre un appel téléphonique et permettre à l’invité par téléphone de converser avec les personnes présentes sur le mumble.

J’utilise une table de mixage et je fais un mix-minus. Le principe : envoyer sur une sortie auxiliaire toutes les sources mixées sauf une. Par exemple, envoyer sur le téléphone tout le mix sauf le téléphone. Envoyer sur le mumble tout le mix sauf le mumble.

Par exemple, la Behringer 1204 possède 2 sortie auxiliaire. Elle permet de faire 2 mix-minus, un pour le mumble, un pour le téléphone.

Pour brancher le téléphone à la table de mixage, j’utilise la prise micro-casque. J’ai testé un séparateur Y sans succès. Il faut une interface comme le iRig2.

Pour brancher le mumble sur la table de mixage, j’utilise une carte son externe usb. Elle est reconnu automatiquement et directement. Il faut la sélectionner dans mumble et le tour est joué.

 

Flux audio

Pourquoi un flux audio en direct pour un podcast ? Ce flux est mis en place pour un format de podcast en mode hot line.

Comment ça fonctionne ? Voici la chaîne que j’utilise :

La table de mixage a une carte son usb intégrée. Elle est directement reconnue comme telle par un PC. Le son issue du mix est donc cette prise usb qui sert de master pour le flux.

Le PC qui bénéficie de cette carte son est un Raspberry PI 3. Il est chargé de lire le flux audio qui sort de la table de mixage via usb. Il arrive au format PCM. Il faut le comprimer en MP3 et l’envoyer sur un serveur de diffusion. La lecture est faite avec alsa (arecord). L’encodage est fait avec lame. L’envoi sur le serveur est fait avec ezstream. Cela donne la commande suivante :

arecord --device hw:CARD=CODEC,DEV=0 --format cd --rate 44100 --vumeter=stereo | lame -r -s 44.1 -m s -b 128 --cbr --scale 3  - | ezstream -c /home/pi/ezstream_mp3.xml

Le serveur icecast2 sert à relayer le flux audio aux différents auditeurs. Il faut noter que ce dernier composant crée un délai de quelques secondes.

Pour écouter le flux audio, il faut une balise html audio qui pointe sur le serveur icecast.

<audio src="http://163.172.63.38:8000/live.mp3" volume="1.0" controls autoplay>
Votre navigateur ne supporte pas l'élément <code>audio</code>.
</audio>

Tout cela demande pas mal de recherche et de configuration qu’il est facile de retrouver sur le net.

MP3Paris 2e édition 2017

Aujourd’hui, je suis allé là : http://www.mp3aparis.fr/. C’est une convention de podcasteurs (audio biensûr). Et, attention, pas les youtubeurs, On ne se mélange pas 😀

J’ai échangé avec les podcasteurs. Les vrais, ceux qu’on écoute étaient là en vrai !! Ces sont des amateurs, comme moi. Ils ne m’ont pas pris de haut, loin de là. Je trouve la communauté ultra sympa, chaleureuse et prête à partager ses ficelles.

J’ai causé imprimante 3D avec un certain Picaboubx de Bricolo et Mulot et de http://lavis-des-moutons.lepodcast.fr/. Nous avons tout le deux monté la dagoma disco 200. Lui, il a changé la buse pour qu’elle fonctionne bien …

J’ai causé technique podcast avec un certain Quenton de http://www.techcraft.fr/. Format de fichiers, mixage, rss, montage. Il m’a donné des pistes pour mon pb avec les petits bruits qu’on entends dans le mumble. Je vais voire ça. Il a même pris le temps d’écouter un bout de l’épisode avec Oliver !! Il a trouvé ça top … pour un début … 🙂

J’ai aussi causé technique d’hébergement avec les mecs (Phil_goud) qui on fait https://podcloud.fr/, un annuaire très connu de podcast. Je leur ai dit attention on arrive ^^.

Rien sur la robotique et très peu de tech dans l’assemblée mais j’en sors chaud patate et surtout serein d’avoir échangé avec cette communauté !! J’y retourne l’année prochaine !!