PodcastFeedMaker

Publié le · Mis à jour le · 4 min

Wlad
Wlad
Fondateur & Tech Lead Swift

L'histoire

Tout a commencé par un besoin simple : générer des flux RSS podcast propres, conformes aux standards, sans bidouiller du XML à la main.

Entre 2006 et 2012, je produisais des podcasts de musique électronique. À l'époque, je gérais tout avec un backoffice maison en PHP — du bricolage qui fonctionnait, mais qui demandait une énergie folle pour rester compatible avec iTunes, les agrégateurs, les validateurs.

Des années plus tard, en travaillant sur des projets audio, le besoin est revenu. Sauf que cette fois, je voulais faire les choses bien : une lib Swift moderne, typée, testée, qui respecte tous les standards actuels — Apple Podcasts, Podcast Namespace, PSP-1.

C'est en développant cette librairie que l'idée de Podcast Maker est née. La lib d'abord, l'app ensuite.

C'est quoi PodcastFeedMaker ?

PodcastFeedMaker est un package Swift (SPM) pour générer des flux RSS 2.0 podcast. Pas un wrapper, pas un générateur de templates — une vraie modélisation objet du format RSS avec tous ses namespaces.

Ce qu'elle fait :

  • Génère des flux RSS 2.0 valides et complets

  • Supporte les tags Apple Podcasts (namespace iTunes)

  • Supporte le Podcast Namespace (podcastindex.org)

  • Respecte la spécification PSP-1 (Podcast Standards Project)

  • Valide automatiquement les formats (dates RFC, URLs, booléens)

  • Passe les validateurs : podba.se, CastFeedValidator, Apple

Les briques principales :

  • Feed — Le flux complet

  • Channel — Les métadonnées du podcast (titre, description, artwork...)

  • Item — Un épisode avec son enclosure média

  • Namespace — Injection des namespaces XML (itunes, podcast, atom...)

Pour qui ?

Développeurs Swift qui construisent des apps ou services liés au podcast :

  • Apps de création/publication de podcasts

  • Backends Swift qui génèrent des flux

  • Outils CLI de validation ou migration

  • Services d'hébergement podcast

À terme, l'ambition est d'élargir au-delà de Swift — via un bridge C et des XCFrameworks pour du cross-platform.

Ce qui fait la différence

Respect total des standards

Pas de compromis. RSS 2.0, Atom, iTunes, Podcast Namespace, PSP-1 — tout est implémenté selon les spécifications officielles.

Pensé pour la performance

La lib est conçue pour le traitement de masse. Génération asynchrone, streaming XML, capable de gérer des catalogues de 100 000+ épisodes sans broncher.

Typage fort, zéro surprise

Chaque tag, chaque attribut est typé. Les dates sont des Date, les URLs des URL, les durées des Duration. Pas de strings magiques, pas d'erreurs runtime.

Testé, vraiment

Couverture de code supérieure à 95%. Chaque namespace, chaque tag, chaque cas limite est couvert. La CI tourne sur chaque commit.

Extensible

L'architecture permet d'ajouter ses propres tags via le protocole XmlRepresentable. Besoin d'un namespace custom ? C'est prévu.

Exemple d'utilisation

Installation

Via Swift Package Manager :

Documentation

  • Documentation DocC auto-générée et hébergée

  • Documentation inline dans Xcode (⌥ + Click)

  • Exemples complets : flux minimal, flux PSP-1 recommandé, flux complexe

Open Source

PodcastFeedMaker est open-source sous licence Apache 2.0. Les contributions sont les bienvenues — que ce soit pour ajouter des tags, améliorer la doc, ou signaler des bugs.

Le projet suit des standards stricts : commits conventionnels, tests obligatoires pour chaque PR, documentation DocC pour toutes les APIs publiques.

Roadmap

  • Couverture complète RSS + Apple + Podcast Namespace ✓

  • Documentation DocC sur GitHub Pages ✓

  • CI/CD avec code coverage ✓

  • Swift Macros pour composer les flux déclarativement (en cours)

  • Support Podlove Simple Chapters (PSC)

  • CLI de validation de flux

  • Import de flux existants

Sous le capot

  • Swift 6 ready — Concurrency moderne, Sendable, actors

  • Async XML generation — Streaming pour les gros volumes

  • Protocol-oriented — Extensibilité via XmlRepresentable

  • Zero dependencies — Que du Swift standard

  • Multi-platform — macOS, iOS, Linux (serveur)

Liens

PodcastFeedMaker sur GitHub

Package Swift pour générer des flux RSS podcast conformes aux standards.

github.com