Why do we need WebSub?
As you probably already know, a podcast is more or less just a bunch of mp3 files listed in a single index file, the famous RSS.
Whenever a new episode is posted by a podcaster, it is added to that RSS feed.
So if you want to know, as a listener, if a new episode was published, you have to read that RSS, again and again, until that new episode pops up.
If you are monitoring a weekly podcast, you would have to request the RSS feed from the podcast server every 10 minutes or so (if you want a 10mn latency).
That's 1 useful weekly request (when the new episode actually pops up) and 1007 useless requests (when nothing new was published), every week.
If you want to lower the latency to 1mn, that would generate 10079 useless requests.
Now if you are monitoring ~2 millions weekly podcasts (🍎), you alone would generate 20,158,000,000 useless requests per week, ie. almost 3 billion useless requests every single day.
This is where WebSub (formerly known as PubSubHubbub) enters the scene.
WebSub is an open protocol designed to make the subscription process efficient and easy.
How does it work?
WebSub involves 3 actors:
- The publisher: creates content (the podcaster)
- The subscriber: consumes content (the listener)
- The hub: gets notified by the publisher whenever a content is published and warns the subscriber. You can see the hub as the post office where you receive all the stuff you subscribed to.
Thanks to WebSub, there is no need anymore to send requests to the podcast server every minute:
- just tell the podcast that you want to subscribe to,
- choose a hub among the ones supported by the podcast,
- whenever a new episode is published, the podcast will notify the hub.
No more useless request.
Good news: Castopod has been supporting WebSub since version v1.0.0-beta.10!
What does it look like?
Let's see how that works with websub.rocks.
You specify the feed you want to subscribe to:
Then you select which hub should be notified for you:
And you wait:
As soon as a new episode is published, the hub gets notified by Castopod then notifies you:
Pretty simple, isn't it?
If you want to know more, I recommend this Podnews article: How WebSub works: and why it's good for your podcast.
What about Podping?
But instead of implementing a mechanism where hubs are managing individual subscriptions for every podcast and every listener, it uses the Hive blockchain to keep track of all new episodes, every 3 seconds.
You can even see it with your own eyes on Podping Watcher.
Thanks to Podping, you can know when an episode is published, by reading a blockchain available to anyone.
On the other hand a key is required to write to the blockchain (in order to prevent spam).
Many podcast hosting companies already got their key and are Podping-connected: Buzzsprout, RSS.com, Caproni, JustCast, Transistor, Captivate…
Things are a little different with Castopod self-hosting, because the podcaster is, in a way, his own podcast hosting company.
Giving a key to each and every podcaster would not make sense.
So in order to make Castopod Podping-connected we are currently developing a gateway between Castopod and Podping. It will be made available in the near future.
And now take a guess: which protocol will be used between Castopod and that gateway? (Hint: the answer is in this article's title. 😉)
Photo by Petra Nesti.