EasyPodcast permet de gérer un ou plusieurs podcasts depuis le navigateur et publie automatiquement un site, un flux RSS et un sitemap pour chacun. Ce manuel explique l’utilisation quotidienne après installation.
Pour l’installation et les prérequis techniques, consultez le README.
1. Notions de base
EasyPodcast comprend deux espaces :
- Site public : accueil, épisodes publiés, pages d’information, recherche et liens sociaux.
- Panneau d’administration : configuration, création d’épisodes, statistiques et maintenance.
Le panneau utilise le mot épisode (en espagnol, capítulo) pour chaque émission du podcast. Les états possibles sont :
draft: brouillon, absent du site et du flux. Un titre suffit pour l’enregistrer et le compléter plus tard.scheduled: programmé pour la date et l’heure indiquées.published: publié sur le site et dans le flux RSS.
La publication programmée ne nécessite pas de tâche cron. À partir de l’heure prévue, les épisodes en attente sont publiés à la prochaine visite du site ou du panneau. L’heure locale configurée dans PHP est utilisée.
2. Première connexion
- Ouvrez
https://votre-domaine.com/admin.php. - Si aucun administrateur n’existe, saisissez un nom d’utilisateur et un mot de passe, puis répétez-le pour confirmer.
- Cliquez sur Créer un utilisateur et se connecter.
- Ouvrez Podcast et complétez les informations du canal avant votre première publication.
Ensuite, connectez-vous avec le nom d’utilisateur ou l’adresse e-mail. Utilisez Déconnexion, surtout sur un ordinateur partagé.
3. Configurer le podcast
Ouvrez Administration > Podcast. Ces informations servent au site et au flux RSS.
Informations principales
- Titre : nom public du podcast.
- URL principale : adresse publique de l’installation, par exemple
https://podcast.exemple.com. - Description : présentation générale de l’émission.
- Langue : langue déclarée dans le flux RSS.
- Langue du panneau : langue de l’interface d’administration et des pages publiques.
- Auteur, propriétaire et e-mail : informations éditoriales incluses dans le flux.
- Catégories : jusqu’à trois catégories compatibles avec Apple Podcasts.
- Explicite : indique si le contenu général est explicite.
- Type iTunes : podcast épisodique ou en série.
- Copyright : texte juridique affiché dans le flux.
Publication et apparence
- Nombre d’éléments du flux RSS : limite les épisodes du flux ;
0signifie sans limite. - Nombre d’éléments de l’accueil : épisodes affichés par page.
- Écrire les métadonnées ID3 : ajoute titre, artiste, album, date, commentaire et numéro de piste au MP3 lors de l’envoi.
- Image du podcast : couverture carrée, fournie par URL ou envoyée depuis l’appareil.
- Image du hero : en-tête panoramique facultatif. Les images envoyées sont recadrées et optimisées automatiquement.
- Apparence : choisissez le thème dans le panneau principal et décidez s’il suit le mode clair ou sombre du système.
Cliquez sur Enregistrer le podcast. Les modifications publiques vident automatiquement le cache et régénèrent le flux et le sitemap si nécessaire.
4. Publier un épisode
Ouvrez Administration > Ajouter.
Procédure conseillée
- Saisissez le titre.
- Gardez l’état
draftpendant la préparation. - Ajoutez une description courte pour l’accueil et le contenu complet pour la page de l’épisode et le flux.
- Ajoutez l’audio par URL, en envoyant un fichier ou en enregistrant au microphone.
- Vérifiez image, auteur, contenu explicite, saison, numéro et type d’épisode.
- Choisissez
publishedpour publier immédiatement ouscheduledpour une date future. - Cliquez sur Enregistrer l’épisode.
- Vérifiez l’Aperçu et l’accueil public.
Champs importants
- GUID : identifiant unique des lecteurs RSS, généré automatiquement si vide.
- URL de l’épisode : générée depuis le titre. Vous pouvez aussi utiliser Générer l’URL ou fournir une URL valide.
- Description (texte seul) : extrait facultatif de 4 000 caractères maximum, remplaçant le contenu complet sur l’accueil s’il existe.
- Contenu : texte intégral dans l’éditeur visuel ; 10 000 caractères maximum, balises HTML comprises.
- Date de publication : la date actuelle est utilisée si elle est vide lors d’une publication ; obligatoire pour un épisode programmé.
- Audio : l’envoi remplit URL, type MIME et taille. Vérifiez-les manuellement pour une URL externe.
- Durée : format
HH:MM:SS. Si elle manque, EasyPodcast essaie de la calculer à partir d’un audio local. - Explicite : hérite du réglage général ou se définit pour cet épisode.
- Type :
fullpour un épisode normal,trailerpour une bande-annonce etbonuspour du contenu supplémentaire. - Image et auteur : les champs vides reprennent les valeurs du podcast.
Publier ou programmer nécessite du contenu et des données audio valides. Un brouillon nécessite seulement un titre.
Enregistrer depuis le navigateur
- Dépliez Enregistrer au microphone.
- Autorisez l’accès au microphone.
- Cliquez sur Enregistrer, puis Arrêter à la fin.
- Vérifiez avec Écouter l’enregistrement.
- Cliquez sur Utiliser cet enregistrement et attendez la confirmation de l’envoi.
- Enregistrez l’épisode.
Ne fermez pas la page pendant l’encodage ou l’envoi de l’enregistrement.
Métadonnées MP3
Si l’écriture automatique ID3 est activée, les métadonnées sont mises à jour lors de l’envoi. Pour un épisode existant, Mettre à jour les métadonnées du MP3 actuel permet de les réécrire.
5. Gérer les épisodes
Ouvrez Administration > Épisodes. Les épisodes publiés, brouillons et programmés sont séparés.
Vous pouvez :
- rechercher par titre ou contenu ;
- modifier un épisode ;
- ouvrir un aperçu, même d’un brouillon ou d’un épisode programmé ;
- supprimer un épisode.
La suppression retire l’enregistrement de la base de données. L’audio et l’image ne sont supprimés du serveur que si aucun autre épisode ni la couverture du podcast ne les utilise. Faites néanmoins une sauvegarde avant un nettoyage important.
Modifier un épisode publié actualise le flux, le sitemap et le cache public.
6. Importer un autre podcast
Importer un flux RSS copie les épisodes d’un flux externe et télécharge localement leurs audios et images.
- Ouvrez Administration > Importer un flux RSS.
- Collez l’URL complète et cliquez sur Aperçu.
- Comparez les métadonnées actuelles à celles du flux et cochez seulement les champs à remplacer.
- Sélectionnez les épisodes à importer.
- Laissez l’importation des GUID en double désactivée, sauf besoin explicite.
- Cliquez sur Démarrer l’importation et gardez la page ouverte jusqu’à la fin.
- Vérifiez épisodes importés, accueil et flux.
L’URL principale n’est pas remplacée par celle du flux importé. Les grosses importations peuvent durer plusieurs minutes et dépendent des limites d’envoi, de mémoire et de temps d’exécution du serveur.
7. Créer des pages et ajouter des réseaux sociaux
Pages statiques
Dans Administration > Pages, créez des pages comme « À propos », « Contact » ou « Mentions légales ».
- Cliquez sur Ajouter une page.
- Saisissez titre et contenu.
- Vérifiez le slug : lettres minuscules, chiffres et tirets uniquement.
- Choisissez
draftoupublished. - Choisissez éventuellement une page parente pour une hiérarchie à deux niveaux.
- Réglez Ordre ; les petits nombres apparaissent d’abord.
- Enregistrez et vérifiez l’aperçu.
Réseaux sociaux
Dans Administration > Réseaux sociaux, ajoutez les URL complètes du blog, de LinkedIn, Mastodon, X, Pixelfed, Instagram, YouTube, GitHub et Bluesky. Seuls les réseaux configurés apparaissent sous forme d’icônes dans l’en-tête public.
8. Consulter les statistiques
Ouvrez Administration > Statistiques pour consulter :
- épisodes publiés, brouillons et total stocké ;
- taille totale des audios selon la base de données ;
- dernier épisode publié ;
- état, nombre de pages et taille du cache ;
- téléchargements et lectures.
L’activité est répartie en :
- Quotidien : événements des sept derniers jours au maximum, avec date, épisode, type et IP.
- Mensuel : cumuls mensuels, filtrables par année.
- Annuel : cumuls annuels.
- Résumé : téléchargements et lectures par épisode.
Cliquez sur les en-têtes des tableaux pour les trier. Les requêtes de vérification HEAD des lecteurs ne comptent pas comme téléchargements.
9. Sauvegardes
Ouvrez Administration > Backups. La sauvegarde de la base de données est séparée de celle des médias.
Créer une sauvegarde complète
- Cliquez sur Exporter la base de données et conservez le fichier SQLite.
- Téléchargez toutes les parties d’Exporter les images.
- Téléchargez toutes les parties d’Exporter les audios.
- Si un fichier dépasse la limite ZIP, téléchargez-le manuellement via le lien affiché.
- Conservez tous les fichiers ensemble, avec la date et la version d’EasyPodcast.
Les ZIP sont divisés en parties de 127 Mo maximum. Les images générées sont exclues car elles peuvent être régénérées.
Restaurer
- Importer la base de données restaure contenu et configuration depuis un SQLite valide. Sauvegardez d’abord l’état actuel : la restauration remplace la base utilisée.
- Importer des fichiers accepte un ou plusieurs ZIP et des audios individuels. Envoyez toutes les parties nécessaires.
Vérifiez ensuite l’accueil, plusieurs épisodes, le flux et les images. S’il manque une miniature, utilisez Cache > Régénérer les images.
10. Cache et maintenance
Cache
Le cache public conserve le HTML de l’accueil et des épisodes, le flux et le sitemap pour répondre plus vite.
- Activer le cache public : conseillé en production.
- Vider le cache web : supprime uniquement les réponses HTML en cache ; les visites les recréeront.
- Régénérer les images : recrée les variantes de 80, 144 et 220 pixels des images du podcast et des épisodes.
Les modifications publiques normales invalident déjà le cache automatiquement. Videz-le manuellement si un ancien contenu subsiste après une restauration ou un incident.
Régénérer .htaccess
.htaccess généré restaure ce fichier avec les règles par défaut d’EasyPodcast. L’action supprime les règles personnalisées et désactive le blocage IP d’admin.php ; utilisez-la uniquement pour revenir à la configuration initiale.
Fichiers orphelins
En Multipodcast, l’administrateur global dispose de Nettoyer, qui recherche les audios et images inutilisés par les épisodes. Vérifiez la sélection avant Supprimer la sélection : cette suppression est irréversible.
11. Utilisateurs, mot de passe et 2FA
Changer le mot de passe
Ouvrez Mot de passe, saisissez l’ancien et le nouveau selon les indications. En Multipodcast, créez des utilisateurs distincts au lieu de partager des comptes.
Activer l’authentification à deux facteurs
- Ouvrez 2FA, puis Activer 2FA.
- Scannez le QR avec une application TOTP, comme Google Authenticator ou Aegis, ou saisissez la clé manuellement.
- Confirmez avec le code à six chiffres.
- Conservez immédiatement les huit codes de récupération en lieu sûr.
Chaque code ne sert qu’une fois. Vous pouvez les régénérer ou désactiver 2FA en confirmant avec votre mot de passe. À la connexion, un appareil peut être mémorisé sept jours.
Restreindre l’accès à admin.php par IP
L’administrateur global peut ouvrir Multipodcast > Sécurité pour autoriser uniquement certaines adresses IPv4, IPv6 ou plages CIDR. Le blocage est désactivé par défaut et s’active explicitement en deux étapes. Ajoutez toujours votre IP d’administration avant de confirmer : une erreur peut vous empêcher d’accéder au panneau.
L’activation est facultative et relève de la responsabilité de l’utilisateur. Après Activer le blocage, lisez l’avertissement rouge et cliquez sur Je suis sûr seulement après avoir vérifié la liste.
Récupérer l’accès après un blocage accidentel
Si admin.php est inaccessible, accédez aux fichiers par SSH, SFTP ou le gestionnaire de votre hébergement. Dans le répertoire principal d’EasyPodcast, ouvrez .htaccess et retirez uniquement le bloc complet, de # BEGIN à # END, ces deux lignes comprises :
# BEGIN EasyPodcast: bloqueo por IP de admin.php
# Bloqueo al admin.php
<Files "admin.php">
Order Deny,Allow
Deny from all
Allow from x.x.x.x
</Files>
# END EasyPodcast: bloqueo por IP de admin.php
Enregistrez sans modifier les autres règles et rouvrez admin.php. Le retrait du bloc désactive la restriction IP. Supprimez également toutes les lignes Allow from s’il y en a plusieurs dans ce bloc.
Utilisateurs de podcasts
En Multipodcast, l’administrateur global crée des comptes via Utilisateurs et leur attribue un ou plusieurs podcasts. Les utilisateurs limités voient et gèrent uniquement leurs podcasts, sans accès aux outils globaux.
Vous pouvez désactiver temporairement un compte, modifier ses podcasts ou définir un nouveau mot de passe. Sa suppression supprime aussi ses jetons API.
12. Gérer plusieurs podcasts
Multipodcast héberge plusieurs canaux dans une installation, en séparant épisodes, pages, réseaux sociaux, statistiques et jetons.
Activation
- Ouvrez Multipodcast > Configuration Multipodcast.
- Cochez Activer Multipodcast.
- Choisissez le répertoire du podcast actuel, par exemple
mon-podcast: minuscules, chiffres et tirets uniquement. - Choisissez si la racine affiche un résumé de tous les podcasts ou l’accueil d’un seul podcast sélectionné.
- Pour le résumé, configurez langue, thème, titre, sous-titre et image d’en-tête.
- Enregistrez.
Les médias conservent leurs URL lors de l’activation.
Créer et administrer des podcasts
- Ouvrez Podcasts.
- Saisissez un titre et un répertoire libre.
- Cliquez sur Créer un podcast.
- Utilisez Administrer le podcast pour compléter la configuration et publier.
Le sélecteur supérieur passe du panneau global aux podcasts disponibles. Chacun possède ses routes sous https://votre-domaine.com/repertoire/.
Vous pouvez désigner un podcast principal : il sera conservé si vous désactivez Multipodcast.
Opérations modifiant les URL ou supprimant du contenu
- Changer de répertoire modifie les URL publiques du podcast, des pages, du flux et des épisodes. Faites-le seulement si vous pouvez mettre à jour les liens externes.
- Supprimer le podcast crée un ZIP de sauvegarde, puis supprime podcast, épisodes, statistiques et médias exclusifs. Saisissez son titre pour confirmer. Téléchargez et conservez le ZIP.
- Désactiver Multipodcast conserve le principal, sauvegarde les secondaires puis les supprime. Une confirmation explicite et le titre exact du principal sont exigés.
13. API et automatisations
La section API intègre EasyPodcast à des scripts, n8n ou d’autres applications.
- Ouvrez API Tokens.
- Indiquez un nom identifiable et éventuellement une date d’expiration.
- Choisissez la portée :
contentpour l’automatisation habituelle du contenu ;adminuniquement pour les opérations administratives sensibles. - Générez le jeton et copiez-le immédiatement : il ne sera plus affiché intégralement.
- Consultez Documentation de l’API pour les endpoints et exemples.
Révoquez immédiatement les jetons inutilisés ou potentiellement exposés. Les utilisateurs limités ne peuvent agir que sur leurs podcasts attribués.
14. Mettre à jour EasyPodcast
- Sauvegardez au moins la base de données, de préférence aussi les médias.
- Ouvrez Mettre à jour.
- Comparez la version installée à la dernière disponible.
- Si une nouvelle version existe, cliquez sur Mettre à jour vers v… et attendez la fin.
- Lisez les nouveautés et vérifiez accueil, panneau, un épisode, flux et sitemap.
L’outil télécharge depuis GitHub Releases, vérifie l’intégrité et remplace les fichiers de l’application. Il ne modifie pas directement la base, les audios ni les images ; les migrations nécessaires s’appliquent automatiquement au chargement de l’application.
15. Ce que publie EasyPodcast
Routes habituelles d’une installation à un seul podcast :
| Adresse | Contenu |
|---|---|
/ |
Accueil public et recherche |
/AAAA/MM/slug |
Page publique d’un épisode |
/feed.php |
Flux RSS généré en temps réel |
/feed.xml |
Copie statique régénérée lors de l’enregistrement des modifications |
/sitemap.xml |
Sitemap pour moteurs de recherche |
/robots.txt |
Règles d’exploration et lien vers le sitemap |
/admin.php |
Accès à l’administration |
En Multipodcast, chaque canal utilise son répertoire, comme /mon-podcast/, /mon-podcast/feed.xml et /mon-podcast/sitemap.xml. La racine affiche le résumé global ou le podcast mis en avant.
Pour soumettre un podcast à une plateforme, fournissez l’URL publique de son feed.xml. Après publication, vérifiez que l’épisode apparaît sur le site et dans ce flux.
16. Routine conseillée
Avant publication
- Vérifiez titre, description courte, contenu, audio et image.
- Écoutez le début et la fin du fichier.
- Vérifiez le réglage explicite et la numérotation.
- Gardez
draftjusqu’à ce que tout soit prêt.
Après publication
- Ouvrez accueil et page de l’épisode.
- Écoutez ou téléchargez l’audio.
- Vérifiez
feed.xml. - Vérifiez titre, image et description lors du partage de l’URL.
Maintenance régulière
- Exportez souvent la base et avant chaque mise à jour.
- Conservez régulièrement des sauvegardes audio et images hors du serveur.
- Vérifiez statistiques et espace occupé.
- Révoquez les jetons et désactivez les utilisateurs n’ayant plus besoin d’accès.
- Recherchez les mises à jour et sauvegardez avant leur application.
17. Problèmes fréquents
Un épisode n’apparaît pas publiquement
- Vérifiez l’état
published. - S’il est programmé, vérifiez date, heure et fuseau horaire du serveur.
- Visitez le site pour déclencher la publication.
- Videz le cache web si le problème persiste.
L’audio ne se lit pas
- Vérifiez que son URL est accessible.
- Vérifiez MIME, taille et format.
- S’il a été envoyé depuis le panneau, assurez-vous que l’envoi était terminé avant l’enregistrement.
Le flux ne reflète pas une modification
- Enregistrez à nouveau le podcast ou l’épisode.
- Comparez
feed.phpetfeed.xml. - Videz le cache web.
- Vérifiez les droits d’écriture sur
feed.xmletcache/.
Une image ou miniature manque
- Vérifiez l’URL originale.
- Ouvrez Cache > Régénérer les images.
- Vérifiez les droits d’écriture sur
images/etimages/generated/.
Impossible d’importer un flux
- Vérifiez que l’URL est publique et renvoie du RSS valide.
- Vérifiez que l’extension cURL de PHP est activée.
- Essayez moins d’épisodes si les limites du serveur sont strictes.
- Gardez l’onglet ouvert pendant le téléchargement.
Impossible d’enregistrer ou d’envoyer du contenu
Cela vient généralement des limites PHP ou des permissions du serveur. L’administrateur de l’hébergement doit vérifier la taille maximale d’envoi, le temps d’exécution et les droits d’écriture sur podcast.sqlite, audios/, images/, cache/, feed.xml et favicon.ico.